Commit caf22704 by wangweidong

土工高级优化

parent 4997589b
......@@ -60,7 +60,9 @@ public class OriginalOperationFactory {
public Operation getOperation(SoilOriginalTemplate template,Integer templateSampleNum, List<SoilExperimentVO> voList){
RestAssert.fail(null == templateSampleNum,"模板样品数不能为空!");
if (null == templateSampleNum){
templateSampleNum=1;
}
if (null==template.getMoreSheet() || 0 == template.getMoreSheet()){
//单模板
if (voList.size()<templateSampleNum){
......
......@@ -45,7 +45,9 @@ public class SingleSheetReportOperation implements ReportOperation {
sheetOne.setForceFormulaRecalculation(true);
Integer beginRow = template.getSampleBeginRow();
Integer sampleMergerNumOri = template.getSampleMergerNum();
RestAssert.fail(null == template.getTemplateSampleNum(),"模板样品数不能为空");
if (null == template.getTemplateSampleNum()){
template.setTemplateSampleNum(1);
}
int templateSampleNum = template.getTemplateSampleNum();
if (null != beginRow
&& null!=sampleMergerNumOri
......
......@@ -714,7 +714,11 @@ public class SoilExperimentController extends ServiceController {
@ApiOperation(value = "高级试验填写原始记录", notes = "填写原始记录")
@PostMapping("/save_senior_excel_original_record")
public RestResult<SoilOriginalRecord> saveSeniorExcelOriginalRecord(@RequestParam("ids")Long[] ids, @RequestParam("templateId") Long templateId) {
return success(soilExperimentService.saveSeniorExcelOriginalRecord(ids,templateId,getAccount()));
}
......
......@@ -88,6 +88,8 @@ public interface ISoilExperimentService extends IBaseService<SoilExperiment> {
SoilOriginalRecord saveExcelOriginalRecord(Long[] ids, Long templateId, Account account);
SoilOriginalRecord saveSeniorExcelOriginalRecord(Long[] ids, Long templateId, Account account);
SoilExpReport saveExcelExpReport(String expName, Long entrustId, Long[] ids, Long templateId, Account account);
void uploadCollectGds(SmbFile smbFile, CollectDataType request);
......
......@@ -402,6 +402,106 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
@Transactional(rollbackFor = Exception.class)
@Override
public SoilOriginalRecord saveSeniorExcelOriginalRecord(Long[] ids, Long templateId, Account account) {
logger.error("saveExcelOriginalRecord开始生成");
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择试验项目!");
RestAssert.fail(null == templateId,"请选择原始记录模板");
SoilOriginalTemplate template = soilOriginalTemplateService.getById(templateId);
if (null == template){
logger.error("----------------------0");
RestAssert.fail("模板不存在");
}
logger.error("saveExcelOriginalRecord模板存在");
List<SoilExperimentVO> voList = soilExperimentService.listVOByIds(ids);
if (CollectionUtils.isEmpty(voList)){
logger.error("----------------------1");
return null;
}
List<Long> sampleIdList = voList.stream().map(s->{
return s.getSampleId();
}).collect(Collectors.toList());
List<SoilItemVO> soilItemVOList = soilItemService.listVOByExpSampleIds(sampleIdList);
SoilEntrust entrust = soilEntrustService.getById(voList.get(0).getEntrustId());
logger.error("saveExcelOriginalRecord entrust");
InputStream io = ossClient.download(template.getObjectKey());
if (null == io){
RestAssert.fail("模板不存在");
}
logger.error(" InputStream io 存在");
SoilOriginalRecord objectKey=null;
XSSFWorkbook xssfWorkbook= null;
try {
xssfWorkbook= new XSSFWorkbook(io);
}catch (Exception e){
logger.error("获取证书模板错误"+e.getMessage());
e.printStackTrace();
}
Map<String, String> mapReplace = new HashMap<>();
InitMapReplace.initMapReplace(mapReplace,entrust);
List<SoilSampleOperation> operationList = soilSampleOperationService.list(Condition.create().setSqlSelect("make_time").in("sample_id",sampleIdList).isNotNull("make_time"));
if (CollectionUtils.isEmpty(operationList)){
mapReplace.put("#{testDate}","");
}else{
List<Date> dateList = operationList.stream().map(d->{
return d.getMakeTime();
}).collect(Collectors.toList());
mapReplace.put("#{testDate}",DateUtils.toYearMonthDay(DateUtils.getMinDateByDateList(dateList)));
}
List<SoilOriginalTemplateConfig> configList = soilOriginalTemplateConfigService.list(Condition.create().eq("template_id",templateId));
OriginalOperationFactory operationFactory =new OriginalOperationFactory();
operationFactory.initParams(xssfWorkbook,io,mapReplace,configList,template,voList,soilItemVOList,entrust);
Operation operation = operationFactory.getOperation(template,template.getTemplateSampleNum(),voList);
operation.doProductOriginal();
int num = xssfWorkbook.getNumberOfSheets();
String siteNo = voList.get(0).getSiteNo();
for (int i = 0; i < num; i++) {
XSSFSheet sheet = xssfWorkbook.getSheetAt(i);
xssfWorkbook.setSheetName(i,sheet.getSheetName()+siteNo);
}
FileOutputStream os = null;
File file = null;
String generated="ORIGINAL";
try {
file = File.createTempFile(generated, "."+template.getType());
os = new FileOutputStream(file);
xssfWorkbook.write(os);
os.flush();
objectKey= soilOriginalRecordService.uploadExpGenerate(ids,template,entrust, account, "原始记录生成", file);
logger.error("----------------------17");
} catch (Exception e) {
logger.error("Exception 报错"+e.getMessage());
e.printStackTrace();
} finally {
try {
os.close();
xssfWorkbook.close();
io.close();
FileUtils.deleteFiles(file);
} catch (Exception e) {
e.printStackTrace();
}
}
logger.error("----------------------20");
return objectKey;
}
public void GenerateChart(XSSFSheet sheet,String xValue , String yValue) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment