Commit 65671bc2 by wangweidong

土工试验

parent 759289cd
...@@ -8,11 +8,29 @@ import java.util.ArrayList; ...@@ -8,11 +8,29 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
public class CollectHandlerChain { public class CollectHandlerChain {
private CollectHandlerChain(){
}
private static CollectHandlerChain collectHandlerChain=null;
public static CollectHandlerChain getInstance(){
if (null == collectHandlerChain){
synchronized (CollectHandlerChain.class){
collectHandlerChain = new CollectHandlerChain();
}
}
return collectHandlerChain;
}
// 持有所有Handler: // 持有所有Handler:
private List<ICollectHandler> handlers = new ArrayList<>(); private List<ICollectHandler> handlers = new ArrayList<>();
public void addHandler(ICollectHandler handler) { public void addHandler(ICollectHandler handler) {
this.handlers.add(handler); if (!this.handlers.contains(handler)){
this.handlers.add(handler);
}
} }
public boolean process(CollectDataType request, ISoilExperimentService soilExperimentService) { public boolean process(CollectDataType request, ISoilExperimentService soilExperimentService) {
...@@ -21,7 +39,7 @@ public class CollectHandlerChain { ...@@ -21,7 +39,7 @@ public class CollectHandlerChain {
Boolean r = handler.process(request,soilExperimentService); Boolean r = handler.process(request,soilExperimentService);
if (r != null) { if (r != null) {
// 如果返回TRUE或FALSE,处理结束: // 如果返回TRUE或FALSE,处理结束:
System.out.println(request + " " + (r ? "Approved by " : "Denied by ") + handler.getClass().getSimpleName()); System.out.println(request + " " + (r ? " Approved by " : "Denied by ") + handler.getClass().getSimpleName());
return r; return r;
} }
} }
......
...@@ -29,6 +29,16 @@ public class CollectDataType { ...@@ -29,6 +29,16 @@ public class CollectDataType {
private String experiment; private String experiment;
private String templateType;
public String getTemplateType() {
return templateType;
}
public void setTemplateType(String templateType) {
this.templateType = templateType;
}
public Long getEquipId() { public Long getEquipId() {
return equipId; return equipId;
} }
......
...@@ -7,6 +7,24 @@ import com.patzn.cloud.service.lims.soil.service.ISoilExperimentService; ...@@ -7,6 +7,24 @@ import com.patzn.cloud.service.lims.soil.service.ISoilExperimentService;
import jcifs.smb.SmbFile; import jcifs.smb.SmbFile;
public class GdsFileHandle implements ICollectHandler { public class GdsFileHandle implements ICollectHandler {
private GdsFileHandle(){
}
private static GdsFileHandle gdsFileHandle=null;
public static GdsFileHandle getInstance(){
if (null == gdsFileHandle){
synchronized (GdsFileHandle.class){
gdsFileHandle = new GdsFileHandle();
}
}
return gdsFileHandle;
}
@Override @Override
public Boolean process(CollectDataType request, ISoilExperimentService soilExperimentService) { public Boolean process(CollectDataType request, ISoilExperimentService soilExperimentService) {
String type = request.getType(); String type = request.getType();
......
...@@ -11,6 +11,21 @@ import org.slf4j.LoggerFactory; ...@@ -11,6 +11,21 @@ import org.slf4j.LoggerFactory;
public class PngReportHandle implements ICollectHandler { public class PngReportHandle implements ICollectHandler {
private PngReportHandle(){
}
private static PngReportHandle pngReportHandle=null;
public static PngReportHandle getInstance(){
if (null == pngReportHandle){
synchronized (PngReportHandle.class){
pngReportHandle = new PngReportHandle();
}
}
return pngReportHandle;
}
protected static final Logger logger = LoggerFactory.getLogger(PngReportHandle.class); protected static final Logger logger = LoggerFactory.getLogger(PngReportHandle.class);
@Override @Override
...@@ -18,7 +33,6 @@ public class PngReportHandle implements ICollectHandler { ...@@ -18,7 +33,6 @@ public class PngReportHandle implements ICollectHandler {
String type = request.getType(); String type = request.getType();
String collectionAddress = request.getCollectionAddress(); String collectionAddress = request.getCollectionAddress();
String acquisitionCommand = request.getAcquisitionCommand(); String acquisitionCommand = request.getAcquisitionCommand();
String entrustCode = request.getEntrustCode();
String boreholeName = request.getBoreholeName(); String boreholeName = request.getBoreholeName();
String sampleCode = request.getSampleCode(); String sampleCode = request.getSampleCode();
String expName = request.getExperiment(); String expName = request.getExperiment();
......
...@@ -10,6 +10,23 @@ import org.slf4j.LoggerFactory; ...@@ -10,6 +10,23 @@ import org.slf4j.LoggerFactory;
public class WuCollectHandle implements ICollectHandler { public class WuCollectHandle implements ICollectHandler {
private WuCollectHandle(){
}
private static WuCollectHandle wuCollectHandle=null;
public static WuCollectHandle getInstance(){
if (null == wuCollectHandle){
synchronized (WuCollectHandle.class){
wuCollectHandle = new WuCollectHandle();
}
}
return wuCollectHandle;
}
protected final Logger logger = LoggerFactory.getLogger(WuCollectHandle.class); protected final Logger logger = LoggerFactory.getLogger(WuCollectHandle.class);
@Override @Override
......
package com.patzn.cloud.service.lims.collect.tool;
public class CollectContext {
private String input;
private String output;
public CollectContext(String input) {
this.input = input;
}
public String getInput() {
return input;
}
public void setInput(String input) {
this.input = input;
}
public String getOutput() {
return output;
}
public void setOutput(String output) {
this.output = output;
}
}
package com.patzn.cloud.service.lims.collect.tool;
public abstract class Expression {
abstract void interpret(CollectContext c);
}
package com.patzn.cloud.service.lims.collect.tool;
public class LixueExpression extends Expression {
@Override
void interpret(CollectContext c) {
}
}
package com.patzn.cloud.service.lims.original; package com.patzn.cloud.service.lims.original;
import com.patzn.cloud.service.lims.common.StringHandleUtils;
import com.patzn.cloud.service.soil.entity.SoilEntrust; import com.patzn.cloud.service.soil.entity.SoilEntrust;
import com.patzn.cloud.service.soil.entity.SoilOriginalTemplate;
import com.patzn.cloud.service.soil.entity.SoilOriginalTemplateConfig;
import com.patzn.cloud.service.soil.vo.SoilExperimentVO;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.math.BigDecimal;
import java.util.Map; import java.util.Map;
public class InitMapReplace { public final class InitMapReplace {
public static void initMapReplace(Map<String, String> mapReplace, SoilEntrust entrust){ protected final static Logger logger = LoggerFactory.getLogger(InitMapReplace.class);
public static final void initMapReplace(Map<String, String> mapReplace, SoilEntrust entrust){
mapReplace.put("#{projectName}",entrust.getProjectName()); mapReplace.put("#{projectName}",entrust.getProjectName());
mapReplace.put("#{client}",entrust.getClient()); mapReplace.put("#{client}",entrust.getClient());
mapReplace.put("#{boreholeName}",entrust.getBoreholeName()); mapReplace.put("#{boreholeName}",entrust.getBoreholeName());
...@@ -17,4 +29,215 @@ public class InitMapReplace { ...@@ -17,4 +29,215 @@ public class InitMapReplace {
} }
mapReplace.put("#{reportCode}",entrust.getEntrustCode()); mapReplace.put("#{reportCode}",entrust.getEntrustCode());
} }
public final static Map<String, String> setCommonMapReplace(Map<String, String> mapReplaceMy,int length,SoilEntrust entrust){
mapReplaceMy.put("#{reportCode}",entrust.getEntrustCode());
for (int i = 0; i < length; i++) {
mapReplaceMy.put("#{sampleCode"+i+"}","");
mapReplaceMy.put("#{sampleDepth"+i+"}","");
mapReplaceMy.put("#{describeDetail"+i+"}","");
mapReplaceMy.put("#{siteNo"+i+"}","");
mapReplaceMy.put("#{含水率"+i+"}","");
mapReplaceMy.put("#{容重9.81"+i+"}","");
mapReplaceMy.put("#{密度9.81"+i+"}","");
}
mapReplaceMy.put("#{projectName}",entrust.getProjectName());
mapReplaceMy.put("#{client}",entrust.getClient());
mapReplaceMy.put("#{boreholeName}",entrust.getBoreholeName());
mapReplaceMy.put("#{projectNo}",entrust.getProjectNo());
return mapReplaceMy;
}
public final static void setValueMapCheck(Map<String, String> mapReplaceMy,int j){
if (!mapReplaceMy.containsKey("#{含水率"+j+"}")){
mapReplaceMy.put("#{含水率"+j+"}","");
mapReplaceMy.put("#{含水率"+j+"}","");
}
if (!mapReplaceMy.containsKey("#{液限"+j+"}")){
mapReplaceMy.put("#{液限"+j+"}","");
}
if (!mapReplaceMy.containsKey("#{塑限"+j+"}")){
mapReplaceMy.put("#{塑限"+j+"}","");
}
if (!mapReplaceMy.containsKey("#{比重"+j+"}")){
mapReplaceMy.put("#{比重"+j+"}","");
}
if (!mapReplaceMy.containsKey("#{密度"+j+"}")){
mapReplaceMy.put("#{密度"+j+"}","");
}
}
public final static void setMiDuValue(Map<String, String> mapReplaceMy, int j) {
if (!mapReplaceMy.containsKey("#{密度"+j+"}")){
mapReplaceMy.put("#{密度"+j+"}","");
mapReplaceMy.put("#{密度9.81"+j+"}","");
}else{
String miDu = mapReplaceMy.get("#{密度"+j+"}");
if (StringUtils.isBlank(miDu)){
mapReplaceMy.put("#{密度9.81"+j+"}","");
}else {
if (StringHandleUtils.validateNumber(miDu)){
BigDecimal mi = new BigDecimal(miDu);
BigDecimal chengShu = new BigDecimal("9.81");
BigDecimal ji = mi.multiply(chengShu);
mapReplaceMy.put("#{密度9.81"+j+"}",ji.toString());
}else{
mapReplaceMy.put("#{密度9.81"+j+"}","");
}
}
}
}
public final static void setBulkDensityValue(Map<String, String> mapReplaceMy, int j) {
if (!mapReplaceMy.containsKey("#{容重"+j+"}")){
mapReplaceMy.put("#{容重"+j+"}","");
mapReplaceMy.put("#{容重9.81"+j+"}","");
}else{
String bulkDensity = mapReplaceMy.get("#{容重"+j+"}");
if (StringUtils.isBlank(bulkDensity)){
mapReplaceMy.put("#{容重9.81"+j+"}","");
}else {
if (StringHandleUtils.validateNumber(bulkDensity)){
BigDecimal bulkDensityDecimal = new BigDecimal(bulkDensity);
BigDecimal chengShu = new BigDecimal("9.81");
BigDecimal ji = bulkDensityDecimal.multiply(chengShu);
mapReplaceMy.put("#{容重9.81"+j+"}",ji.toString());
}else{
mapReplaceMy.put("#{容重9.81"+j+"}","");
}
}
}
}
public final static void setSingleValueMapCheck(Map<String, String> mapReplace, SoilExperimentVO vo) {
if (!mapReplace.containsKey("#{含水率}")){
mapReplace.put("#{含水率}","");
}
if (!mapReplace.containsKey("#{液限}")){
mapReplace.put("#{液限}","");
}
if (!mapReplace.containsKey("#{塑限}")){
mapReplace.put("#{塑限}","");
}
if (!mapReplace.containsKey("#{比重}")){
mapReplace.put("#{比重}","");
}
if (!mapReplace.containsKey("#{密度}")){
mapReplace.put("#{密度}","");
}
mapReplace.put("#{sampleCode}",vo.getSampleCode());
mapReplace.put("#{siteNo}",vo.getSiteNo());
mapReplace.put("#{sampleDepth}",vo.getSampleDepth());
mapReplace.put("#{describeDetail}",StringHandleUtils.getString(vo.getSampleDepth()));
}
public final static void doMIDUSingle(Map<String, String> myMapReplace) {
String density = myMapReplace.get("#{密度}");
if (StringUtils.isNotBlank(density)){
try {
BigDecimal bigDecimal = new BigDecimal(density);
BigDecimal mul = new BigDecimal("9.81");
BigDecimal rz981 = bigDecimal.multiply(mul);
myMapReplace.put("#{密度9.81}",rz981.toString());
}catch (Exception e){
myMapReplace.put("#{密度9.81}","");
myMapReplace.put("#{密度}","");
logger.error("密度转化失败"+density+e.getMessage());
}
}else{
myMapReplace.put("#{密度9.81}","");
myMapReplace.put("#{密度}","");
}
}
public final static String doFormula(String formula,int i) {
formula = formula.replace("#{sn}",(i+1)+"");
if (formula.contains("#{sneven1}")){
if (StringHandleUtils.isEven(i)){
formula= formula.replace("#{sneven1}",(i+1)+"");
}else{
formula= formula.replace("#{sneven1}",i+"");
}
}
if (formula.contains("#{snodd1}")){
if (!StringHandleUtils.isEven(i)){
formula= formula.replace("#{snodd1}",(i+1)+"");
}else{
formula= formula.replace("#{snodd1}",i+"");
}
}
if (formula.contains("#{sn+1}")){
formula= formula.replace("#{sn+1}",(i+2)+"");
}
if (formula.contains("#{sn+2}")){
formula= formula.replace("#{sn+2}",(i+3)+"");
}
if (formula.contains("#{sn+3}")){
formula= formula.replace("#{sn+3}",(i+4)+"");
}
if (formula.contains("#{sn+4}")){
formula= formula.replace("#{sn+4}",(i+5)+"");
}
if (formula.contains("#{sn+5}")){
formula= formula.replace("#{sn+5}",(i+6)+"");
}
if (formula.contains("#{sn+6}")){
formula= formula.replace("#{sn+6}",(i+7)+"");
}
if (formula.contains("#{sn+7}")){
formula= formula.replace("#{sn+7}",(i+8)+"");
}
return formula;
}
public final static void initFormula(SoilOriginalTemplateConfig config, SoilOriginalTemplate template, int sampleMergerNum, int templateSampleNum, XSSFSheet sheetOne) {
if (null == config.getMergeRowNum()){
config.setMergeRowNum(1);
}
if(OriginalUtil.skipDoExcel(config)){
return;
}
Integer sampleBgMum = template.getSampleBeginRow();
Integer mergeRowNum = config.getMergeRowNum();
int formulaNum = template.getSampleBeginRow()+sampleMergerNum*templateSampleNum-1 ;
for (int i =sampleBgMum ; i <= formulaNum; i+=mergeRowNum) {
XSSFRow row = sheetOne.getRow(i);
if (null == row){
return;
}
XSSFCell cell = row.getCell(config.getColumnPlace());
if (null == cell){
return;
}
cell.setCellFormula(InitMapReplace.doFormula(config.getFormula(),i));
}
}
} }
...@@ -9,7 +9,6 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook; ...@@ -9,7 +9,6 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.InputStream; import java.io.InputStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
...@@ -24,7 +23,8 @@ public class OriginalOperationFactory { ...@@ -24,7 +23,8 @@ public class OriginalOperationFactory {
private Map<Long,List<SoilItemVO>> sampleSoilItemVOMap=new ConcurrentHashMap<>(); private Map<Long,List<SoilItemVO>> sampleSoilItemVOMap=new ConcurrentHashMap<>();
private SoilEntrust entrust; private SoilEntrust entrust;
public OriginalOperationFactory(XSSFWorkbook xssfWorkbook, InputStream io, Map<String, String> mapReplace, List<SoilOriginalTemplateConfig> configList, SoilOriginalTemplate template, List<SoilExperimentVO> voList, List<SoilItemVO> soilItemVOList ,SoilEntrust entrust) {
public void initParams(XSSFWorkbook xssfWorkbook, InputStream io, Map<String, String> mapReplace, List<SoilOriginalTemplateConfig> configList, SoilOriginalTemplate template, List<SoilExperimentVO> voList, List<SoilItemVO> soilItemVOList ,SoilEntrust entrust) {
this.xssfWorkbook = xssfWorkbook; this.xssfWorkbook = xssfWorkbook;
this.io = io; this.io = io;
this.mapReplace = mapReplace; this.mapReplace = mapReplace;
...@@ -62,16 +62,24 @@ public class OriginalOperationFactory { ...@@ -62,16 +62,24 @@ public class OriginalOperationFactory {
if (null==template.getMoreSheet() || 0 == template.getMoreSheet()){ if (null==template.getMoreSheet() || 0 == template.getMoreSheet()){
//单模板 //单模板
if (voList.size()<templateSampleNum){ if (voList.size()<templateSampleNum){
return new SingleLessOperation(xssfWorkbook,io,mapReplace,configList,template,voList,sampleSoilItemVOMap); SingleLessOperation singleLessOperation = new SingleLessOperation();
singleLessOperation.initParam(xssfWorkbook,io,mapReplace,configList,template,voList,sampleSoilItemVOMap);
return singleLessOperation;
}else{ }else{
return new SingleMoreOperation(xssfWorkbook,io,mapReplace,configList,template,voList,sampleSoilItemVOMap); SingleMoreOperation singleMoreOperation = new SingleMoreOperation();
singleMoreOperation.initParam(xssfWorkbook,io,mapReplace,configList,template,voList,sampleSoilItemVOMap);
return singleMoreOperation;
} }
}else{ }else{
//多sheet模板 //多sheet模板
if (null == templateSampleNum || 1==templateSampleNum){ if (null == templateSampleNum || 1==templateSampleNum){
return new SheetMoreSingleOperation(xssfWorkbook,io,mapReplace,configList,template,voList,sampleSoilItemVOMap); SheetMoreSingleOperation sheetMoreSingleOperation = new SheetMoreSingleOperation();
sheetMoreSingleOperation.initParam(xssfWorkbook,io,mapReplace,configList,template,voList,sampleSoilItemVOMap);
return sheetMoreSingleOperation;
}else{ }else{
return new SheetMoreMuchOperation(xssfWorkbook,io,mapReplace,configList,template,voList,sampleSoilItemVOMap,entrust); SheetMoreMuchOperation sheetMoreMuchOperation = new SheetMoreMuchOperation();
sheetMoreMuchOperation.initParam(xssfWorkbook,io,mapReplace,configList,template,voList,sampleSoilItemVOMap,entrust);
return sheetMoreMuchOperation;
} }
} }
} }
......
package com.patzn.cloud.service.lims.original; package com.patzn.cloud.service.lims.original;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.service.lims.common.HSSFWorkbookUtil; import com.patzn.cloud.service.lims.common.HSSFWorkbookUtil;
import com.patzn.cloud.service.soil.entity.SoilOriginalTemplate; import com.patzn.cloud.service.soil.entity.SoilOriginalTemplate;
import com.patzn.cloud.service.soil.entity.SoilOriginalTemplateConfig; import com.patzn.cloud.service.soil.entity.SoilOriginalTemplateConfig;
...@@ -17,6 +18,12 @@ import java.util.Map; ...@@ -17,6 +18,12 @@ import java.util.Map;
public final class OriginalUtil { public final class OriginalUtil {
public static void doForValue(int sampleMergerNum, XSSFSheet sheetOne, int beginRow, SoilOriginalTemplateConfig config, String name, List<SoilItemVO> soilItemVOS ){ public static void doForValue(int sampleMergerNum, XSSFSheet sheetOne, int beginRow, SoilOriginalTemplateConfig config, String name, List<SoilItemVO> soilItemVOS ){
if (CollectionUtils.isEmpty(soilItemVOS)){
return;
}
if (StringUtils.isBlank(name)){
return;
}
for (int i = 0; i < sampleMergerNum; i++) { for (int i = 0; i < sampleMergerNum; i++) {
XSSFRow zhuiRow = sheetOne.getRow(beginRow+i); XSSFRow zhuiRow = sheetOne.getRow(beginRow+i);
if (null!=zhuiRow){ if (null!=zhuiRow){
......
package com.patzn.cloud.service.lims.original; package com.patzn.cloud.service.lims.original;
import com.baomidou.mybatisplus.toolkit.CollectionUtils; import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.google.common.collect.Maps;
import com.patzn.cloud.service.lims.common.HSSFWorkbookUtil; import com.patzn.cloud.service.lims.common.HSSFWorkbookUtil;
import com.patzn.cloud.service.lims.common.StringHandleUtils; import com.patzn.cloud.service.lims.common.StringHandleUtils;
import com.patzn.cloud.service.lims.gideon.utils.ApachePoiLineChart4; import com.patzn.cloud.service.lims.gideon.utils.ApachePoiLineChart4;
...@@ -35,7 +36,7 @@ public class SheetMoreSingleOperation implements Operation { ...@@ -35,7 +36,7 @@ public class SheetMoreSingleOperation implements Operation {
protected final Logger logger = LoggerFactory.getLogger(SheetMoreSingleOperation.class); protected final Logger logger = LoggerFactory.getLogger(SheetMoreSingleOperation.class);
public SheetMoreSingleOperation(XSSFWorkbook xssfWorkbook, InputStream io, Map<String, String> mapReplace, List<SoilOriginalTemplateConfig> configList, SoilOriginalTemplate template, List<SoilExperimentVO> voList, Map<Long, List<SoilItemVO>> sampleSoilItemVOMap) { public void initParam (XSSFWorkbook xssfWorkbook, InputStream io, Map<String, String> mapReplace, List<SoilOriginalTemplateConfig> configList, SoilOriginalTemplate template, List<SoilExperimentVO> voList, Map<Long, List<SoilItemVO>> sampleSoilItemVOMap) {
this.xssfWorkbook = xssfWorkbook; this.xssfWorkbook = xssfWorkbook;
this.io = io; this.io = io;
this.mapReplace = mapReplace; this.mapReplace = mapReplace;
...@@ -44,156 +45,68 @@ public class SheetMoreSingleOperation implements Operation { ...@@ -44,156 +45,68 @@ public class SheetMoreSingleOperation implements Operation {
this.voList = voList; this.voList = voList;
this.sampleSoilItemVOMap = sampleSoilItemVOMap; this.sampleSoilItemVOMap = sampleSoilItemVOMap;
} }
public synchronized void doProductOriginal(){ public synchronized void doProductOriginal(){
XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0); XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0);
xssfSheet.setForceFormulaRecalculation(true); xssfSheet.setForceFormulaRecalculation(true);
int index = 0; int index = 0;
SoilExperimentVO firstVO = null; SoilExperimentVO firstVO = null;
int sheetNum = xssfWorkbook.getNumberOfSheets(); int sheetNum = xssfWorkbook.getNumberOfSheets();
boolean kFNail = "颗粒分析实验(甲种)".equals(template.getName()) || "颗粒分析实验(乙种)".equals(template.getName())||"颗粒分析实验(ASTM)".equals(template.getName());
if (kFNail){
boolean keliJIa = "颗粒分析实验(甲种)".equals(template.getName()) || "颗粒分析实验(乙种)".equals(template.getName());
boolean keliAstm = "颗粒分析实验(ASTM)".equals(template.getName()) ;
if (keliJIa){
DrawXlsxUtil.AnchorPosition position = new DrawXlsxUtil.AnchorPosition(21,2,28,8,"颗粒大小分布曲线","颗粒大小(mm)","小于某直径之百分数(%)"); DrawXlsxUtil.AnchorPosition position = new DrawXlsxUtil.AnchorPosition(21,2,28,8,"颗粒大小分布曲线","颗粒大小(mm)","小于某直径之百分数(%)");
ApachePoiLineChart4.productZhexian(xssfSheet,position); ApachePoiLineChart4.productZhexian(xssfSheet,position);
} }
if (keliAstm){
DrawXlsxUtil.AnchorPosition position = new DrawXlsxUtil.AnchorPosition(21,2,28,8,"颗粒大小分布曲线","颗粒大小(mm)","小于某直径之百分数(%)");
ApachePoiLineChart4.productZhexianAstm(xssfSheet,position);
}
PrintSetup printSetup= xssfSheet.getPrintSetup(); PrintSetup printSetup= xssfSheet.getPrintSetup();
boolean printRound= printSetup.getLandscape(); boolean printRound= printSetup.getLandscape();
for (SoilExperimentVO vo:voList) { for (SoilExperimentVO vo:voList) {
if (index==0){ if (index==0){
index++; index++;
firstVO = vo; firstVO = vo;
continue; continue;
} }
XSSFSheet sheet = xssfWorkbook.cloneSheet(0); XSSFSheet sheet = xssfWorkbook.cloneSheet(0);
sheet.getPrintSetup().setLandscape(printRound); sheet.getPrintSetup().setLandscape(printRound);
if (keliJIa){ if (kFNail){
DrawXlsxUtil.AnchorPosition position = new DrawXlsxUtil.AnchorPosition(21,2,28,8,"颗粒大小分布曲线","颗粒大小(mm)","小于某直径之百分数(%)"); DrawXlsxUtil.AnchorPosition position = new DrawXlsxUtil.AnchorPosition(21,2,28,8,"颗粒大小分布曲线","颗粒大小(mm)","小于某直径之百分数(%)");
ApachePoiLineChart4.productZhexian(sheet,position); ApachePoiLineChart4.productZhexian(xssfSheet,position);
}
if (keliAstm){
DrawXlsxUtil.AnchorPosition position = new DrawXlsxUtil.AnchorPosition(21,2,28,8,"颗粒大小分布曲线","颗粒大小(mm)","小于某直径之百分数(%)");
ApachePoiLineChart4.productZhexianAstm(xssfSheet,position);
} }
index++; index++;
} }
int nextSample = sheetNum; int nextSample = sheetNum;
int itemSize = voList.size();
boolean start = true; for (int i = 0; i < itemSize; i++) {
for (SoilExperimentVO vo:voList) { if (i==0){
if (start){
start = false;
continue; continue;
} }
SoilExperimentVO vo = voList.get(i);
XSSFSheet sheet = xssfWorkbook.getSheetAt(nextSample); XSSFSheet sheet = xssfWorkbook.getSheetAt(nextSample);
xssfWorkbook.setSheetName(nextSample,vo.getSampleCode()); xssfWorkbook.setSheetName(nextSample,vo.getSampleCode());
Map<String,String> myMapReplace = Maps.newHashMap(mapReplace) ;
doExcelFill(vo,myMapReplace,sheet);
List<SoilItemVO> itemVOList = sampleSoilItemVOMap.get(vo.getSampleId());
if (CollectionUtils.isNotEmpty(itemVOList)){
for (SoilItemVO itemVO:itemVOList) {
mapReplace.put("#{"+itemVO.getName()+"}",itemVO.getTestValue());
}
}
if (!mapReplace.containsKey("#{含水率}")){
mapReplace.put("#{含水率}","");
}
if (!mapReplace.containsKey("#{液限}")){
mapReplace.put("#{液限}","");
}
if (!mapReplace.containsKey("#{塑限}")){
mapReplace.put("#{塑限}","");
}
if (!mapReplace.containsKey("#{比重}")){
mapReplace.put("#{比重}","");
}
if (!mapReplace.containsKey("#{密度}")){
mapReplace.put("#{密度}","");
}
mapReplace.put("#{sampleCode}",vo.getSampleCode());
mapReplace.put("#{siteNo}",vo.getSiteNo());
mapReplace.put("#{sampleDepth}",vo.getSampleDepth());
String midu = mapReplace.get("#{密度}");
if (StringUtils.isNotBlank(midu)){
try {
BigDecimal bigDecimal = new BigDecimal(midu);
BigDecimal mul = new BigDecimal("9.81");
BigDecimal rz981 = bigDecimal.multiply(mul);
mapReplace.put("#{密度9.81}",rz981.toString());
}catch (Exception e){
logger.error("密度9.81失败"+e.getMessage());
mapReplace.put("#{密度9.81}","");
}
}else{
mapReplace.put("#{密度9.81}","");
}
nextSample++; nextSample++;
HSSFWorkbookUtil.replaceModel(mapReplace,xssfWorkbook,sheet);
} }
Map<String,String> myMapReplace = Maps.newHashMap(mapReplace) ;
doExcelFill(firstVO,myMapReplace,xssfSheet);
}
public void doExcelFill(SoilExperimentVO vo,Map<String,String> myMapReplace, XSSFSheet sheet){
List<SoilItemVO> itemVOList = sampleSoilItemVOMap.get(firstVO.getSampleId()); List<SoilItemVO> itemVOList = sampleSoilItemVOMap.get(vo.getSampleId());
if (CollectionUtils.isNotEmpty(itemVOList)){ if (CollectionUtils.isNotEmpty(itemVOList)){
for (SoilItemVO itemVO:itemVOList) { for (SoilItemVO itemVO:itemVOList) {
mapReplace.put("#{"+itemVO.getName()+"}",itemVO.getTestValue()); myMapReplace.put("#{"+itemVO.getName()+"}",itemVO.getTestValue());
} }
} }
if (!mapReplace.containsKey("#{含水率}")){ InitMapReplace.setSingleValueMapCheck(myMapReplace,vo);
mapReplace.put("#{含水率}","");
}
if (!mapReplace.containsKey("#{液限}")){
mapReplace.put("#{液限}","");
}
if (!mapReplace.containsKey("#{塑限}")){ InitMapReplace.doMIDUSingle(myMapReplace);
mapReplace.put("#{塑限}","");
}
if (!mapReplace.containsKey("#{比重}")){
mapReplace.put("#{比重}","");
}
if (!mapReplace.containsKey("#{密度}")){ HSSFWorkbookUtil.replaceModel(myMapReplace,xssfWorkbook,sheet);
mapReplace.put("#{密度}","");
}
mapReplace.put("#{sampleCode}",firstVO.getSampleCode());
mapReplace.put("#{siteNo}",firstVO.getSiteNo());
mapReplace.put("#{sampleDepth}",firstVO.getSampleDepth());
String midu = mapReplace.get("#{密度}");
if (StringUtils.isNotBlank(midu)){
try {
BigDecimal bigDecimal = new BigDecimal(midu);
BigDecimal mul = new BigDecimal("9.81");
BigDecimal rz981 = bigDecimal.multiply(mul);
mapReplace.put("#{密度9.81}",rz981.toString());
}catch (Exception e){
logger.error("密度9.81失败"+e.getMessage());
mapReplace.put("#{密度9.81}","");
}
}else{
mapReplace.put("#{密度9.81}","");
}
HSSFWorkbookUtil.replaceModel(mapReplace,xssfWorkbook,xssfSheet);
} }
} }
...@@ -27,7 +27,7 @@ public class SingleLessOperation implements Operation { ...@@ -27,7 +27,7 @@ public class SingleLessOperation implements Operation {
protected final Logger logger = LoggerFactory.getLogger(SingleLessOperation.class); protected final Logger logger = LoggerFactory.getLogger(SingleLessOperation.class);
public SingleLessOperation(XSSFWorkbook xssfWorkbook, InputStream io, Map<String, String> mapReplace, List<SoilOriginalTemplateConfig> configList, SoilOriginalTemplate template, List<SoilExperimentVO> voList, Map<Long, List<SoilItemVO>> sampleSoilItemVOMap) { public void initParam (XSSFWorkbook xssfWorkbook, InputStream io, Map<String, String> mapReplace, List<SoilOriginalTemplateConfig> configList, SoilOriginalTemplate template, List<SoilExperimentVO> voList, Map<Long, List<SoilItemVO>> sampleSoilItemVOMap) {
this.xssfWorkbook = xssfWorkbook; this.xssfWorkbook = xssfWorkbook;
this.io = io; this.io = io;
this.mapReplace = mapReplace; this.mapReplace = mapReplace;
...@@ -40,6 +40,7 @@ public class SingleLessOperation implements Operation { ...@@ -40,6 +40,7 @@ public class SingleLessOperation implements Operation {
public synchronized void doProductOriginal(){ public synchronized void doProductOriginal(){
HSSFWorkbookUtil.replaceModel(mapReplace,xssfWorkbook,0); HSSFWorkbookUtil.replaceModel(mapReplace,xssfWorkbook,0);
XSSFSheet sheetOne = xssfWorkbook.getSheetAt(0); XSSFSheet sheetOne = xssfWorkbook.getSheetAt(0);
...@@ -82,67 +83,7 @@ public class SingleLessOperation implements Operation { ...@@ -82,67 +83,7 @@ public class SingleLessOperation implements Operation {
beginRow+=sampleMergerNum; beginRow+=sampleMergerNum;
} }
for (SoilOriginalTemplateConfig config:configList) { for (SoilOriginalTemplateConfig config:configList) {
if (null == config.getMergeRowNum()){ InitMapReplace.initFormula(config,template,sampleMergerNum,templateSampleNum,sheetOne);
config.setMergeRowNum(1);
}
if(OriginalUtil.skipDoExcel(config)){
continue;
}
Integer sampleBgMum = template.getSampleBeginRow();
Integer mergeRowNum = config.getMergeRowNum();
int formulaNum = template.getSampleBeginRow()+sampleMergerNum*templateSampleNum-1 ;
for (int i =sampleBgMum ; i <= formulaNum; i+=mergeRowNum) {
XSSFRow row = sheetOne.getRow(i);
if (null == row){
continue;
}
XSSFCell cell = row.getCell(config.getColumnPlace());
if (null == cell){
continue;
}
String formula = config.getFormula();
formula = formula.replace("#{sn}",(i+1)+"");
if (formula.contains("#{sneven1}")){
if (StringHandleUtils.isEven(i)){
formula= formula.replace("#{sneven1}",(i+1)+"");
}else{
formula= formula.replace("#{sneven1}",i+"");
}
}
if (formula.contains("#{snodd1}")){
if (!StringHandleUtils.isEven(i)){
formula= formula.replace("#{snodd1}",(i+1)+"");
}else{
formula= formula.replace("#{snodd1}",i+"");
}
}
if (formula.contains("#{sn+1}")){
formula= formula.replace("#{sn+1}",(i+2)+"");
}
if (formula.contains("#{sn+2}")){
formula= formula.replace("#{sn+2}",(i+3)+"");
}
if (formula.contains("#{sn+3}")){
formula= formula.replace("#{sn+3}",(i+4)+"");
}
if (formula.contains("#{sn+4}")){
formula= formula.replace("#{sn+4}",(i+5)+"");
}
if (formula.contains("#{sn+5}")){
formula= formula.replace("#{sn+5}",(i+6)+"");
}
if (formula.contains("#{sn+6}")){
formula= formula.replace("#{sn+6}",(i+7)+"");
}
if (formula.contains("#{sn+7}")){
formula= formula.replace("#{sn+7}",(i+8)+"");
}
cell.setCellFormula(formula);
}
} }
logger.error("----------------------7"); logger.error("----------------------7");
} }
......
...@@ -28,7 +28,7 @@ public class SingleMoreOperation implements Operation{ ...@@ -28,7 +28,7 @@ public class SingleMoreOperation implements Operation{
private List<SoilExperimentVO> voList; private List<SoilExperimentVO> voList;
private Map<Long,List<SoilItemVO>> sampleSoilItemVOMap; private Map<Long,List<SoilItemVO>> sampleSoilItemVOMap;
public SingleMoreOperation(XSSFWorkbook xssfWorkbook, InputStream io, Map<String, String> mapReplace, List<SoilOriginalTemplateConfig> configList, SoilOriginalTemplate template, List<SoilExperimentVO> voList, Map<Long, List<SoilItemVO>> sampleSoilItemVOMap) { public void initParam(XSSFWorkbook xssfWorkbook, InputStream io, Map<String, String> mapReplace, List<SoilOriginalTemplateConfig> configList, SoilOriginalTemplate template, List<SoilExperimentVO> voList, Map<Long, List<SoilItemVO>> sampleSoilItemVOMap) {
this.xssfWorkbook = xssfWorkbook; this.xssfWorkbook = xssfWorkbook;
this.io = io; this.io = io;
this.mapReplace = mapReplace; this.mapReplace = mapReplace;
...@@ -38,6 +38,8 @@ public class SingleMoreOperation implements Operation{ ...@@ -38,6 +38,8 @@ public class SingleMoreOperation implements Operation{
this.sampleSoilItemVOMap = sampleSoilItemVOMap; this.sampleSoilItemVOMap = sampleSoilItemVOMap;
} }
protected final Logger logger = LoggerFactory.getLogger(SingleMoreOperation.class); protected final Logger logger = LoggerFactory.getLogger(SingleMoreOperation.class);
...@@ -79,41 +81,33 @@ public class SingleMoreOperation implements Operation{ ...@@ -79,41 +81,33 @@ public class SingleMoreOperation implements Operation{
} }
XSSFRow row = sheetOne.createRow(insertRow); XSSFRow row = sheetOne.createRow(insertRow);
row.setHeight(zeroRow.getHeight()); row.setHeight(zeroRow.getHeight());
for (int j = 0; j < lastCellNum; j++) { for (int j = 0; j < lastCellNum; j++) {
XSSFCellStyle cellStyle = zeroRow.getCell(j).getCellStyle(); XSSFCellStyle cellStyle = zeroRow.getCell(j).getCellStyle();
XSSFCell xssfCell = row.createCell(j); XSSFCell xssfCell = row.createCell(j);
xssfCell.setCellStyle(cellStyle); xssfCell.setCellStyle(cellStyle);
} }
insertRow++; insertRow++;
} }
} }
int sn = 1; int sn = 1;
Map<String,String> siteNoSampleCodeMap = new HashMap<>(); Map<String,String> siteNoSampleCodeMap = new HashMap<>();
for (SoilExperimentVO vo:voList){ for (SoilExperimentVO vo:voList){
siteNoSampleCodeMap.put(vo.getSiteNo(),vo.getSampleCode()); siteNoSampleCodeMap.put(vo.getSiteNo(),vo.getSampleCode());
} }
for (SoilExperimentVO vo:voList) { for (SoilExperimentVO vo:voList) {
List<SoilItemVO> soilItemVOS = sampleSoilItemVOMap.get(vo.getSampleId()); List<SoilItemVO> soilItemVOS = sampleSoilItemVOMap.get(vo.getSampleId());
XSSFRow xssfRow = sheetOne.getRow(beginRow); XSSFRow xssfRow = sheetOne.getRow(beginRow);
for (SoilOriginalTemplateConfig config:configList) { for (SoilOriginalTemplateConfig config:configList) {
if (null == config.getColumnPlace()){ if (null == config.getColumnPlace()){
continue; continue;
} }
XSSFCell cell = xssfRow.getCell(config.getColumnPlace()); XSSFCell cell = xssfRow.getCell(config.getColumnPlace());
if (null!=config.getDataAttribute()&&config.getDataAttribute().contains("for")){ if (null!=config.getDataAttribute()&&config.getDataAttribute().contains("for")){
String name = config.getDataAttribute().replace("for",""); String name = config.getDataAttribute().replace("for","");
OriginalUtil.doForValue(sampleMergerNum,sheetOne,beginRow,config,name,soilItemVOS); OriginalUtil.doForValue(sampleMergerNum,sheetOne,beginRow,config,name,soilItemVOS);
continue; continue;
} }
if ("sn".equals(config.getDataAttribute())){ if ("sn".equals(config.getDataAttribute())){
cell.setCellValue(sn); cell.setCellValue(sn);
}else{ }else{
...@@ -124,67 +118,7 @@ public class SingleMoreOperation implements Operation{ ...@@ -124,67 +118,7 @@ public class SingleMoreOperation implements Operation{
sn++; sn++;
} }
for (SoilOriginalTemplateConfig config:configList) { for (SoilOriginalTemplateConfig config:configList) {
if (null==config.getMergeRowNum()){ InitMapReplace.initFormula(config,template,sampleMergerNum,templateSampleNum,sheetOne);
config.setMergeRowNum(1);
}
if (OriginalUtil.skipDoExcel(config)){
continue;
}
Integer sampleBgMum = template.getSampleBeginRow();
Integer mergeRowNum = config.getMergeRowNum();
int formulaNum = template.getSampleBeginRow()+sampleMergerNum*voList.size()-1 ;
for (int i =sampleBgMum ; i <= formulaNum; i+=mergeRowNum) {
XSSFRow row = sheetOne.getRow(i);
if (null == row){
continue;
}
XSSFCell cell = row.getCell(config.getColumnPlace());
if (null == cell){
continue;
}
String formula = config.getFormula();
formula = formula.replace("#{sn}",(i+1)+"");
if (formula.contains("#{sneven1}")){
if (StringHandleUtils.isEven(i)){
formula= formula.replace("#{sneven1}",(i+1)+"");
}else{
formula= formula.replace("#{sneven1}",i+"");
}
}
if (formula.contains("#{snodd1}")){
if (!StringHandleUtils.isEven(i)){
formula= formula.replace("#{snodd1}",(i+1)+"");
}else{
formula= formula.replace("#{snodd1}",i+"");
}
}
if (formula.contains("#{sn+1}")){
formula= formula.replace("#{sn+1}",(i+2)+"");
}
if (formula.contains("#{sn+2}")){
formula= formula.replace("#{sn+2}",(i+3)+"");
}
if (formula.contains("#{sn+3}")){
formula= formula.replace("#{sn+3}",(i+4)+"");
}
if (formula.contains("#{sn+4}")){
formula= formula.replace("#{sn+4}",(i+5)+"");
}
if (formula.contains("#{sn+5}")){
formula= formula.replace("#{sn+5}",(i+6)+"");
}
if (formula.contains("#{sn+6}")){
formula= formula.replace("#{sn+6}",(i+7)+"");
}
if (formula.contains("#{sn+7}")){
formula= formula.replace("#{sn+7}",(i+8)+"");
}
cell.setCellFormula(formula);
}
} }
...@@ -200,7 +134,6 @@ public class SingleMoreOperation implements Operation{ ...@@ -200,7 +134,6 @@ public class SingleMoreOperation implements Operation{
OriginalUtil.mergeExcel(sheetOne,template,step,templateSampleNum,sampleMergerNum,voList,config); OriginalUtil.mergeExcel(sheetOne,template,step,templateSampleNum,sampleMergerNum,voList,config);
}else{ }else{
OriginalUtil.mergeSpecialExcel(sheetOne,template,step,siteNoSampleCodeMap,templateSampleNum,sampleMergerNum,voList,config); OriginalUtil.mergeSpecialExcel(sheetOne,template,step,siteNoSampleCodeMap,templateSampleNum,sampleMergerNum,voList,config);
} }
} }
} }
......
package com.patzn.cloud.service.lims.socket;
import com.patzn.cloud.service.lims.soil.service.ISoilItemService;
import com.patzn.cloud.service.lims.soil.service.impl.SoilItemServiceImpl;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.SocketException;
import java.net.SocketTimeoutException;
import java.util.zip.DataFormatException;
public class ServerConfig extends Thread {
private Socket socket;
public ServerConfig(Socket socket) {
this.socket = socket;
}
// 获取spring容器管理的类,可以获取到sevrice的类
private ISoilItemService service = SpringUtil.getBean(SoilItemServiceImpl.class);
private String handle(InputStream inputStream) throws IOException, DataFormatException {
byte[] bytes = new byte[1024];
int len = inputStream.read(bytes);
if (len != -1) {
StringBuffer request = new StringBuffer();
request.append(new String(bytes, 0, len, "UTF-8"));
System.out.println("接受的数据: " + request);
System.out.println("from client ... " + request + "当前线程" + Thread.currentThread().getName());
} else {
throw new DataFormatException("数据处理异常");
}
return "";
}
@Override
public void run() {
BufferedWriter writer = null;
try {
// 设置连接超时9秒
socket.setSoTimeout(9000);
System.out.println("客户 - " + socket.getRemoteSocketAddress() + " -> 机连接成功");
InputStream inputStream = socket.getInputStream();
writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
String result = null;
try {
result = handle(inputStream);
writer.write(result);
writer.newLine();
writer.flush();
} catch (IOException | DataFormatException | IllegalArgumentException e) {
writer.write("error");
writer.newLine();
writer.flush();
System.out.println("发生异常");
try {
System.out.println("再次接受!");
result = handle(inputStream);
writer.write(result);
writer.newLine();
writer.flush();
} catch (DataFormatException | SocketTimeoutException ex) {
System.out.println("再次接受, 发生异常,连接关闭");
}
}
} catch (SocketException socketException) {
socketException.printStackTrace();
try {
writer.close();
} catch (IOException ioException) {
ioException.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
package com.patzn.cloud.service.lims.socket;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
@Component
@Configuration
@PropertySource("classpath:application.yml")
@ConfigurationProperties(prefix = "socket")
public class SocketProperties {
private Integer port;
private Integer poolKeep;
private Integer poolCore;
private Integer poolMax;
private Integer poolQueueInit;
public Integer getPort() {
return port;
}
public void setPort(Integer port) {
this.port = port;
}
public Integer getPoolKeep() {
return poolKeep;
}
public void setPoolKeep(Integer poolKeep) {
this.poolKeep = poolKeep;
}
public Integer getPoolCore() {
return poolCore;
}
public void setPoolCore(Integer poolCore) {
this.poolCore = poolCore;
}
public Integer getPoolMax() {
return poolMax;
}
public void setPoolMax(Integer poolMax) {
this.poolMax = poolMax;
}
public Integer getPoolQueueInit() {
return poolQueueInit;
}
public void setPoolQueueInit(Integer poolQueueInit) {
this.poolQueueInit = poolQueueInit;
}
}
...@@ -94,6 +94,25 @@ public class SoilExpReportController extends ServiceController { ...@@ -94,6 +94,25 @@ public class SoilExpReportController extends ServiceController {
} }
@ApiOperation("试验项目报告复核退回")
@PostMapping("/back_exp_report_check")
public RestResult<Boolean> backExpReportCheck(@RequestParam("ids") Long [] ids,@RequestParam("remark") String remark) {
return success(soilExpReportService.backExpReportCheck(ids,remark,getAccount()));
}
@ApiOperation("试验项目报告签发退回")
@PostMapping("/back_exp_report_issue")
public RestResult<Boolean> backExpReportIssue(@RequestParam("ids") Long [] ids,@RequestParam("remark") String remark) {
return success(soilExpReportService.backExpReportIssue(ids,remark,getAccount()));
}
@ApiOperation("试验项目报告编制提交") @ApiOperation("试验项目报告编制提交")
@PostMapping("/exp_report_approve") @PostMapping("/exp_report_approve")
public RestResult<Boolean> expReportCheckApprove(@RequestParam("ids") Long [] ids) { public RestResult<Boolean> expReportCheckApprove(@RequestParam("ids") Long [] ids) {
...@@ -103,6 +122,9 @@ public class SoilExpReportController extends ServiceController { ...@@ -103,6 +122,9 @@ public class SoilExpReportController extends ServiceController {
@ApiOperation("试验项目报告复核") @ApiOperation("试验项目报告复核")
@PostMapping("/exp_report_check_back") @PostMapping("/exp_report_check_back")
public RestResult<Boolean> expReportCheckBack(@RequestParam("ids") Long [] ids,@RequestParam("remark") String remark) { public RestResult<Boolean> expReportCheckBack(@RequestParam("ids") Long [] ids,@RequestParam("remark") String remark) {
......
...@@ -43,4 +43,8 @@ public interface ISoilExpReportService extends IBaseService<SoilExpReport> { ...@@ -43,4 +43,8 @@ public interface ISoilExpReportService extends IBaseService<SoilExpReport> {
SoilExpReport generateAppendix(Long id, Account account); SoilExpReport generateAppendix(Long id, Account account);
SoilExpReport itemReportMerge(Long[] ids); SoilExpReport itemReportMerge(Long[] ids);
boolean backExpReportIssue(Long[] ids, String remark, Account account);
boolean backExpReportCheck(Long[] ids, String remark, Account account);
} }
...@@ -790,6 +790,42 @@ public class SoilExpReportServiceImpl extends BaseServiceImpl<SoilExpReportMappe ...@@ -790,6 +790,42 @@ public class SoilExpReportServiceImpl extends BaseServiceImpl<SoilExpReportMappe
return null; return null;
} }
@Override
public boolean backExpReportIssue(Long[] ids, String remark, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要复核驳回的试验报告");
RestAssert.fail(StringUtils.isBlank(remark),"请填写驳回的原因");
List<SoilExpReport> expReportList = list(Condition.create().in("id",ids));
List<SoilExpReport> updateList = new ArrayList<>();
for (SoilExpReport soilExpReport:expReportList) {
SoilExpReport expReport = new SoilExpReport();
expReport.setStatus(SoilExpReportStatusEnum.MAKE);
expReport.setProgress(SoilExpReportStatusEnum.BACK_ISSUE);
expReport.setId(soilExpReport.getId());
expReport.setRemark(soilExpReport.getRemark()+" "+remark);
updateList.add(expReport);
}
return updateBatchById(updateList);
}
@Override
public boolean backExpReportCheck(Long[] ids, String remark, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要复核驳回的试验报告");
RestAssert.fail(StringUtils.isBlank(remark),"请填写驳回的原因");
List<SoilExpReport> expReportList = list(Condition.create().in("id",ids));
List<SoilExpReport> updateList = new ArrayList<>();
for (SoilExpReport soilExpReport:expReportList) {
SoilExpReport expReport = new SoilExpReport();
expReport.setStatus(SoilExpReportStatusEnum.MAKE);
expReport.setProgress(SoilExpReportStatusEnum.BACK_CHECK);
expReport.setId(soilExpReport.getId());
expReport.setRemark(soilExpReport.getRemark()+" "+remark);
updateList.add(expReport);
}
return updateBatchById(updateList);
}
public InputStream exportToExcelInputStream(XSSFWorkbook workbook) { public InputStream exportToExcelInputStream(XSSFWorkbook workbook) {
......
...@@ -104,10 +104,10 @@ public class SoilExperimentRelEquipServiceImpl extends BaseServiceImpl<SoilExper ...@@ -104,10 +104,10 @@ public class SoilExperimentRelEquipServiceImpl extends BaseServiceImpl<SoilExper
for (SoilExperimentVO experimentVO:experimentVOList) { for (SoilExperimentVO experimentVO:experimentVOList) {
expMap.put(experimentVO.getId(),experimentVO); expMap.put(experimentVO.getId(),experimentVO);
} }
CollectHandlerChain chain = new CollectHandlerChain(); CollectHandlerChain chain = CollectHandlerChain.getInstance();
chain.addHandler(new PngReportHandle()); chain.addHandler( PngReportHandle.getInstance());
chain.addHandler(new WuCollectHandle()); chain.addHandler(WuCollectHandle.getInstance());
chain.addHandler(new GdsFileHandle()); chain.addHandler(GdsFileHandle.getInstance());
for (SoilExperimentRelEquip equip:saveRelEquipList) { for (SoilExperimentRelEquip equip:saveRelEquipList) {
SoilExperimentVO experimentVO = expMap.get(equip.getExpId()); SoilExperimentVO experimentVO = expMap.get(equip.getExpId());
CollectDataType collectDataType = new CollectDataType(); CollectDataType collectDataType = new CollectDataType();
......
...@@ -293,7 +293,7 @@ ...@@ -293,7 +293,7 @@
<select id="selectListVOByIds" resultType="com.patzn.cloud.service.soil.vo.SoilExperimentVO"> <select id="selectListVOByIds" resultType="com.patzn.cloud.service.soil.vo.SoilExperimentVO">
SELECT t.id,t.name,t.short_name,s.sample_code,s.site_no,s.sample_depth,s.sample_pack,e.entrust_code,e.borehole_name,e.id AS "entrustId",e.borehole_name,t.sample_id,t.test_method FROM soil_experiment t SELECT t.id,t.name,t.short_name,s.sample_code,s.site_no,s.sample_depth,s.describe_detail,s.sample_pack,e.entrust_code,e.borehole_name,e.id AS "entrustId",e.borehole_name,t.sample_id,t.test_method FROM soil_experiment t
JOIN soil_sample s ON t.sample_id = s.id JOIN soil_sample s ON t.sample_id = s.id
JOIN soil_entrust e ON s.entrust_id = e.id JOIN soil_entrust e ON s.entrust_id = e.id
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<mapper namespace="com.patzn.cloud.service.lims.soil.mapper.SoilItemMapper"> <mapper namespace="com.patzn.cloud.service.lims.soil.mapper.SoilItemMapper">
<select id="listVOByExpIds" resultType="com.patzn.cloud.service.soil.vo.SoilItemVO"> <select id="listVOByExpIds" resultType="com.patzn.cloud.service.soil.vo.SoilItemVO">
SELECT i.id,i.name,i.experiment_id,s.sample_code FROM soil_item i JOIN SELECT i.id,i.name,i.test_value,i.experiment_id,s.sample_code FROM soil_item i JOIN
soil_experiment t ON i.experiment_id = t.id soil_experiment t ON i.experiment_id = t.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