Commit 63785439 by lijingjing

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/java/com/patzn/cloud/service/lims/hmhj/controller/OriginalTemplateController.java
#	src/main/java/com/patzn/cloud/service/lims/hmhj/mapper/EntrustSampleItemMapper.java
#	src/main/java/com/patzn/cloud/service/lims/hmhj/service/IEntrustSampleItemService.java
#	src/main/java/com/patzn/cloud/service/lims/hmhj/service/IOriginalTemplateService.java
#	src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/EntrustSampleItemServiceImpl.java
#	src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/EntrustSampleServiceImpl.java
#	src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/OriginalTemplateServiceImpl.java
#	src/main/resources/mapper/hmhj/EntrustSampleItemMapper.xml
parents a9fa1531 808f4142
......@@ -3,6 +3,7 @@ package com.patzn.cloud.service.lims.common;
import com.google.common.collect.Lists;
import com.patzn.cloud.commons.enums.IBaseEnum;
import com.patzn.cloud.commons.toolkit.DateUtils;
import com.patzn.cloud.service.hmhj.entity.EntrustSampleItemIndex;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO;
import org.apache.commons.collections.CollectionUtils;
......@@ -618,11 +619,11 @@ public class StringHandleUtils {
if (StringHandleUtils.is_alpha(dataAttribute)){
return StringHandleUtils.getFieldIfNummReturnBlankValueByFieldName(dataAttribute,vo);
}else{
List<EntrustSampleItemVO> sampleItemVOList = vo.getItemVOList();
List<EntrustSampleItemIndex> sampleItemVOList = vo.getIndexList();
if (CollectionUtils.isEmpty(sampleItemVOList)){
return "";
}
for (EntrustSampleItemVO itemVO : sampleItemVOList) {
for (EntrustSampleItemIndex itemVO : sampleItemVOList) {
if (dataAttribute.equals(itemVO.getName())){
return itemVO.getTestValue();
}
......
package com.patzn.cloud.service.lims.hmhj.controller;
import com.patzn.cloud.service.hmhj.entity.EntrustSampleItemIndex;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.api.RestConstants;
import com.patzn.cloud.commons.api.RestResult;
import com.patzn.cloud.commons.controller.ServiceController;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleItemIndexService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import java.util.List;
/**
* 项目指标表 前端控制器
*
* @author wwd
* @since 2021-06-15
*/
@Api(tags = "项目指标表")
@RestController
@RequestMapping("/v1/sample_item_index")
public class EntrustSampleItemIndexController extends ServiceController {
@Autowired
private IEntrustSampleItemIndexService entrustSampleItemIndexService;
@ApiOperation("分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
})
@PostMapping("/page")
public RestResult<Page<EntrustSampleItemIndex>> getPage(EntrustSampleItemIndex entrustSampleItemIndex) {
return success(entrustSampleItemIndexService.page(getPage(), entrustSampleItemIndex));
}
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/{id}")
public RestResult<EntrustSampleItemIndex> get(@PathVariable("id") Long id) {
return success(entrustSampleItemIndexService.getById(id));
}
@ApiOperation("根据 id 修改信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@PutMapping("/{id}")
public RestResult<Boolean> edit(@PathVariable("id") Long id, EntrustSampleItemIndex entrustSampleItemIndex) {
entrustSampleItemIndex.setId(id);
return success(entrustSampleItemIndexService.updateById(entrustSampleItemIndex));
}
@ApiOperation("添加")
@PostMapping("/")
public RestResult<Boolean> add(EntrustSampleItemIndex entrustSampleItemIndex) {
return success(entrustSampleItemIndexService.save(entrustSampleItemIndex));
}
@ApiOperation("根据 ids 删除")
@ApiImplicitParams({
@ApiImplicitParam(name = "ids", value = "主键列表", required = true, paramType = "query", allowMultiple = true, dataTypeClass = Long.class),
})
@DeleteMapping("/")
public RestResult<Boolean> delete(@RequestParam("ids") List<Long> ids) {
return success(entrustSampleItemIndexService.removeByIds(ids));
}
}
......@@ -2,6 +2,7 @@ package com.patzn.cloud.service.lims.hmhj.controller;
import com.baomidou.kisso.annotation.Action;
import com.baomidou.kisso.annotation.Login;
import com.patzn.cloud.feign.lims.hmhj.client.OriginalTemplateClient;
import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.hmhj.entity.OriginalTemplate;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -30,7 +31,7 @@ import java.util.List;
@Api(tags = "模板文件表")
@RestController
@RequestMapping("/v1/original_template")
public class OriginalTemplateController extends ServiceController {
public class OriginalTemplateController extends ServiceController implements OriginalTemplateClient {
@Autowired
private IOriginalTemplateService originalTemplateService;
......@@ -85,6 +86,30 @@ public class OriginalTemplateController extends ServiceController {
return success(originalTemplateService.uploadTemplate(file, classType,name,remark,0));
}
@Override
@Login(action = Action.Skip)
@ApiOperation(value = "编辑原始记录", notes = "编辑证书模板")
@PostMapping({"/edit_original_{someParam}"})
public RestResult<Boolean> editOriginal(@PathVariable("someParam") String someParam, @RequestBody OssFileResult obsFileResult) {
return success(originalTemplateService.editOriginal(someParam, obsFileResult));
}
@Override
public RestResult<Boolean> editTemplate(String s, OssFileResult ossFileResult) {
return null;
}
@Override
public RestResult<Boolean> editReportTemplate(String s, OssFileResult ossFileResult) {
return null;
}
@Override
public RestResult<String> getKeyByBusinessId(String s) {
return null;
}
@Login(action = Action.Skip)
@ApiOperation(value = "编辑原始记录", notes = "编辑原始记录")
@PostMapping("/edit_original_record_{someParam}")
......
package com.patzn.cloud.service.lims.hmhj.handler;
public class ItemCollectEntity {
private String itemName;
private String unit;
private Integer columnPlace;
private Integer itemMegerRow;
private String attribute;
private Integer statusPlace;
private Integer singleElse;
public String getItemName() {
return itemName;
}
public void setItemName(String itemName) {
this.itemName = itemName;
}
public Integer getColumnPlace() {
return columnPlace;
}
public void setColumnPlace(Integer columnPlace) {
this.columnPlace = columnPlace;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public Integer getItemMegerRow() {
return itemMegerRow;
}
public void setItemMegerRow(Integer itemMegerRow) {
this.itemMegerRow = itemMegerRow;
}
public String getAttribute() {
return attribute;
}
public void setAttribute(String attribute) {
this.attribute = attribute;
}
public Integer getStatusPlace() {
return statusPlace;
}
public void setStatusPlace(Integer statusPlace) {
this.statusPlace = statusPlace;
}
public Integer getSingleElse() {
return singleElse;
}
public void setSingleElse(Integer singleElse) {
this.singleElse = singleElse;
}
}
package com.patzn.cloud.service.lims.hmhj.handler;
public class ProgressEntity {
private String date;
private String content;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
package com.patzn.cloud.service.lims.hmhj.handler;
public class SoilItemCollectData {
private String itemName;
private String unit;
private String testValue;
private String sampleCode;
private String shortName;
private String status;
private Long expId;
public String getItemName() {
return itemName;
}
public void setItemName(String itemName) {
this.itemName = itemName;
}
public String getTestValue() {
return testValue;
}
public void setTestValue(String testValue) {
this.testValue = testValue;
}
public String getSampleCode() {
return sampleCode;
}
public void setSampleCode(String sampleCode) {
this.sampleCode = sampleCode;
}
public Long getExpId() {
return expId;
}
public void setExpId(Long expId) {
this.expId = expId;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public String getShortName() {
return shortName;
}
public void setShortName(String shortName) {
this.shortName = shortName;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
@Override
public String toString() {
return "SoilItemCollectData{" +
"itemName='" + itemName + '\'' +
", testValue='" + testValue + '\'' +
", sampleCode='" + sampleCode + '\'' +
", expId=" + expId +
'}';
}
}
package com.patzn.cloud.service.lims.hmhj.mapper;
import com.patzn.cloud.service.hmhj.entity.EntrustSampleItemIndex;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemIndexVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author wwd
* @since 2021-06-15
*/
public interface EntrustSampleItemIndexMapper extends BatchMapper<EntrustSampleItemIndex> {
List<EntrustSampleItemIndexVO> listVOByExpIds(@Param("expIds") List<Long> expIdsList);
}
......@@ -33,5 +33,7 @@ public interface EntrustSampleItemMapper extends BatchMapper<EntrustSampleItem>
List<EntrustSampleItemVO> selectByItemDeviate(RowBounds rowBounds, @Param("vo")EntrustSampleItemVO entrustSampleItem);
List<EntrustSampleItemVO> selectListVOByIds(@Param("ids")List<Long> expIdsList);
List<EntrustSampleItemVO> selectByOriginalRecordId(@Param("originalRecordId") Long originalRecordId);
}
package com.patzn.cloud.service.lims.hmhj.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.hmhj.entity.EntrustSampleItemIndex;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemIndexVO;
import java.util.List;
/**
* 服务类
*
* @author wwd
* @since 2021-06-15
*/
public interface IEntrustSampleItemIndexService extends IBaseService<EntrustSampleItemIndex> {
Page<EntrustSampleItemIndex> page(Page<EntrustSampleItemIndex> page, EntrustSampleItemIndex entrustSampleItemIndex);
boolean removeByIds(List<Long> ids);
List<EntrustSampleItemIndexVO> listVOByExpIds(List<Long> expIdsList);
List<EntrustSampleItemIndex> listBySampleId(Long id);
}
......@@ -59,4 +59,6 @@ public interface IEntrustSampleItemService extends IBaseService<EntrustSampleIte
Page<EntrustSampleItemVO> pageItemDeviateCheckHis(Page<EntrustSampleItemVO> page, EntrustSampleItemVO entrustSampleItem);
List<EntrustSampleItemVO> getItemByOriginalRecordId(Long originalRecordId);
List<EntrustSampleItemVO> listVOByIds(List<Long> expIdsList);
}
......@@ -23,4 +23,6 @@ public interface IOriginalTemplateService extends IBaseService<OriginalTemplate>
boolean uploadTemplate(MultipartFile file, String classType, String name, String remark, int i);
boolean editOriginalRecord(String someParam, OssFileResult obsFileResult);
boolean editOriginal(String someParam, OssFileResult obsFileResult);
}
package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.service.hmhj.entity.EntrustSampleItem;
import com.patzn.cloud.service.hmhj.entity.EntrustSampleItemIndex;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemIndexVO;
import com.patzn.cloud.service.lims.hmhj.mapper.EntrustSampleItemIndexMapper;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleItemIndexService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleItemService;
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 java.util.List;
import java.util.stream.Collectors;
/**
* 服务实现类
*
* @author wwd
* @since 2021-06-15
*/
@Service
public class EntrustSampleItemIndexServiceImpl extends BaseServiceImpl<EntrustSampleItemIndexMapper, EntrustSampleItemIndex> implements IEntrustSampleItemIndexService {
@Autowired
private IEntrustSampleItemService entrustSampleItemService;
@Override
public Page<EntrustSampleItemIndex> page(Page<EntrustSampleItemIndex> page, EntrustSampleItemIndex entrustSampleItemIndex) {
Wrapper wrapper = new EntityWrapper<>(entrustSampleItemIndex);
return this.page(page, wrapper);
}
@Override
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
@Override
public List<EntrustSampleItemIndexVO> listVOByExpIds(List<Long> expIdsList) {
return baseMapper.listVOByExpIds(expIdsList);
}
@Override
public List<EntrustSampleItemIndex> listBySampleId(Long id) {
List<EntrustSampleItem> itemList = entrustSampleItemService.list(Condition.create().eq("entrust_sample_id",id));
if (CollectionUtils.isNotEmpty(itemList)){
return null;
}
List<Long> itemIds= itemList.stream().map(s->{
return s.getId();
}).collect(Collectors.toList());
return list(Condition.create().in("entrust_sample_item_id",itemIds));
}
}
......@@ -502,6 +502,11 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
return baseMapper.selectByOriginalRecordId(originalRecordId);
}
@Override
public List<EntrustSampleItemVO> listVOByIds(List<Long> expIdsList) {
return baseMapper.selectListVOByIds(expIdsList);
}
private List<EntrustSampleItemVO> listVOByIds(Long[] ids) {
return baseMapper.selectVOListByIds(ids);
}
......
......@@ -72,7 +72,8 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
@Autowired
private IEntrustRecordService entrustRecordService;
@Autowired
private IEntrustSampleItemIndexService entrustSampleItemIndexService;
@Autowired
private IEntrustReportService entrustReportService;
@Autowired
......@@ -362,8 +363,8 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
e.printStackTrace();
}
List<EntrustReportTemplateConfig> configList = entrustReportTemplateConfigService.list(Condition.create().eq("template_id", templateId));
OriginalUtil.doReplace(xssfWorkbook, entrust);
List<OriginalTemplateConfig> configList = originalTemplateConfigService.list(Condition.create().eq("template_id",templateId));
OriginalUtil.doReplace(xssfWorkbook,entrust);
XSSFSheet sheetOne = xssfWorkbook.getSheetAt(0);
String sheetName = sheetOne.getSheetName();
System.out.println(sheetName);
......@@ -371,31 +372,33 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
Integer beginRow = sysFileTemplate.getSampleBeginRow();
int sampleMergerNum = sysFileTemplate.getSampleMergerNum();
int templateSampleNum = sysFileTemplate.getTemplateSampleNum();
if (templateSampleNum >= sampleVOList.size()) {
for (EntrustSampleVO vo : sampleVOList) {
if (templateSampleNum>=sampleVOList.size()){
for (EntrustSampleVO vo:sampleVOList) {
List<EntrustSampleItemIndex> indexList = entrustSampleItemIndexService.listBySampleId(vo.getId());
vo.setIndexList(indexList);
XSSFRow xssfRow = sheetOne.getRow(beginRow);
for (EntrustReportTemplateConfig config : configList) {
for (OriginalTemplateConfig config:configList) {
XSSFCell cell = xssfRow.getCell(config.getColumnPlace());
if ("sn".equals(config.getDataAttribute())) {
if ("sn".equals(config.getDataAttribute())){
continue;
}
if (StringUtils.isBlank(config.getDataAttribute())) {
if (StringUtils.isBlank(config.getDataAttribute())){
continue;
}
String value = StringHandleUtils.getFieldValue(config.getDataAttribute(), vo);
String value= StringHandleUtils.getFieldValue(config.getDataAttribute(),vo);
cell.setCellValue(value);
}
beginRow += sampleMergerNum;
beginRow+=sampleMergerNum;
}
String generated = entrust.getCode();
FileOutputStream os = null;
File file = null;
try {
file = File.createTempFile(generated, ".xlsx");
file = File.createTempFile(generated, ".docx");
os = new FileOutputStream(file);
xssfWorkbook.write(os);
os.flush();
entrustReportService.uploadReportGenerateDocx(entrust, ids, account, StringHandleUtils.join(sampleNameSet), "报告生成", file);
entrustReportService.uploadReportGenerateDocx(entrust,ids, account, StringHandleUtils.join(sampleNameSet),"报告生成", file);
} catch (Exception e) {
e.printStackTrace();
} finally {
......
package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.hmhj.entity.*;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemIndexVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO;
import com.patzn.cloud.service.lims.hmhj.common.HSSFWorkbookUtil;
import com.patzn.cloud.service.lims.hmhj.handler.ItemCollectEntity;
import com.patzn.cloud.service.lims.hmhj.handler.SoilItemCollectData;
import com.patzn.cloud.service.lims.hmhj.mapper.OriginalTemplateMapper;
import com.patzn.cloud.service.lims.hmhj.service.*;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.entity.SoilOriginalTemplate;
import com.patzn.cloud.service.soil.entity.*;
import com.patzn.cloud.service.soil.vo.SoilExperimentVO;
import com.patzn.cloud.service.soil.vo.SoilItemVO;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.format.CellFormat;
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 org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
......@@ -56,6 +66,26 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
@Autowired
private IOriginalTemplateConfigService originalTemplateConfigService;
@Autowired
private IOriginalRecordService originalRecordService;
@Autowired
private IOriginalTemplateService originalTemplateService;
@Autowired
private IOriginalTemplateConfigService originalTemplateConfigService;
@Autowired
private IItemRelOriginalRecordService itemRelOriginalRecordService;
@Autowired
private IEntrustSampleItemService entrustSampleItemService;
@Autowired
private IEntrustSampleItemIndexService entrustSampleItemIndexService;
@Override
public Page<OriginalTemplate> page(Page<OriginalTemplate> page, OriginalTemplate originalTemplate) {
String alias = originalTemplate.getAlias();
......@@ -195,6 +225,367 @@ public class OriginalTemplateServiceImpl extends BaseServiceImpl<OriginalTemplat
fillTestValue(sampleCode, indicatorVal, userId, userName, sampleItemVOList);
}
}
@Override
public boolean editOriginal(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]);
String userName = null;
try {
userName = java.net.URLDecoder.decode(arr[2], "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
Long userId = Long.parseLong(arr[1]);
Long companyId = Long.parseLong(arr[3]);
OriginalRecord report = originalRecordService.getById(businessId);
if (null == report){
RestAssert.fail("数据有误");
}
OriginalRecord originalRecord = new OriginalRecord();
originalRecord.setId(businessId);
originalRecord.setObjectKey(obsFileResult.getObjectKey());
originalRecordService.updateById(originalRecord);
InputStream io = ossClient.download(obsFileResult.getObjectKey());
//结果回调
XSSFWorkbook xssfWorkbook=null;
try {
xssfWorkbook = new XSSFWorkbook(io);
} catch (Exception e1) {
e1.printStackTrace();
return false;
}
XSSFSheet sheet = xssfWorkbook.getSheetAt(0);
if (null == report.getTemplateId()){
return true;
}
OriginalTemplate template = originalTemplateService.getById(report.getTemplateId());
if (null == template){
return true;
}
Integer moreSheet = template.getMoreSheet();
List<OriginalTemplateConfig> configList = originalTemplateConfigService.list(Condition.create().eq("template_id",template.getId()));
List<ItemRelOriginalRecord> relOriginalRecordList = itemRelOriginalRecordService.list(Condition.create().eq("record_id",report.getId()));
if (CollectionUtils.isEmpty(relOriginalRecordList)){
return true;
}
List<Long> expIdsList = relOriginalRecordList.stream().map(r->{
return r.getItemId();
}).collect(Collectors.toList());
List<EntrustSampleItemVO> experimentVOList =entrustSampleItemService .listVOByIds(expIdsList);
Map<String,List<EntrustSampleItem>> esiMap = new HashMap<>();
for (EntrustSampleItemVO entrustSampleItemVO:experimentVOList) {
if (esiMap.containsKey(entrustSampleItemVO.getSampleCode())){
List<EntrustSampleItem> listExp = esiMap.get(entrustSampleItemVO.getSampleCode());
listExp.add(entrustSampleItemVO);
esiMap.put(entrustSampleItemVO.getSampleCode(),listExp);
}else{
List<EntrustSampleItem> listExp = new ArrayList<>();
listExp.add(entrustSampleItemVO);
esiMap.put(entrustSampleItemVO.getSampleCode(),listExp);
}
}
List<EntrustSampleItemIndexVO> indexList = entrustSampleItemIndexService.listVOByExpIds(expIdsList);
Map<String,Long> stringMap = new HashMap<>();
for (EntrustSampleItemIndexVO soilItemVO:indexList) {
stringMap.put(soilItemVO.getSampleCode()+soilItemVO.getEntrustSampleItemId()+soilItemVO.getName(),soilItemVO.getId());
}
if (null ==moreSheet || 0 == moreSheet){
int sampleBeginRow = template.getSampleBeginRow();
int sampleMergerNum = template.getSampleMergerNum();
int lastRowNum = sheet.getLastRowNum();
Integer sampleCol = null ;
for (OriginalTemplateConfig config:configList) {
if ("sampleCode".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;
}
List<ItemCollectEntity> collectEntitiesList = new ArrayList<>();
for (OriginalTemplateConfig config:configList) {
if (StringUtils.isBlank(config.getAttributeName())){
continue;
}
if (null ==config.getColumnPlace()){
if (null != config.getItemed() && config.getItemed() ==1 && null !=config.getMergeBegin() && null !=config.getMergeRowNum()){
ItemCollectEntity collectEntity = new ItemCollectEntity();
collectEntity.setItemName(config.getAttributeName());
collectEntity.setColumnPlace(config.getMergeBegin());
collectEntity.setUnit(config.getUnit());
collectEntity.setItemMegerRow(config.getMergeRowNum());
collectEntity.setAttribute(config.getDataAttribute());
collectEntity.setSingleElse(1);
collectEntitiesList.add(collectEntity);
}
continue;
}
if (null != config.getItemed() && config.getItemed() ==1){
ItemCollectEntity collectEntity = new ItemCollectEntity();
collectEntity.setItemName(config.getAttributeName());
collectEntity.setColumnPlace(config.getColumnPlace());
collectEntity.setUnit(config.getUnit());
collectEntity.setItemMegerRow(config.getMergeRowNum());
collectEntity.setAttribute(config.getDataAttribute());
collectEntitiesList.add(collectEntity);
}
}
if (CollectionUtils.isEmpty(collectEntitiesList)){
return true;
}
List<SoilItemCollectData> soilItemList = new ArrayList<>();
for (int i = sampleBeginRow;i<=lastRowNum;i+=sampleMergerNum) {
XSSFRow xssfRow = sheet.getRow(i);
if (null == xssfRow){
continue;
}
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());
if (null == row){
continue;
}
XSSFCell cell = row.getCell(collectEntity.getColumnPlace());
if (null == cell){
continue;
}
String valueElse = CellFormat.getInstance(cell.getCellStyle().getDataFormatString()).apply(cell).text;
if (StringUtils.isNotBlank(valueElse)){
SoilItemCollectData soilItemCollectData = new SoilItemCollectData();
soilItemCollectData.setTestValue(valueElse);
soilItemCollectData.setSampleCode(sampleCode);
soilItemCollectData.setUnit(collectEntity.getUnit());
soilItemCollectData.setShortName(shortNames);
soilItemCollectData.setItemName(collectEntity.getItemName());
soilItemCollectData.setStatus(sampleOfStatus);
soilItemList.add(soilItemCollectData);
}
continue;
}
XSSFCell itemCell = xssfRow.getCell(collectEntity.getColumnPlace());
String value = "";
try {
value = CellFormat.getInstance(itemCell.getCellStyle().getDataFormatString()).apply(itemCell).text;
}catch (Exception e){
value = HSSFWorkbookUtil.getJavaValue(itemCell).toString();
}
String itemName = collectEntity.getItemName();
if (StringUtils.isBlank(value)){
continue;
}
SoilItemCollectData soilItemCollectData = new SoilItemCollectData();
soilItemCollectData.setItemName(itemName);
soilItemCollectData.setTestValue(value);
soilItemCollectData.setSampleCode(sampleCode);
soilItemCollectData.setUnit(collectEntity.getUnit());
soilItemCollectData.setShortName(shortNames);
soilItemCollectData.setStatus(sampleOfStatus);
soilItemCollectData.setItemName(itemName);
soilItemList.add(soilItemCollectData);
}
}
if (CollectionUtils.isEmpty(soilItemList)){
return true;
}
List<EntrustSampleItemIndex> saveList = new ArrayList<>();
List<EntrustSampleItemIndex> updateList = new ArrayList<>();
for (SoilItemCollectData soilItemCollectData:soilItemList) {
if (StringUtils.isBlank(soilItemCollectData.getTestValue())){
continue;
}
if (StringUtils.isBlank(soilItemCollectData.getSampleCode())){
continue;
}
if ("#VALUE!".equals(soilItemCollectData.getTestValue())){
continue;
}
List<EntrustSampleItem> expList = esiMap.get(soilItemCollectData.getSampleCode());
EntrustSampleItem exp = null ;
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;
}
}
if (exp==null&&CollectionUtils.isNotEmpty(expList)){
if (expList.size()>0){
for (EntrustSampleItem experiment:expList) {
if (StringUtils.isBlank(status)){
exp = experiment;
break;
}else{
exp = experiment;
}
}
}
}
}
if (null==exp){
continue;
}
if (null!=exp){
soilItemCollectData.setExpId(exp.getId());
}
if (StringUtils.isBlank(soilItemCollectData.getItemName())){
continue;
}
if (StringUtils.isBlank(soilItemCollectData.getTestValue())){
continue;
}
if ("#VALUE!".equals(soilItemCollectData.getTestValue())){
continue;
}
if ("#NAME?".equals(soilItemCollectData.getTestValue())){
continue;
}
if (StringUtils.isBlank(soilItemCollectData.getSampleCode())){
continue;
}
String key= soilItemCollectData.getSampleCode()+soilItemCollectData.getExpId()+soilItemCollectData.getItemName();
if (!stringMap.containsKey(key)){
EntrustSampleItemIndex soilItem = new EntrustSampleItemIndex();
soilItem.setEntrustSampleItemId(soilItemCollectData.getExpId());
soilItem.setName(soilItemCollectData.getItemName());
soilItem.setTestValue(soilItemCollectData.getTestValue());
soilItem.setUnit(soilItemCollectData.getUnit());
soilItem.setStatus(0);
soilItem.setProgress(0);
soilItem.setCompanyId(companyId);
soilItem.setUid(userId);
entrustSampleItemIndexService.save(soilItem);
// saveList.add(soilItem);
stringMap.put(soilItemCollectData.getSampleCode()+soilItemCollectData.getExpId()+soilItemCollectData.getItemName(),soilItem.getId());
}else{
EntrustSampleItemIndex soilItem = new EntrustSampleItemIndex();
soilItem.setTestValue(soilItemCollectData.getTestValue());
soilItem.setUnit(soilItemCollectData.getUnit());
soilItem.setId(stringMap.get(soilItemCollectData.getSampleCode()+soilItemCollectData.getExpId()+soilItemCollectData.getItemName()));
updateList.add(soilItem);
}
}
if (CollectionUtils.isNotEmpty(saveList)){
entrustSampleItemIndexService.saveBatch(saveList);
}
if (CollectionUtils.isNotEmpty(updateList)){
entrustSampleItemIndexService.updateBatchById(updateList);
}
}
return true;
}
// 批量更新检测值
List<EntrustSampleItem> entrustSampleItemList = sampleItemVOList.stream().map(t -> t.convert(EntrustSampleItem.class)).collect(Collectors.toList());
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.patzn.cloud.service.lims.hmhj.mapper.EntrustSampleItemIndexMapper">
<select id="listVOByExpIds" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemIndexVO">
SELECT i.id,i.name,i.test_value,i.entrust_sample_item_id,s.code AS "sampleCode" FROM entrust_sample_item_index i JOIN
entrust_sample_item t ON i.entrust_sample_item_id = t.id
JOIN entrust_sample s ON t.entrust_sample_id = s.id
WHERE i.deleted =0 AND t.deleted = 0 AND s.deleted = 0
AND t.id IN
<foreach collection="expIds" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
</mapper>
......@@ -231,4 +231,21 @@
WHERE i.deleted = 0 AND s.deleted = 0 and rr.deleted = 0 and rr.record_id = #{originalRecordId} limit 1
</select>
<select id="selectListVOByIds" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO">
SELECT i.id,i.name,i.entrust_sample_id,s.entrust_id,i.agreed_value,i.test_value,i.standard,s.code AS "sampleCode",s.name AS "sampleName",
s.sample_shape ,s.sample_quantity, s.standard, s.sample_from,s.product_code,s.name_code
FROM
entrust_sample_item i
JOIN entrust_sample s ON i.entrust_sample_id = s.ID
WHERE i.deleted = 0 AND s.deleted = 0
AND i.id IN
<foreach collection="ids" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
ORDER BY s.code , i.name
</select>
</mapper>
package com.patzn.cloud.service.lims.test;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
File file = new File("D:\\pxj\\生铁中硅.xlsx");
try {
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(file);
XSSFSheet sheet= xssfWorkbook.getSheetAt(0);
String sheetName= sheet.getSheetName();
System.out.println(sheetName);
} catch (IOException e) {
e.printStackTrace();
} catch (InvalidFormatException e) {
e.printStackTrace();
}
}
}
CREATE TABLE "public"."entrust_sample_item_index" (
CREATE TABLE "public"."entrust_sample_item_index" (
"id" int8 NOT NULL,
"name" varchar(120) COLLATE "pg_catalog"."default",
"main_type" varchar(120) COLLATE "pg_catalog"."default",
"small_type" varchar(150) COLLATE "pg_catalog"."default",
"unit" varchar(50) COLLATE "pg_catalog"."default",
"test_value" varchar(100) COLLATE "pg_catalog"."default",
"status" int2 DEFAULT 0,
"progress" int2 DEFAULT 0,
"company_id" int8,
"uid" int8,
"ctime" timestamp(6),
"lid" int8,
"ltime" timestamp(6),
"deleted" int2 DEFAULT 0,
"entrust_sample_item_id" int8
)
;
COMMENT ON COLUMN "public"."entrust_sample_item_index"."id" IS '主键ID';
COMMENT ON COLUMN "public"."entrust_sample_item_index"."name" IS '试验指标名称';
COMMENT ON COLUMN "public"."entrust_sample_item_index"."main_type" IS '试验指标大类';
COMMENT ON COLUMN "public"."entrust_sample_item_index"."small_type" IS '试验指标小类';
COMMENT ON COLUMN "public"."entrust_sample_item_index"."unit" IS '单位';
COMMENT ON COLUMN "public"."entrust_sample_item_index"."test_value" IS '检测值';
COMMENT ON COLUMN "public"."entrust_sample_item_index"."status" IS '状态';
COMMENT ON COLUMN "public"."entrust_sample_item_index"."progress" IS '进度';
COMMENT ON COLUMN "public"."entrust_sample_item_index"."company_id" IS '企业ID';
COMMENT ON COLUMN "public"."entrust_sample_item_index"."uid" IS '创建人ID';
COMMENT ON COLUMN "public"."entrust_sample_item_index"."ctime" IS '创建时间';
COMMENT ON COLUMN "public"."entrust_sample_item_index"."lid" IS '最后修改人ID';
COMMENT ON COLUMN "public"."entrust_sample_item_index"."ltime" IS '最后修改时间';
COMMENT ON COLUMN "public"."entrust_sample_item_index"."deleted" IS '是否删除(0否1是)';
COMMENT ON COLUMN "public"."entrust_sample_item_index"."entrust_sample_item_id" IS '试验项目ID';
-- ----------------------------
-- Primary Key structure for table entrust_sample_item_index
-- ----------------------------
ALTER TABLE "public"."entrust_sample_item_index" ADD CONSTRAINT "entrust_sample_item_index_pkey" PRIMARY KEY ("id");
\ No newline at end of file
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