Commit db53f641 by wangweidong

hmhj优化

parent 2dfede64
......@@ -617,7 +617,21 @@ public class StringHandleUtils {
return "";
}
if (StringHandleUtils.is_alpha(dataAttribute)){
return StringHandleUtils.getFieldIfNummReturnBlankValueByFieldName(dataAttribute,vo);
String value= StringHandleUtils.getFieldIfNummReturnBlankValueByFieldName(dataAttribute,vo);
if (StringUtils.isNotBlank(value)){
return value;
}
List<EntrustSampleItemIndex> sampleItemVOList = vo.getIndexList();
if (CollectionUtils.isEmpty(sampleItemVOList)){
return "";
}
for (EntrustSampleItemIndex itemVO : sampleItemVOList) {
if (dataAttribute.equals(itemVO.getName())){
return itemVO.getTestValue();
}
}
}else{
List<EntrustSampleItemIndex> sampleItemVOList = vo.getIndexList();
if (CollectionUtils.isEmpty(sampleItemVOList)){
......
......@@ -95,14 +95,20 @@ public class OriginalTemplateController extends ServiceController implements Ori
return success(originalTemplateService.editOriginal(someParam, obsFileResult));
}
@Login(action = Action.Skip)
@ApiOperation(value = "编辑原始记录模板", notes = "编辑证书模板")
@PostMapping({"/edit_template_{someParam}"})
@Override
public RestResult<Boolean> editTemplate(String s, OssFileResult ossFileResult) {
return null;
public RestResult<Boolean> editTemplate(String someParam, OssFileResult obsFileResult) {
return success(originalTemplateService.editTemplate(someParam, obsFileResult));
}
@Login(action = Action.Skip)
@ApiOperation(value = "编辑报告模板记录", notes = "编辑证书模板")
@PostMapping({"/edit_report_template_{someParam}"})
@Override
public RestResult<Boolean> editReportTemplate(String s, OssFileResult ossFileResult) {
return null;
public RestResult<Boolean> editReportTemplate(String someParam, OssFileResult obsFileResult) {
return success(originalTemplateService.editReportTemplate(someParam, obsFileResult));
}
@Override
......
......@@ -20,6 +20,9 @@ public class ItemCollectEntity {
private Integer singleElse;
private String name;
public String getItemName() {
return itemName;
}
......@@ -75,4 +78,12 @@ public class ItemCollectEntity {
public void setSingleElse(Integer singleElse) {
this.singleElse = singleElse;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
......@@ -16,6 +16,17 @@ public class SoilItemCollectData {
private Long expId;
private String attraute;
public String getAttraute() {
return attraute;
}
public void setAttraute(String attraute) {
this.attraute = attraute;
}
public String getItemName() {
return itemName;
}
......
package com.patzn.cloud.service.lims.hmhj.original;
import com.patzn.cloud.service.hmhj.entity.Entrust;
import com.patzn.cloud.service.hmhj.entity.OriginalTemplate;
import com.patzn.cloud.service.hmhj.entity.OriginalTemplateConfig;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO;
import com.patzn.cloud.service.lims.common.StringHandleUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.*;
import java.util.List;
public class MoreItemMoreOperation implements Operation {
private OriginalTemplate template;
private List<EntrustSampleVO> voList;
private Entrust entrust ;
private List<OriginalTemplateConfig> configList;
private XSSFWorkbook xssfWorkbook;
public MoreItemMoreOperation(OriginalTemplate template, List<EntrustSampleVO> voList, Entrust entrust, List<OriginalTemplateConfig> configList, XSSFWorkbook xssfWorkbook) {
this.template = template;
this.voList = voList;
this.entrust = entrust;
this.configList = configList;
this.xssfWorkbook = xssfWorkbook;
}
@Override
public void doMakeOriginal() {
OriginalUtil.doReplace(xssfWorkbook,entrust);
XSSFSheet sheetOne = xssfWorkbook.getSheetAt(0);
sheetOne.setForceFormulaRecalculation(true);
Integer beginRow = template.getSampleBeginRow();
int sampleMergerNum = template.getSampleMergerNum();
int templateSampleNum = template.getTemplateSampleNum();
int insertRow = beginRow+sampleMergerNum*templateSampleNum;
XSSFRow zeroRow = sheetOne.getRow(beginRow);
XSSFCellStyle cellStyle = zeroRow.getCell(0).getCellStyle();
int lastCellNum = zeroRow.getLastCellNum();
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);
XSSFRow row = sheetOne.createRow(insertRow);
row.setHeight(zeroRow.getHeight());
for (int j = 0; j < lastCellNum; j++) {
XSSFCell xssfCell = row.createCell(j);
xssfCell.setCellStyle(cellStyle);
}
insertRow++;
}
}
int sn = 1;
for (EntrustSampleVO vo:voList) {
XSSFRow xssfRow = sheetOne.getRow(beginRow);
for (OriginalTemplateConfig config:configList) {
if (null == config.getColumnPlace()){
continue;
}
XSSFCell cell = xssfRow.getCell(config.getColumnPlace());
if ("sn".equals(config.getDataAttribute())){
cell.setCellValue(sn);
}else{
cell.setCellValue(StringHandleUtils.getFieldValue(config.getDataAttribute(),vo));
}
}
beginRow+=sampleMergerNum;
sn++;
}
for (OriginalTemplateConfig config:configList) {
if (null==config.getMergeRowNum()){
config.setMergeRowNum(1);
}
if (StringUtils.isNotBlank(config.getFormula())&&null != config.getColumnPlace() && null != config.getMergeRowNum()){
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();
cell.setCellFormula(OriginalUtil.initFormula(formula,i));
}
}
}
for (OriginalTemplateConfig config:configList) {
if (null==config.getMergeRowNum()){
config.setMergeRowNum(1);
}
if (null == config.getMergeBegin()){
continue;
}
if (null == config.getMergeEnd()){
continue;
}
int step= config.getMergeRowNum();
if (step==1 && config.getMergeEnd() == config.getMergeBegin()){
continue;
}
if (null != config.getColumnPlace() && null != config.getMergeRowNum()){
Integer sampleBgMum = template.getSampleBeginRow()+templateSampleNum*sampleMergerNum;
Integer sampleEnMum = template.getSampleBeginRow()+voList.size()*sampleMergerNum-1;
while (sampleBgMum<=sampleEnMum) {
sheetOne.addMergedRegion(new CellRangeAddress(sampleBgMum,sampleBgMum+step-1,config.getMergeBegin(),config.getMergeEnd()));
sampleBgMum=sampleBgMum+step;
}
}
}
}
}
package com.patzn.cloud.service.lims.hmhj.original;
import com.patzn.cloud.service.hmhj.entity.Entrust;
import com.patzn.cloud.service.hmhj.entity.OriginalTemplate;
import com.patzn.cloud.service.hmhj.entity.OriginalTemplateConfig;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO;
import com.patzn.cloud.service.lims.common.StringHandleUtils;
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.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.util.List;
public class MoreItemOperation implements Operation {
private OriginalTemplate template;
private List<EntrustSampleVO> voList;
private Entrust entrust ;
private List<OriginalTemplateConfig> configList;
private XSSFWorkbook xssfWorkbook;
public MoreItemOperation(OriginalTemplate template, List<EntrustSampleVO> voList, Entrust entrust, List<OriginalTemplateConfig> configList, XSSFWorkbook xssfWorkbook) {
this.template = template;
this.voList = voList;
this.entrust = entrust;
this.configList = configList;
this.xssfWorkbook = xssfWorkbook;
}
@Override
public void doMakeOriginal() {
OriginalUtil.doReplace(xssfWorkbook,entrust);
XSSFSheet sheetOne = xssfWorkbook.getSheetAt(0);
String sheetName = sheetOne.getSheetName();
System.out.println(sheetName);
sheetOne.setForceFormulaRecalculation(true);
Integer beginRow = template.getSampleBeginRow();
int sampleMergerNum = template.getSampleMergerNum();
int templateSampleNum = template.getTemplateSampleNum();
for (EntrustSampleVO vo:voList) {
XSSFRow xssfRow = sheetOne.getRow(beginRow);
for (OriginalTemplateConfig config:configList) {
XSSFCell cell = xssfRow.getCell(config.getColumnPlace());
if ("sn".equals(config.getDataAttribute())){
continue;
}
if (StringUtils.isBlank(config.getDataAttribute())){
continue;
}
String value= StringHandleUtils.getFieldValue(config.getDataAttribute(),vo);
cell.setCellValue(value);
}
beginRow+=sampleMergerNum;
}
Integer sampleBgMum = template.getSampleBeginRow();
for (OriginalTemplateConfig config:configList) {
if (null == config.getMergeRowNum()){
config.setMergeRowNum(1);
}
String formula = config.getFormula();
if (StringUtils.isBlank(formula)){
continue;
}
Integer columnPlace = config.getColumnPlace();
if (null == config.getColumnPlace()){
continue;
}
if (null == config.getMergeRowNum()){
continue;
}
Integer mergeRowNum = config.getMergeRowNum();
int formulaNum = template.getSampleBeginRow()+sampleMergerNum*templateSampleNum-1 ;
for (int i =sampleBgMum ; i <= formulaNum; i+=mergeRowNum) {
XSSFRow row = sheetOne.getRow(i);
XSSFCell cell = row.getCell(columnPlace);
cell.setCellFormula(OriginalUtil.initFormula(formula,i));
}
}
}
}
......@@ -25,4 +25,8 @@ public interface IOriginalTemplateService extends IBaseService<OriginalTemplate>
boolean editOriginalRecord(String someParam, OssFileResult obsFileResult);
boolean editOriginal(String someParam, OssFileResult obsFileResult);
boolean editTemplate(String someParam, OssFileResult obsFileResult);
boolean editReportTemplate(String someParam, OssFileResult obsFileResult);
}
......@@ -12,18 +12,14 @@ import com.patzn.cloud.service.hmhj.entity.*;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO;
import com.patzn.cloud.service.lims.common.CompareUtils;
import com.patzn.cloud.service.lims.common.StringHandleUtils;
import com.patzn.cloud.service.lims.hmhj.common.HSSFWorkbookUtil;
import com.patzn.cloud.service.lims.hmhj.mapper.EntrustSampleItemMapper;
import com.patzn.cloud.service.lims.hmhj.original.Operation;
import com.patzn.cloud.service.lims.hmhj.original.OriginalFactory;
import com.patzn.cloud.service.lims.hmhj.original.*;
import com.patzn.cloud.service.lims.hmhj.service.*;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -53,6 +49,10 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
private IEntrustSampleService entrustSampleService;
@Autowired
private IEntrustSampleItemIndexService entrustSampleItemIndexService;
@Autowired
private IEntrustSampleItemRecordService entrustSampleItemRecordService;
@Autowired
......@@ -339,11 +339,44 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
e.printStackTrace();
}
if (null!=template.getMoreItem()&&1==template.getMoreItem()){
Set<Long> sampleIdsList = new HashSet<>();
for (EntrustSampleItemVO itemVO : voList) {
sampleIdsList.add(itemVO.getEntrustSampleId());
}
List<EntrustSample> sampleList = entrustSampleService.list(Condition.create().in("id",sampleIdsList));
List<EntrustSampleVO> sampleVOList = new ArrayList<>(sampleList.size());
for (EntrustSample sample : sampleList) {
EntrustSampleVO vo= sample.convert(EntrustSampleVO.class);
vo.setIndexList(entrustSampleItemIndexService.listBySampleId(sample.getId()));
sampleVOList.add(vo);
}
if (null == template.getSampleBeginRow()|| null==template.getSampleMergerNum()||null==template.getTemplateSampleNum()){
return null;
}
if (voList.size()<template.getTemplateSampleNum()){
MoreItemOperation moreItemOperation = new MoreItemOperation(template,sampleVOList,entrust,configList,xssfWorkbook);
moreItemOperation.doMakeOriginal();
}else{
MoreItemMoreOperation moreItemOperation = new MoreItemMoreOperation(template,sampleVOList,entrust,configList,xssfWorkbook);
moreItemOperation.doMakeOriginal();
}
}else{
OriginalFactory factory = new OriginalFactory(template, voList, entrust, configList, xssfWorkbook);
Operation operation = factory.getOperation();
if (null != operation) {
operation.doMakeOriginal();
}
}
FileOutputStream os = null;
File file = null;
String generated = "原始记录";
......
......@@ -62,6 +62,10 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
@Autowired
private IOriginalTemplateService originalTemplateService;
@Autowired
private IEntrustReportTemplateService entrustReportTemplateService;
@Autowired
private IItemRelOriginalRecordService itemRelOriginalRecordService;
......@@ -311,28 +315,13 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
for (OriginalTemplateConfig config : configList) {
if ("sampleCode".equals(config.getDataAttribute())) {
if ("sampleCode".equals(config.getDataAttribute())||"code".equals(config.getDataAttribute())) {
sampleCol = config.getColumnPlace();
break;
}
}
Integer sampleStatus = null;
for (OriginalTemplateConfig config : configList) {
if ("morphology".equals(config.getDataAttribute())) {
sampleStatus = config.getColumnPlace();
break;
}
}
Integer shortName = null;
for (OriginalTemplateConfig config : configList) {
if ("shortName".equals(config.getDataAttribute())) {
shortName = config.getColumnPlace();
break;
}
}
if (sampleCol == null) {
return true;
}
......@@ -352,6 +341,11 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
collectEntity.setItemMegerRow(config.getMergeRowNum());
collectEntity.setAttribute(config.getDataAttribute());
if (StringUtils.isBlank(config.getDataAttribute())){
collectEntity.setName(config.getAttributeName());
}else{
collectEntity.setName(config.getDataAttribute());
}
collectEntity.setSingleElse(1);
collectEntitiesList.add(collectEntity);
}
......@@ -364,6 +358,13 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
collectEntity.setUnit(config.getUnit());
collectEntity.setItemMegerRow(config.getMergeRowNum());
collectEntity.setAttribute(config.getDataAttribute());
if (StringUtils.isBlank(config.getDataAttribute())){
collectEntity.setName(config.getAttributeName());
}else{
collectEntity.setName(config.getDataAttribute());
}
collectEntitiesList.add(collectEntity);
}
......@@ -382,19 +383,7 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
}
XSSFCell sampleCodeCell = xssfRow.getCell(sampleCol);
String sampleCode = HSSFWorkbookUtil.getJavaValue(sampleCodeCell).toString();
String sampleOfStatus = "";
if (null != sampleStatus) {
XSSFCell sampleStatusCell = xssfRow.getCell(sampleStatus);
sampleOfStatus = HSSFWorkbookUtil.getJavaValue(sampleStatusCell).toString();
}
XSSFCell shortNameCell = null;
String shortNames = null;
if (null != shortName) {
shortNameCell = xssfRow.getCell(shortName);
shortNames = HSSFWorkbookUtil.getJavaValue(shortNameCell).toString();
}
for (ItemCollectEntity collectEntity : collectEntitiesList) {
if (null != collectEntity.getSingleElse()) {
XSSFRow row = sheet.getRow(collectEntity.getItemMegerRow());
......@@ -413,9 +402,8 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
soilItemCollectData.setTestValue(valueElse);
soilItemCollectData.setSampleCode(sampleCode);
soilItemCollectData.setUnit(collectEntity.getUnit());
soilItemCollectData.setShortName(shortNames);
soilItemCollectData.setItemName(collectEntity.getItemName());
soilItemCollectData.setStatus(sampleOfStatus);
soilItemCollectData.setAttraute(collectEntity.getName());
soilItemList.add(soilItemCollectData);
}
continue;
......@@ -439,9 +427,8 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
soilItemCollectData.setTestValue(value);
soilItemCollectData.setSampleCode(sampleCode);
soilItemCollectData.setUnit(collectEntity.getUnit());
soilItemCollectData.setShortName(shortNames);
soilItemCollectData.setStatus(sampleOfStatus);
soilItemCollectData.setItemName(itemName);
soilItemCollectData.setAttraute(collectEntity.getName());
soilItemList.add(soilItemCollectData);
}
......@@ -472,32 +459,21 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
if (expList.size() == 1) {
exp = expList.get(0);
} else if (expList.size() > 1) {
String shortNameTest = soilItemCollectData.getShortName();
String status = soilItemCollectData.getStatus();
for (EntrustSampleItem experiment : expList) {
if (shortNameTest != null && experiment.getName().contains(shortNameTest)) {
exp = experiment;
} else if (null != status && experiment.getName().contains(status)) {
exp = experiment;
for (EntrustSampleItem item : expList) {
if (StringUtils.isBlank(item.getName())||StringUtils.isBlank(soilItemCollectData.getAttraute())){
continue;
}
if (item.getName().equals(soilItemCollectData.getAttraute())){
exp = item;
break;
}
}
if (exp == null && CollectionUtils.isNotEmpty(expList)) {
if (expList.size() > 0) {
for (EntrustSampleItem experiment : expList) {
if (StringUtils.isBlank(status)) {
exp = experiment;
break;
} else {
exp = experiment;
}
}
exp = expList.get(0);
}
}
}
if (null == exp) {
continue;
......@@ -537,7 +513,6 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
soilItem.setCompanyId(companyId);
soilItem.setUid(userId);
entrustSampleItemIndexService.save(soilItem);
// saveList.add(soilItem);
stringMap.put(soilItemCollectData.getSampleCode() + soilItemCollectData.getExpId() + soilItemCollectData.getItemName(), soilItem.getId());
} else {
......@@ -560,6 +535,53 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
return true;
}
@Override
public boolean editTemplate(String someParam, OssFileResult obsFileResult) {
RestAssert.fail(StringUtils.isBlank(someParam), "业务ID不能为空");
RestAssert.fail(null == obsFileResult, "OssFileResult不能为空");
RestAssert.fail(StringUtils.isBlank(obsFileResult.getObjectKey()), "ObjectKey不能为空");
RestAssert.fail(StringUtils.isBlank(obsFileResult.getVersionId()), "VersionId不能为空");
RestAssert.fail(StringUtils.isBlank(obsFileResult.getType()), "Type不能为空");
RestAssert.fail(StringUtils.isBlank(someParam) || 4 != someParam.split("&").length, "参数传递有误");
String[] arr = someParam.split("&");
Long businessId = Long.parseLong(arr[0]);
OriginalTemplate report = originalTemplateService.getById(businessId);
if (null == report) {
RestAssert.fail("数据有误");
}
OriginalTemplate originalRecord = new OriginalTemplate();
originalRecord.setId(businessId);
originalRecord.setObjectKey(obsFileResult.getObjectKey());
return originalTemplateService.updateById(originalRecord);
}
@Override
public boolean editReportTemplate(String someParam, OssFileResult obsFileResult) {
RestAssert.fail(StringUtils.isBlank(someParam), "业务ID不能为空");
RestAssert.fail(null == obsFileResult, "OssFileResult不能为空");
RestAssert.fail(StringUtils.isBlank(obsFileResult.getObjectKey()), "ObjectKey不能为空");
RestAssert.fail(StringUtils.isBlank(obsFileResult.getVersionId()), "VersionId不能为空");
RestAssert.fail(StringUtils.isBlank(obsFileResult.getType()), "Type不能为空");
RestAssert.fail(StringUtils.isBlank(someParam) || 4 != someParam.split("&").length, "参数传递有误");
String[] arr = someParam.split("&");
Long businessId = Long.parseLong(arr[0]);
EntrustReportTemplate report = entrustReportTemplateService.getById(businessId);
if (null == report) {
RestAssert.fail("数据有误");
}
EntrustReportTemplate originalRecord = new EntrustReportTemplate();
originalRecord.setId(businessId);
originalRecord.setObjectKey(obsFileResult.getObjectKey());
return entrustReportTemplateService.updateById(originalRecord);
}
private void fillTestValue(String sampleCode, String testValue, Long userId, String userName, List<EntrustSampleItemVO> sampleItemVOList) {
for (EntrustSampleItemVO vo : sampleItemVOList) {
// 是否需要判断如果有值的话,不去覆盖值
......
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