Commit fdc0e4d7 by zhangmengqi

Merge branch 'dev'

parents 8d26df93 bed6a743
...@@ -37,6 +37,7 @@ public class CollectUtil { ...@@ -37,6 +37,7 @@ public class CollectUtil {
content = content.replace("凝 聚 力","凝聚力"); content = content.replace("凝 聚 力","凝聚力");
content = content.replace("灵 敏 度","灵敏度"); content = content.replace("灵 敏 度","灵敏度");
content = content.replace("粘 聚 力","凝聚力"); content = content.replace("粘 聚 力","凝聚力");
content = content.replace("粘聚力","凝聚力");
String[] dataArray = content.split(" "); String[] dataArray = content.split(" ");
for (String handleS:dataArray) { for (String handleS:dataArray) {
handleS=handleS.trim(); handleS=handleS.trim();
......
...@@ -83,4 +83,12 @@ public class SoilAppendixController extends ServiceController { ...@@ -83,4 +83,12 @@ public class SoilAppendixController extends ServiceController {
public RestResult<Boolean> delete(@RequestParam("ids") List<Long> ids) { public RestResult<Boolean> delete(@RequestParam("ids") List<Long> ids) {
return success(soilAppendixService.removeByIds(ids)); return success(soilAppendixService.removeByIds(ids));
} }
@ApiOperation(value = "下载报告附录", notes = "下载报告附录")
@GetMapping("/download/{id}")
public void downloadFile(@PathVariable("id")Long id) {
soilAppendixService.downloadFile(id, response);
}
} }
...@@ -190,4 +190,12 @@ public class SoilExpReportController extends ServiceController { ...@@ -190,4 +190,12 @@ public class SoilExpReportController extends ServiceController {
return success(soilExpReportService.generateReport(entrustId,templateId,expReportIds)); return success(soilExpReportService.generateReport(entrustId,templateId,expReportIds));
} }
@ApiOperation(value = "下载项目报告", notes = "下载项目报告")
@GetMapping("/download/{id}")
public void downloadFile(@PathVariable("id")Long id) {
soilExpReportService.downloadFile(id, response);
}
} }
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.service.IBaseService; import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.soil.entity.SoilAppendix; import com.patzn.cloud.service.soil.entity.SoilAppendix;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
/** /**
...@@ -21,4 +22,6 @@ public interface ISoilAppendixService extends IBaseService<SoilAppendix> { ...@@ -21,4 +22,6 @@ public interface ISoilAppendixService extends IBaseService<SoilAppendix> {
int countByEntrustId(Long entrustId); int countByEntrustId(Long entrustId);
SoilAppendix getByExpId(Long expId); SoilAppendix getByExpId(Long expId);
void downloadFile(Long id, HttpServletResponse response);
} }
...@@ -8,6 +8,7 @@ import com.patzn.cloud.service.soil.entity.SoilExpReport; ...@@ -8,6 +8,7 @@ import com.patzn.cloud.service.soil.entity.SoilExpReport;
import com.patzn.cloud.service.soil.entity.SoilExpReportTemplate; import com.patzn.cloud.service.soil.entity.SoilExpReportTemplate;
import com.patzn.cloud.service.soil.entity.SoilReport; import com.patzn.cloud.service.soil.entity.SoilReport;
import javax.servlet.http.HttpServletResponse;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
...@@ -36,4 +37,6 @@ public interface ISoilExpReportService extends IBaseService<SoilExpReport> { ...@@ -36,4 +37,6 @@ public interface ISoilExpReportService extends IBaseService<SoilExpReport> {
boolean expReportCheckBack(Long[] ids, String remark, Account account); boolean expReportCheckBack(Long[] ids, String remark, Account account);
boolean expReportIssueBack(Long[] ids, String remark, Account account); boolean expReportIssueBack(Long[] ids, String remark, Account account);
void downloadFile(Long id, HttpServletResponse response);
} }
package com.patzn.cloud.service.lims.soil.service.impl; package com.patzn.cloud.service.lims.soil.service.impl;
import com.baomidou.mybatisplus.mapper.Condition; import com.baomidou.mybatisplus.mapper.Condition;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.service.lims.soil.mapper.SoilAppendixMapper; import com.patzn.cloud.service.lims.soil.mapper.SoilAppendixMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilAppendixService; import com.patzn.cloud.service.lims.soil.service.ISoilAppendixService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl; import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.entity.SoilAppendix; import com.patzn.cloud.service.soil.entity.SoilAppendix;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
/** /**
...@@ -21,6 +25,9 @@ import java.util.List; ...@@ -21,6 +25,9 @@ import java.util.List;
@Service @Service
public class SoilAppendixServiceImpl extends BaseServiceImpl<SoilAppendixMapper, SoilAppendix> implements ISoilAppendixService { public class SoilAppendixServiceImpl extends BaseServiceImpl<SoilAppendixMapper, SoilAppendix> implements ISoilAppendixService {
@Autowired
private OssClient ossClient;
@Override @Override
public Page<SoilAppendix> page(Page<SoilAppendix> page, SoilAppendix soilAppendix) { public Page<SoilAppendix> page(Page<SoilAppendix> page, SoilAppendix soilAppendix) {
Wrapper wrapper = new EntityWrapper<>(soilAppendix); Wrapper wrapper = new EntityWrapper<>(soilAppendix);
...@@ -42,4 +49,13 @@ public class SoilAppendixServiceImpl extends BaseServiceImpl<SoilAppendixMapper, ...@@ -42,4 +49,13 @@ public class SoilAppendixServiceImpl extends BaseServiceImpl<SoilAppendixMapper,
public SoilAppendix getByExpId(Long expId) { public SoilAppendix getByExpId(Long expId) {
return super.getOne(Condition.create().eq("exp_id",expId).last("LIMIT 1")); return super.getOne(Condition.create().eq("exp_id",expId).last("LIMIT 1"));
} }
@Override
public void downloadFile(Long id, HttpServletResponse response) {
SoilAppendix attachment = super.getById(id);
if (null == attachment) {
RestAssert.fail("抱歉!该附件不存在");
}
ossClient.download(attachment.getObjectKey(), attachment.getName() + ".xlsx", response);
}
} }
...@@ -3,7 +3,6 @@ package com.patzn.cloud.service.lims.soil.service.impl; ...@@ -3,7 +3,6 @@ package com.patzn.cloud.service.lims.soil.service.impl;
import com.aspose.cells.Workbook; import com.aspose.cells.Workbook;
import com.baomidou.mybatisplus.mapper.Condition; import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.toolkit.CollectionUtils; import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.google.common.collect.Lists;
import com.patzn.cloud.commons.api.RestAssert; import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account; import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.controller.LoginHelper; import com.patzn.cloud.commons.controller.LoginHelper;
...@@ -27,7 +26,6 @@ import com.patzn.cloud.service.soil.vo.SoilSampleVO; ...@@ -27,7 +26,6 @@ import com.patzn.cloud.service.soil.vo.SoilSampleVO;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.*; import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.openxml4j.util.ZipSecureFile;
import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.*; import org.apache.poi.xssf.usermodel.*;
...@@ -38,6 +36,7 @@ import com.baomidou.mybatisplus.mapper.Wrapper; ...@@ -38,6 +36,7 @@ import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.io.*; import java.io.*;
import java.net.URL; import java.net.URL;
import java.util.*; import java.util.*;
...@@ -605,6 +604,14 @@ public class SoilExpReportServiceImpl extends BaseServiceImpl<SoilExpReportMappe ...@@ -605,6 +604,14 @@ public class SoilExpReportServiceImpl extends BaseServiceImpl<SoilExpReportMappe
return soilReportService.updateBatchById(updateList); return soilReportService.updateBatchById(updateList);
} }
@Override
public void downloadFile(Long id, HttpServletResponse response) {
SoilExpReport attachment = super.getById(id);
if (null == attachment) {
RestAssert.fail("抱歉!该项目报告不存在");
}
ossClient.download(attachment.getObjectKey(), attachment.getExpName() + ".xlsx", response);
}
public InputStream exportToExcelInputStream(XSSFWorkbook workbook) { public InputStream exportToExcelInputStream(XSSFWorkbook workbook) {
......
...@@ -1367,6 +1367,21 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -1367,6 +1367,21 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
List<SoilItem> soilItemList = soilItemService.list(Condition.create().in("experiment_id",expIdsList)); List<SoilItem> soilItemList = soilItemService.list(Condition.create().in("experiment_id",expIdsList));
Map<Long,List<SoilItem>> expItemMap = new HashMap<>();
for (SoilItem item:soilItemList) {
if (!expItemMap.containsKey(item.getExperimentId())){
List<SoilItem> itemList = new ArrayList<>();
itemList.add(item);
expItemMap.put(item.getExperimentId(),itemList);
}else{
List<SoilItem> itemList = expItemMap.get(item.getExperimentId());
itemList.add(item);
expItemMap.put(item.getExperimentId(),itemList);
}
}
Map<Long,List<SoilItem>> sampleItemMap = new HashMap<>(); Map<Long,List<SoilItem>> sampleItemMap = new HashMap<>();
if (CollectionUtils.isNotEmpty(soilItemList)){ if (CollectionUtils.isNotEmpty(soilItemList)){
...@@ -1428,11 +1443,11 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -1428,11 +1443,11 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
&& null!=template.getTemplateSampleNum()){ && null!=template.getTemplateSampleNum()){
List<SoilExpReportTemplateConfig> configList = soilExpReportTemplateConfigService.list(Condition.create().eq("template_id",templateId)); List<SoilExpReportTemplateConfig> configList = soilExpReportTemplateConfigService.list(Condition.create().eq("template_id",templateId));
if (sampleList.size()<templateSampleNum){ if (voList.size()<templateSampleNum){
int sampleMergerNum =sampleMergerNumOri; int sampleMergerNum =sampleMergerNumOri;
for (SoilSampleVO vo:sampleList) { for (SoilExperimentVO vo:voList) {
List<SoilItem> itemList = sampleItemMap.get(vo.getId()); List<SoilItem> itemList = expItemMap.get(vo.getId());
if (null == itemList){ if (null == itemList){
itemList = new ArrayList<>(); itemList = new ArrayList<>();
} }
...@@ -1453,7 +1468,7 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -1453,7 +1468,7 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
XSSFCellStyle cellStyle = zeroRow.getCell(0).getCellStyle(); XSSFCellStyle cellStyle = zeroRow.getCell(0).getCellStyle();
int lastCellNum = zeroRow.getLastCellNum(); int lastCellNum = zeroRow.getLastCellNum();
int insertCount = sampleList.size()-templateSampleNum; int insertCount = voList.size()-templateSampleNum;
for (int m = 0 ; m<insertCount ;m++) { for (int m = 0 ; m<insertCount ;m++) {
for (int i = 0; i < sampleMergerNum; i++) { for (int i = 0; i < sampleMergerNum; i++) {
sheetOne.shiftRows(insertRow, sheetOne.getLastRowNum(), 1,true,false); sheetOne.shiftRows(insertRow, sheetOne.getLastRowNum(), 1,true,false);
...@@ -1467,9 +1482,9 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -1467,9 +1482,9 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
} }
} }
int sn = 1; int sn = 1;
for (SoilSampleVO vo:sampleList) { for (SoilExperimentVO vo:voList) {
XSSFRow xssfRow = sheetOne.getRow(beginRow); XSSFRow xssfRow = sheetOne.getRow(beginRow);
List<SoilItem> itemList = sampleItemMap.get(vo.getId()); List<SoilItem> itemList = expItemMap.get(vo.getId());
if (null == itemList){ if (null == itemList){
itemList = new ArrayList<>(); itemList = new ArrayList<>();
} }
...@@ -1893,6 +1908,29 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -1893,6 +1908,29 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
} }
public void setExcellCellValue (String prepory,SoilExperimentVO vo,XSSFCell cell,List<SoilItem> itemList){
if (StringUtils.isNotBlank(prepory)){
if (prepory.equals("{appendix}")){
SoilAppendix soilAppendix = soilAppendixService.getByExpId(vo.getId());
if (null != soilAppendix){
cell.setCellValue(soilAppendix.getTitle());
}
}else{
if (StringHandleUtils.is_alpha(prepory)){
cell.setCellValue(StringHandleUtils.getFieldIfNummReturnBlankValueByFieldName(prepory,vo));
}else{
if (CollectionUtils.isNotEmpty(itemList)){
for (SoilItem item:itemList) {
if (prepory.equals(item.getName())){
cell.setCellValue(item.getTestValue());
break;
}
}
}
}
}
}
}
@Override @Override
public void uploadCollectGds(SmbFile smbFile, CollectDataType request) { public void uploadCollectGds(SmbFile smbFile, CollectDataType request) {
...@@ -2372,11 +2410,21 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -2372,11 +2410,21 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
Map<String,SoilExperimentVO> nameCodeList = new HashMap<>(); Map<String,SoilExperimentVO> nameCodeList = new HashMap<>();
for (SoilExperimentVO experimentVO:voList) { for (SoilExperimentVO experimentVO:voList) {
nameCodeList.put(experimentVO.getName()+experimentVO.getSampleCode(),experimentVO); if (experimentVO.getName().contains("三轴压缩")){
} if (experimentVO.getName().contains("重塑")){
nameCodeList.put("三轴压缩重塑"+experimentVO.getSampleCode(),experimentVO);
nameCodeList.put("三轴压缩重塑"+experimentVO.getSiteNo(),experimentVO);
}else{
nameCodeList.put("三轴压缩"+experimentVO.getSampleCode(),experimentVO);
nameCodeList.put("三轴压缩"+experimentVO.getSiteNo(),experimentVO);
}
}else{
nameCodeList.put(experimentVO.getName()+experimentVO.getSampleCode(),experimentVO);
nameCodeList.put(experimentVO.getName()+experimentVO.getSiteNo(),experimentVO);
}
}
Iterator<String> fileNamesIt = multipartHttpServletRequest.getFileNames(); Iterator<String> fileNamesIt = multipartHttpServletRequest.getFileNames();
List<String> failedNameList = new ArrayList<>(); List<String> failedNameList = new ArrayList<>();
while (fileNamesIt.hasNext()) { while (fileNamesIt.hasNext()) {
...@@ -2386,13 +2434,16 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -2386,13 +2434,16 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
String name = multipartFile.getName(); String name = multipartFile.getName();
String originalFilename = multipartFile.getOriginalFilename(); String originalFilename = multipartFile.getOriginalFilename();
if (originalFilename.contains(".bmp")||originalFilename.contains(".txt")){ if (originalFilename.contains(".bmp")||originalFilename.contains(".txt")){
String nameCode = originalFilename.replace(".bmp","").replace(".txt",""); String nameCode = originalFilename.replace(".bmp","").replace(".txt","");
String lastName = name.substring(name.length()-1,name.length());
if ("r".equals(lastName)){
if (nameCode.contains("三轴压缩")&&(!nameCode.contains("重塑"))){
nameCode = nameCode.replace("三轴压缩","三轴压缩重塑");
}
}
if (!nameCodeList.containsKey(nameCode)){ if (!nameCodeList.containsKey(nameCode)){
RestAssert.fail("请正确上传委托下的数据采集文件"); RestAssert.fail("请正确上传委托下的数据采集文件");
} }
}else { }else {
RestAssert.fail("请上传 .bmp 或者 .txt格式的文件"); RestAssert.fail("请上传 .bmp 或者 .txt格式的文件");
} }
...@@ -2408,18 +2459,30 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -2408,18 +2459,30 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
String originalFilename = multipartFile.getOriginalFilename(); String originalFilename = multipartFile.getOriginalFilename();
String nameCode = originalFilename.replace(".bmp","").replace(".txt","");
SoilExperimentVO vo = nameCodeList.get(nameCode);
CollectDataType dataType = new CollectDataType();
dataType.setExpId(vo.getId());
dataType.setSampleCode(vo.getSampleCode()); if (originalFilename.contains(".bmp")||originalFilename.contains(".txt")){
dataType.setExperiment(vo.getName()); String nameCode = originalFilename.replace(".bmp","").replace(".txt","");
dataType.setEntrustCode(vo.getEntrustCode()); String lastName = name.substring(name.length()-1,name.length());
if (originalFilename.contains(".bmp")){ if ("r".equals(lastName)){
uploadCollectPng(multipartFile,dataType); if (nameCode.contains("三轴压缩")&&(!nameCode.contains("重塑"))){
}else if (originalFilename.contains(".txt")){ nameCode = nameCode.replace("三轴压缩","三轴压缩重塑");
parseTxt(multipartFile,dataType); }
}
SoilExperimentVO vo = nameCodeList.get(nameCode);
CollectDataType dataType = new CollectDataType();
dataType.setExpId(vo.getId());
dataType.setSampleCode(vo.getSampleCode());
dataType.setExperiment(vo.getName());
dataType.setEntrustCode(vo.getEntrustCode());
if (originalFilename.contains(".bmp")){
uploadCollectPng(multipartFile,dataType);
}else if (originalFilename.contains(".txt")){
parseTxt(multipartFile,dataType);
}
}else {
RestAssert.fail("请上传 .bmp 或者 .txt格式的文件");
} }
} }
return true; return true;
...@@ -2492,7 +2555,13 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -2492,7 +2555,13 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
String name = smbFile.getOriginalFilename(); String name = smbFile.getOriginalFilename();
if (name.contains(type.getExperiment())){ String expname= type.getExperiment();
if (expname.contains("三轴压缩")&&(!expname.contains("重塑"))){
expname="三轴压缩";
}else if (expname.contains("三轴压缩")&&(expname.contains("三轴压缩"))){
expname="三轴压缩重塑";
}
if (name.contains(expname)){
SoilSample sample = soilSampleService.getBySampleCode(type.getSampleCode()); SoilSample sample = soilSampleService.getBySampleCode(type.getSampleCode());
if (null !=sample){ if (null !=sample){
XSSFWorkbook xssfWorkbook= exportService.getXSSFWorkbook("AttachmentTemplateSZYS.xlsx"); XSSFWorkbook xssfWorkbook= exportService.getXSSFWorkbook("AttachmentTemplateSZYS.xlsx");
...@@ -2545,6 +2614,16 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -2545,6 +2614,16 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
appendix.setTitle("附录"+count); appendix.setTitle("附录"+count);
appendix.setExpId(type.getExpId()); appendix.setExpId(type.getExpId());
appendix.setSampleCode(type.getSampleCode()); appendix.setSampleCode(type.getSampleCode());
if (name.contains("三轴")){
appendix.setRemark("三轴");
}else if (name.contains("固结")){
appendix.setRemark("固结");
}else if (name.contains("直剪")||name.contains("直接剪切")){
appendix.setRemark("直剪");
}else if (name.contains("无侧限")){
appendix.setRemark("无侧限");
}
appendix.setEntrustCode(type.getEntrustCode()); appendix.setEntrustCode(type.getEntrustCode());
soilAppendixService.save(appendix); soilAppendixService.save(appendix);
......
...@@ -424,7 +424,7 @@ ...@@ -424,7 +424,7 @@
<select id="selectByEntrustId" resultType="com.patzn.cloud.service.soil.vo.SoilExperimentVO"> <select id="selectByEntrustId" resultType="com.patzn.cloud.service.soil.vo.SoilExperimentVO">
SELECT i.id,i.name,s.sample_code FROM soil_experiment i SELECT i.id,i.name,s.sample_code,s.site_no FROM soil_experiment i
JOIN soil_sample s ON i.sample_id = s.id JOIN soil_sample s ON i.sample_id = s.id
JOIN soil_entrust e ON s.entrust_id = e.id JOIN soil_entrust e ON s.entrust_id = e.id
......
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