Commit b3bcc2a2 by wangweidong

土工平台修改

parent 99537cad
......@@ -10,7 +10,7 @@ import org.slf4j.LoggerFactory;
public class PngReportHandle implements ICollectHandler {
protected final Logger logger = LoggerFactory.getLogger(PngReportHandle.class);
protected static final Logger logger = LoggerFactory.getLogger(PngReportHandle.class);
@Override
public Boolean process(CollectDataType request, ISoilExperimentService soilExperimentService) {
......@@ -69,12 +69,18 @@ public class PngReportHandle implements ICollectHandler {
public static SmbFile[] getShareFiles(String url) throws Exception {
SmbFile file = new SmbFile(url);
if(file.exists()){
SmbFile[] files = file.listFiles();
return files;
public static SmbFile[] getShareFiles(String url) {
try {
SmbFile file = new SmbFile(url);
if(file.exists()){
SmbFile[] files = file.listFiles();
return files;
}
}catch (Exception e){
logger.error("共享文件获取失败的原因是:"+e.getMessage());
}
return null;
}
......
......@@ -3,12 +3,14 @@ package com.patzn.cloud.service.lims.common;
import com.aspose.cells.SaveFormat;
import com.aspose.cells.Workbook;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.commons.toolkit.DateUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Date;
import java.util.List;
public class AsposeUtil {
......@@ -20,21 +22,26 @@ public class AsposeUtil {
FileOutputStream fileOutputStream=null;
FileOutputStream fileOut=null;
try {
logger.error("mergeWork----------1");
for (Workbook book:workbooksList) {
workbook.combine(book);
}
logger.error("mergeWork----------2");
File tempFile = File.createTempFile(name+"pre",".xlsx");
File tempFile = File.createTempFile(DateUtils.toYearMonthDayEasy(new Date())+"shiyan",".xlsx");
logger.error("mergeWork----------3");
fileOut =new FileOutputStream(tempFile);
logger.error("mergeWork----------4");
workbook.save(fileOut, SaveFormat.XLSX);
logger.error("mergeWork----------5");
XSSFWorkbook workbookOk = new XSSFWorkbook(tempFile);
workbookOk.setActiveSheet(0);
workbookOk.removeSheetAt(workbookOk.getNumberOfSheets()-1);
File file = File.createTempFile(name,".xlsx");
logger.error("mergeWork----------6");
File file = File.createTempFile(DateUtils.toYearMonthDayEasy(new Date())+name,".xlsx");
logger.error("mergeWork----------7");
fileOutputStream=new FileOutputStream(file);
workbookOk.write(fileOutputStream);
fileOut.flush();
......
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.service.lims.collect.statics.StaticsData;
import com.patzn.cloud.service.soil.entity.SoilExperimentCollectData;
import com.patzn.cloud.service.soil.vo.SoilExperimentCollectDataVO;
import org.apache.commons.lang.math.NumberUtils;
import org.apache.commons.lang3.StringUtils;
import java.io.*;
......@@ -13,10 +14,10 @@ import java.util.List;
public class CollectUtil {
public static void main(String[] args) {
File file = new File("D://三轴压缩S-10r.txt");
File file = new File("D://界限含水率(联合测定)S-1.txt");
try {
FileInputStream io = new FileInputStream(file);
txt2String(io);
txt2StringWuxing(io);
}catch (Exception e){
}
......@@ -133,9 +134,104 @@ public class CollectUtil {
}
}
else if (s.contains("试样编号")){
if (!sampleCode.equals("")&&!"".equals(gcbh)){
System.out.println(sampleCode);
if (listOne.size()>1){
String name = listOne.get(0);
if (StringUtils.isNotBlank(name)){
name = name.replace(" ","");
if ("锥深".equals(name)){
for (int i = 1; i <listOne.size() ; i++) {
String valueChile = listOne.get(i);
if (!NumberUtils.isNumber(valueChile)){
continue;
}
String nameChild = name+i;
SoilExperimentCollectDataVO collectData = new SoilExperimentCollectDataVO();
collectData.setName(nameChild);
collectData.setTestValue(valueChile);
collectData.setEntrustCode(gcbh);
collectData.setSiteNo(sampleCode);
collectData.setExpName("界限含水率");
dataList.add(collectData);
}
}
}
}
if (listTwo.size()>1){
String name = listTwo.get(0);
if (StringUtils.isNotBlank(name)){
name = name.replace(" ","");
if ("盒号".equals(name)){
for (int i = 1; i <listTwo.size() ; i++) {
String valueChile = listTwo.get(i);
if (valueChile.contains("%")){
continue;
}
String nameChild = name+i;
SoilExperimentCollectDataVO collectData = new SoilExperimentCollectDataVO();
collectData.setName(nameChild);
collectData.setTestValue(valueChile);
collectData.setEntrustCode(gcbh);
collectData.setSiteNo(sampleCode);
collectData.setExpName("界限含水率");
dataList.add(collectData);
}
}
}
}
if (listThree.size()>1){
String name = listThree.get(0);
if (StringUtils.isNotBlank(name)){
name = name.replace(" ","");
if ("湿土重".equals(name)){
for (int i = 1; i <listThree.size() ; i++) {
String valueChile = listThree.get(i);
if (!NumberUtils.isNumber(valueChile)){
continue;
}
String nameChild = name+i;
SoilExperimentCollectDataVO collectData = new SoilExperimentCollectDataVO();
collectData.setName(nameChild);
collectData.setTestValue(valueChile);
collectData.setEntrustCode(gcbh);
collectData.setSiteNo(sampleCode);
collectData.setExpName("界限含水率");
dataList.add(collectData);
}
}
}
}
if (listFour.size()>1){
String name = listFour.get(0);
if (StringUtils.isNotBlank(name)){
name = name.replace(" ","");
if ("干土重".equals(name)){
for (int i = 1; i <listFour.size() ; i++) {
String valueChile = listFour.get(i);
if (!NumberUtils.isNumber(valueChile)){
continue;
}
String nameChild = name+i;
SoilExperimentCollectDataVO collectData = new SoilExperimentCollectDataVO();
collectData.setName(nameChild);
collectData.setTestValue(valueChile);
collectData.setEntrustCode(gcbh);
collectData.setSiteNo(sampleCode);
collectData.setExpName("界限含水率");
dataList.add(collectData);
}
}
}
}
if (listTwo.size()>0){
dataList.add(getDataVO("液限含水率",listTwo.get(listTwo.size()-1),gcbh,sampleCode,"界限含水率"));
}
......@@ -143,11 +239,8 @@ public class CollectUtil {
dataList.add(getDataVO("塑限含水率",listFour.get(listFour.size()-1),gcbh,sampleCode,"界限含水率"));
}
System.out.println(listOne);
System.out.println(listTwo);
System.out.println(listThree);
System.out.println(listFour);
System.out.println(listFive);
}
String [] sampleCodes = s.split("┃");
......@@ -223,6 +316,98 @@ public class CollectUtil {
System.out.println(sampleCode);
if (!"".equals(sampleCode)&&!"".equals(gcbh)){
if (listOne.size()>1){
String name = listOne.get(0);
if (StringUtils.isNotBlank(name)){
name = name.replace(" ","");
if ("锥深".equals(name)){
for (int i = 1; i <listOne.size() ; i++) {
String valueChile = listOne.get(i);
if (!NumberUtils.isNumber(valueChile)){
continue;
}
String nameChild = name+i;
SoilExperimentCollectDataVO collectData = new SoilExperimentCollectDataVO();
collectData.setName(nameChild);
collectData.setTestValue(valueChile);
collectData.setEntrustCode(gcbh);
collectData.setSiteNo(sampleCode);
collectData.setExpName("界限含水率");
dataList.add(collectData);
}
}
}
}
if (listTwo.size()>1){
String name = listTwo.get(0);
if (StringUtils.isNotBlank(name)){
name = name.replace(" ","");
if ("盒号".equals(name)){
for (int i = 1; i <listTwo.size() ; i++) {
String valueChile = listTwo.get(i);
if (valueChile.contains("%")){
continue;
}
String nameChild = name+i;
SoilExperimentCollectDataVO collectData = new SoilExperimentCollectDataVO();
collectData.setName(nameChild);
collectData.setTestValue(valueChile);
collectData.setEntrustCode(gcbh);
collectData.setSiteNo(sampleCode);
collectData.setExpName("界限含水率");
dataList.add(collectData);
}
}
}
}
if (listThree.size()>1){
String name = listThree.get(0);
if (StringUtils.isNotBlank(name)){
name = name.replace(" ","");
if ("湿土重".equals(name)){
for (int i = 1; i <listThree.size() ; i++) {
String valueChile = listThree.get(i);
if (!NumberUtils.isNumber(valueChile)){
continue;
}
String nameChild = name+i;
SoilExperimentCollectDataVO collectData = new SoilExperimentCollectDataVO();
collectData.setName(nameChild);
collectData.setTestValue(valueChile);
collectData.setEntrustCode(gcbh);
collectData.setSiteNo(sampleCode);
collectData.setExpName("界限含水率");
dataList.add(collectData);
}
}
}
}
if (listFour.size()>1){
String name = listFour.get(0);
if (StringUtils.isNotBlank(name)){
name = name.replace(" ","");
if ("干土重".equals(name)){
for (int i = 1; i <listFour.size() ; i++) {
String valueChile = listFour.get(i);
if (!NumberUtils.isNumber(valueChile)){
continue;
}
String nameChild = name+i;
SoilExperimentCollectDataVO collectData = new SoilExperimentCollectDataVO();
collectData.setName(nameChild);
collectData.setTestValue(valueChile);
collectData.setEntrustCode(gcbh);
collectData.setSiteNo(sampleCode);
collectData.setExpName("界限含水率");
dataList.add(collectData);
}
}
}
}
if (listTwo.size()>0){
dataList.add(getDataVO("液限含水率",listTwo.get(listTwo.size()-1),gcbh,sampleCode,"界限含水率"));
......@@ -230,11 +415,6 @@ public class CollectUtil {
if (listFour.size()>0){
dataList.add(getDataVO("塑限含水率",listFour.get(listFour.size()-1),gcbh,sampleCode,"界限含水率"));
}
System.out.println(listOne);
System.out.println(listTwo);
System.out.println(listThree);
System.out.println(listFour);
System.out.println(listFive);
}
......@@ -242,6 +422,10 @@ public class CollectUtil {
}
for (SoilExperimentCollectDataVO dataVO : dataList) {
System.out.println(dataVO.getEntrustCode()+dataVO.getSiteNo()+dataVO.getName()+dataVO.getTestValue());
}
return dataList;
}
......
......@@ -734,6 +734,14 @@ public class SoilExperimentController extends ServiceController {
@ApiOperation(value = "界限含水率(联合测定)采集文件批量上传", notes = "附件批量上传")
@PostMapping("/upload_water_jiexian_collect/{entrustId}")
public RestResult<Boolean> uploadWaterJieXianCollect(@PathVariable("entrustId") Long entrustId, MultipartFile httpServletRequest) {
return success(soilExperimentService.uploadWaterJieXianCollect(httpServletRequest, entrustId,getAccount()));
}
@ApiOperation(value = "力学采集文件批量上传", notes = "附件批量上传")
@PostMapping("/upload_dynamics_collect/{entrustId}")
public RestResult<Boolean> uploadDynamicsCollect(@PathVariable("entrustId") Long entrustId, MultipartHttpServletRequest httpServletRequest) {
......
......@@ -108,6 +108,9 @@ public interface ISoilExperimentService extends IBaseService<SoilExperiment> {
boolean uploadDynamicsCollect(MultipartHttpServletRequest httpServletRequest, Long entrustId, Account account);
boolean uploadWaterJieXianCollect(MultipartFile httpServletRequest, Long entrustId, Account account);
SoilExpReport seniorTestReport(Long id, Account account);
Page<SoilExperimentVO> pageCheckStatistics(Page<SoilExperimentVO> page, SoilExperimentVO soilExperiment);
......
......@@ -629,46 +629,62 @@ public class SoilExpReportServiceImpl extends BaseServiceImpl<SoilExpReportMappe
@Override
public SoilExpReport generateAppendix(Long id, Account account) {
logger.error("开始生成附录generateAppendix-----");
RestAssert.fail(null == id ,"请选择要生成的报告");
logger.error("1-----------------");
List<SoilExpReportRelExp> reportRelExpList = soilExpReportRelExpService.list(Condition.create().eq("exp_report_id",id));
logger.error("2-----------------");
if (CollectionUtils.isEmpty(reportRelExpList)){
RestAssert.fail("该项目报告不含有项目!!");
}
logger.error("3-----------------");
List<Long> expIdsList = reportRelExpList.stream().map(r->{
return r.getExpId();
}).collect(Collectors.toList());
logger.error("4-----------------");
SoilExpReport soilExpReport = getById(id);
logger.error("5-----------------");
List<SoilAppendix> appendixList = soilAppendixService.list(Condition.create().in("exp_id",expIdsList));
logger.error("6-----------------");
List<Workbook> bookList = new ArrayList<>();
logger.error("List<Workbook> bookList = new ArrayList<>();-----");
Workbook workbook =null;
XSSFWorkbook xssfWorkbook = HSSFWorkbookUtil.getWorkbookByIO(ossClient.download(soilExpReport.getObjectKey()));
logger.error("7-----------------");
if (null !=xssfWorkbook){
try {
workbook = new Workbook(exportToExcelInputStream(xssfWorkbook));
logger.error("8-----------------");
}catch (Exception e){
logger.error(" workbook = new Workbook(exportToExcelInputStream(xssfWorkbook));"+e.getMessage());
}
}
logger.error("9-----------------");
for (SoilAppendix appendix:appendixList) {
try {
logger.error("10-----------------");
Workbook book = new Workbook(ossClient.download(appendix.getObjectKey()));
if (null!=book){
logger.error("11-----------------");
bookList.add(book);
}
logger.error("12-----------------");
}catch (Exception e){
logger.error(" Workbook book = new Workbook(ossClient.download(appendix.getObjectKey()));;"+e.getMessage());
}
logger.error("13-----------------");
}
if (CollectionUtils.isNotEmpty(bookList)) {
try {
logger.error("14-----------------");
File allFileName = AsposeUtil.mergeWork(soilExpReport.getExpName(), workbook, bookList);
logger.error("15-----------------");
OssFileResult result = ossClient.upload(allFileName);
soilExpReport.setAppendixKey(result.getObjectKey());
if (updateById(soilExpReport)) {
......@@ -681,6 +697,8 @@ public class SoilExpReportServiceImpl extends BaseServiceImpl<SoilExpReportMappe
}
}else{
RestAssert.fail("改报告不含有附录请确认!");
}
return null;
......
......@@ -1634,33 +1634,22 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
checkChongSuMap.put(name,1);
}
}
List<SoilExperimentVO> newVOList = new ArrayList<>();
Map<String,SoilExperimentVO> newChongSuMap = new HashMap<>();
for (SoilExperimentVO vo:voList) {
String name = vo.getName().replace("-重塑","")+vo.getSampleCode();
if (!vo.getName().contains("重塑")){
newVOList.add(vo);
}else{
Integer num = checkChongSuMap.get(name);
if (null==num||num == 1) {
newVOList.add(vo);
}
newChongSuMap.put(vo.getName()+vo.getSampleCode(),vo);
}
}
voList = newVOList;
List<SoilItem> saveNewItemList = new ArrayList<>();
for (SoilExperimentVO vo:voList) {
SoilExperimentVO chongSu = newChongSuMap.get(vo.getName()+"-重塑"+vo.getSampleCode());
if (null!=chongSu){
......@@ -1673,17 +1662,10 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
}
}
}
for (SoilItem item : saveNewItemList) {
soilItemList.add(item);
}
}
Map<Long,List<SoilItem>> expItemMap = new HashMap<>();
for (SoilItem item:soilItemList) {
if (!expItemMap.containsKey(item.getExperimentId())){
......@@ -2865,6 +2847,26 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
@Transactional(rollbackFor = Exception.class)
@Override
public boolean uploadWaterJieXianCollect(MultipartFile file, Long entrustId, Account account) {
RestAssert.fail(null == entrustId,"请选则委托单ID");
SoilEntrust entrust = soilEntrustService.getById(entrustId);
List<SoilExperimentVO> voList = baseMapper.selectByEntrustId(entrustId);
if (CollectionUtils.isEmpty(voList)){
RestAssert.fail("检测项目不存在");
}
parseWuxingTxt(file,entrust,voList);
return true;
}
@Transactional(rollbackFor = Exception.class)
@Override
public SoilExpReport seniorTestReport(Long id, Account account) {
RestAssert.fail(null == id ,"请选择高级试验!");
List<SoilExpRelOriginalRecord> relOriginalRecordList = soilExpRelOriginalRecordService.list(Condition.create().eq("exp_id",id).last(" LIMIT 1 "));
......@@ -3555,6 +3557,54 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
return false;
}
public boolean parseWuxingTxt(MultipartFile smbFile, SoilEntrust entrust, List<SoilExperimentVO> voList) {
try {
List<SoilExperimentCollectDataVO> dataList= CollectUtil.txt2StringWuxing(smbFile.getInputStream());
if (CollectionUtils.isEmpty(dataList)){
RestAssert.fail("采集文件类型不匹配");
return false;
}
for (SoilExperimentCollectDataVO collectDataVO : dataList) {
RestAssert.fail(StringUtils.isBlank(collectDataVO.getEntrustCode()),"委托编号不能为空!");
RestAssert.fail(StringUtils.isBlank(collectDataVO.getSiteNo()),"现场编号不能为空!");
RestAssert.fail(StringUtils.isBlank(collectDataVO.getExpName()),"试验项目名称不能为空!");
RestAssert.fail(StringUtils.isBlank(collectDataVO.getName()),"指标名称不能为空!");
RestAssert.fail(StringUtils.isBlank(collectDataVO.getTestValue()),"指标值不能为空!");
RestAssert.fail(collectDataVO.getEntrustCode().equals(entrust.getEntrustCode()),"委托编号不匹配!");
}
if (CollectionUtils.isNotEmpty(voList)){
List<SoilItem> saveSoilItemList = new ArrayList<>();
for (SoilExperimentCollectDataVO dataVO:dataList) {
for (SoilExperimentVO vo : voList) {
if (vo.getSiteNo().equals(dataVO.getSiteNo())&&vo.getName().equals(dataVO.getExpName())){
SoilItem item = new SoilItem();
item.setStatus(0);
item.setProgress(0);
item.setName(dataVO.getName());
item.setTestValue(dataVO.getTestValue());
item.setExperimentId(vo.getId());
item.setUnit(dataVO.getUnit());
saveSoilItemList.add(item);
break;
}
}
}
if (CollectionUtils.isNotEmpty(saveSoilItemList)){
soilItemService.saveBatch(saveSoilItemList);
}
return true;
}
}catch (Exception e){
logger.error("parseWuxingTxt失败,原因:"+e.getMessage());
e.printStackTrace();
}
return false;
}
@Override
public boolean parseWuxingTxt(SmbFile smbFile, CollectDataType request) {
......
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