Commit fdc0e4d7 by zhangmengqi

Merge branch 'dev'

parents 8d26df93 bed6a743
......@@ -37,6 +37,7 @@ public class CollectUtil {
content = content.replace("凝 聚 力","凝聚力");
content = content.replace("灵 敏 度","灵敏度");
content = content.replace("粘 聚 力","凝聚力");
content = content.replace("粘聚力","凝聚力");
String[] dataArray = content.split(" ");
for (String handleS:dataArray) {
handleS=handleS.trim();
......
......@@ -83,4 +83,12 @@ public class SoilAppendixController extends ServiceController {
public RestResult<Boolean> delete(@RequestParam("ids") List<Long> 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 {
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;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.soil.entity.SoilAppendix;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
......@@ -21,4 +22,6 @@ public interface ISoilAppendixService extends IBaseService<SoilAppendix> {
int countByEntrustId(Long entrustId);
SoilAppendix getByExpId(Long expId);
void downloadFile(Long id, HttpServletResponse response);
}
......@@ -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.SoilReport;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.util.List;
......@@ -36,4 +37,6 @@ public interface ISoilExpReportService extends IBaseService<SoilExpReport> {
boolean expReportCheckBack(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;
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.service.ISoilAppendixService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.entity.SoilAppendix;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
......@@ -21,6 +25,9 @@ import java.util.List;
@Service
public class SoilAppendixServiceImpl extends BaseServiceImpl<SoilAppendixMapper, SoilAppendix> implements ISoilAppendixService {
@Autowired
private OssClient ossClient;
@Override
public Page<SoilAppendix> page(Page<SoilAppendix> page, SoilAppendix soilAppendix) {
Wrapper wrapper = new EntityWrapper<>(soilAppendix);
......@@ -42,4 +49,13 @@ public class SoilAppendixServiceImpl extends BaseServiceImpl<SoilAppendixMapper,
public SoilAppendix getByExpId(Long expId) {
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;
import com.aspose.cells.Workbook;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.google.common.collect.Lists;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.controller.LoginHelper;
......@@ -27,7 +26,6 @@ import com.patzn.cloud.service.soil.vo.SoilSampleVO;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
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.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.*;
......@@ -38,6 +36,7 @@ import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URL;
import java.util.*;
......@@ -605,6 +604,14 @@ public class SoilExpReportServiceImpl extends BaseServiceImpl<SoilExpReportMappe
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) {
......
......@@ -1367,6 +1367,21 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
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<>();
if (CollectionUtils.isNotEmpty(soilItemList)){
......@@ -1428,11 +1443,11 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
&& null!=template.getTemplateSampleNum()){
List<SoilExpReportTemplateConfig> configList = soilExpReportTemplateConfigService.list(Condition.create().eq("template_id",templateId));
if (sampleList.size()<templateSampleNum){
if (voList.size()<templateSampleNum){
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){
itemList = new ArrayList<>();
}
......@@ -1453,7 +1468,7 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
XSSFCellStyle cellStyle = zeroRow.getCell(0).getCellStyle();
int lastCellNum = zeroRow.getLastCellNum();
int insertCount = sampleList.size()-templateSampleNum;
int insertCount = voList.size()-templateSampleNum;
for (int m = 0 ; m<insertCount ;m++) {
for (int i = 0; i < sampleMergerNum; i++) {
sheetOne.shiftRows(insertRow, sheetOne.getLastRowNum(), 1,true,false);
......@@ -1467,9 +1482,9 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
}
}
int sn = 1;
for (SoilSampleVO vo:sampleList) {
for (SoilExperimentVO vo:voList) {
XSSFRow xssfRow = sheetOne.getRow(beginRow);
List<SoilItem> itemList = sampleItemMap.get(vo.getId());
List<SoilItem> itemList = expItemMap.get(vo.getId());
if (null == itemList){
itemList = new ArrayList<>();
}
......@@ -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
public void uploadCollectGds(SmbFile smbFile, CollectDataType request) {
......@@ -2372,11 +2410,21 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
Map<String,SoilExperimentVO> nameCodeList = new HashMap<>();
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();
List<String> failedNameList = new ArrayList<>();
while (fileNamesIt.hasNext()) {
......@@ -2386,13 +2434,16 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
String name = multipartFile.getName();
String originalFilename = multipartFile.getOriginalFilename();
if (originalFilename.contains(".bmp")||originalFilename.contains(".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)){
RestAssert.fail("请正确上传委托下的数据采集文件");
}
}else {
RestAssert.fail("请上传 .bmp 或者 .txt格式的文件");
}
......@@ -2408,18 +2459,30 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
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());
dataType.setExperiment(vo.getName());
dataType.setEntrustCode(vo.getEntrustCode());
if (originalFilename.contains(".bmp")){
uploadCollectPng(multipartFile,dataType);
}else if (originalFilename.contains(".txt")){
parseTxt(multipartFile,dataType);
if (originalFilename.contains(".bmp")||originalFilename.contains(".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("三轴压缩","三轴压缩重塑");
}
}
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;
......@@ -2492,7 +2555,13 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
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());
if (null !=sample){
XSSFWorkbook xssfWorkbook= exportService.getXSSFWorkbook("AttachmentTemplateSZYS.xlsx");
......@@ -2545,6 +2614,16 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
appendix.setTitle("附录"+count);
appendix.setExpId(type.getExpId());
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());
soilAppendixService.save(appendix);
......
......@@ -424,7 +424,7 @@
<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_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