Commit 5052d786 by wangweidong

土工试验平台修改

parent 5aa04732
package com.patzn.cloud.service.lims.common; package com.patzn.cloud.service.lims.common;
import com.patzn.cloud.commons.toolkit.StringHandleUtils;
import java.util.Comparator; import java.util.Comparator;
public class MyComparator implements Comparator<String> { public class MyComparator implements Comparator<String> {
@Override @Override
public int compare(String o1, String o2) { public int compare(String o1, String o2) {
int a= Integer.parseInt(o1)-Integer.parseInt(o2); if (StringHandleUtils.isNumeric(o1)&&StringHandleUtils.isNumeric(o2)) {
return a ; return Integer.parseInt(o1)-Integer.parseInt(o2);
} else{
return o1.compareTo(o2);
}
} }
@Override @Override
......
...@@ -528,4 +528,11 @@ public class StringHandleUtils { ...@@ -528,4 +528,11 @@ public class StringHandleUtils {
} }
return filename; return filename;
} }
public boolean is_alpha(String str) {
if(str==null) return false;
return str.matches("[a-zA-Z]+");
}
} }
...@@ -229,4 +229,22 @@ public final class StringStaticDataUtils { ...@@ -229,4 +229,22 @@ public final class StringStaticDataUtils {
soilAptitudeListColumn.add("testMethod"); soilAptitudeListColumn.add("testMethod");
soilAptitudeListColumn.add("remark"); soilAptitudeListColumn.add("remark");
} }
public static final List<String> importEntrustTitle=new ArrayList<>();
static {
importEntrustTitle.add("说明:");
importEntrustTitle.add("说明");
importEntrustTitle.add("制 表");
importEntrustTitle.add("批 准");
importEntrustTitle.add("土质试验项目单");
importEntrustTitle.add("制表");
importEntrustTitle.add("批准");
importEntrustTitle.add("样品编号");
importEntrustTitle.add("样\n" +
"品\n" +
"编\n" +
"号");
}
} }
...@@ -64,6 +64,8 @@ public class SoilEntrustController extends ServiceController { ...@@ -64,6 +64,8 @@ public class SoilEntrustController extends ServiceController {
soilEntrust.setStatusList(Lists.newArrayList( soilEntrust.setStatusList(Lists.newArrayList(
SoilEntrustStatusEnum.REVIEW, SoilEntrustStatusEnum.REVIEW,
SoilEntrustStatusEnum.RECEIVE, SoilEntrustStatusEnum.RECEIVE,
SoilEntrustStatusEnum.SEND,
SoilEntrustStatusEnum.TEST,
SoilEntrustStatusEnum.REPORT, SoilEntrustStatusEnum.REPORT,
SoilEntrustStatusEnum.REPORT_CHECK, SoilEntrustStatusEnum.REPORT_CHECK,
SoilEntrustStatusEnum.REPORT_ISSUE SoilEntrustStatusEnum.REPORT_ISSUE
......
...@@ -492,4 +492,13 @@ public class SoilExperimentController extends ServiceController { ...@@ -492,4 +492,13 @@ public class SoilExperimentController extends ServiceController {
return success(soilExperimentService.bathUpdateInfo(ids,experiment,getAccount())); return success(soilExperimentService.bathUpdateInfo(ids,experiment,getAccount()));
} }
@ApiOperation(value = "导入试验项目", notes = "导入试验项目")
@PostMapping("/import_experiments")
public RestResult<Boolean> importExperiments(@RequestParam("ids") Long [] ids,@RequestParam("aptitudeIds") Long [] aptitudeIds) {
return success(soilExperimentService.importExperiments(ids,aptitudeIds,getAccount()));
}
} }
...@@ -79,7 +79,7 @@ public class SoilPrepareController extends ServiceController { ...@@ -79,7 +79,7 @@ public class SoilPrepareController extends ServiceController {
@ApiOperation(value = "样品制备历史查询数据列表", notes = "样品制备历史查询数据列表") @ApiOperation(value = "余样样品历史分页列表", notes = "样品制备历史查询数据列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"), @ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataType = "int"), @ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataType = "int"),
...@@ -88,6 +88,43 @@ public class SoilPrepareController extends ServiceController { ...@@ -88,6 +88,43 @@ public class SoilPrepareController extends ServiceController {
}) })
@PostMapping("/page_prepare_his") @PostMapping("/page_prepare_his")
public RestResult<Page<SoilPrepareVO>> getPagePrepareHis(SoilPrepareVO soilPrepare) { public RestResult<Page<SoilPrepareVO>> getPagePrepareHis(SoilPrepareVO soilPrepare) {
soilPrepare.setType(1);
return success(soilPrepareService.pagePrepareVO(getPage(), soilPrepare));
}
@ApiOperation(value = "副样样品分页列表", notes = "分页查询数据列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataType = "String"),
})
@PostMapping("/page_secondary")
public RestResult<Page<SoilPrepareVO>> getPageSecondary(SoilPrepareVO soilPrepare) {
soilPrepare.setType(2);
soilPrepare.setStatusList(Lists.newArrayList(
SoilPrepareStatusEnum.PREPARED,
SoilPrepareStatusEnum.DISPOSAL_CHECK,
SoilPrepareStatusEnum.DISPOSAL_OK,
SoilPrepareStatusEnum.DISPOSAL_FAIL
));
return success(soilPrepareService.pagePrepareVO(getPage(), soilPrepare));
}
@ApiOperation(value = "副样样品历史分页列表", notes = "样品制备历史查询数据列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataType = "String"),
})
@PostMapping("/page_secondary_his")
public RestResult<Page<SoilPrepareVO>> getPageSecondaryHis(SoilPrepareVO soilPrepare) {
soilPrepare.setType(2);
return success(soilPrepareService.pagePrepareVO(getPage(), soilPrepare)); return success(soilPrepareService.pagePrepareVO(getPage(), soilPrepare));
} }
......
...@@ -413,4 +413,27 @@ public class SoilSampleController extends ServiceController { ...@@ -413,4 +413,27 @@ public class SoilSampleController extends ServiceController {
return success(soilSampleService.scanOperation(sampleCode,type,getAccount())); return success(soilSampleService.scanOperation(sampleCode,type,getAccount()));
} }
@ApiOperation(value = "位置样品分页列表", notes = "位置样品分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataType = "int"),
@ApiImplicitParam(name = RestConstants.PAGE_SIDX, value = "排序字段", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = RestConstants.PAGE_SORD, value = "排序方式", paramType = "query", dataType = "String"),
})
@PostMapping("/page_location_sample")
public RestResult<Page<SoilSampleVO>> getPageLocationSample(SoilSampleVO soilSample) {
return success(soilSampleService.pageLocationSample(getPage(), soilSample));
}
@ApiOperation(value = "样品留存", notes = "样品留存")
@PostMapping("/sample_retain")
public RestResult<Boolean> sampleRetain(@RequestParam("ids")Long [] ids,@RequestParam("locationId")Long locationId,
@RequestParam("receiveLocation") String receiveLocation) {
return success(soilSampleService.sampleRetain(ids,locationId,receiveLocation,getAccount()));
}
} }
...@@ -25,4 +25,6 @@ public interface SoilSampleMapper extends BaseMapper<SoilSample> { ...@@ -25,4 +25,6 @@ public interface SoilSampleMapper extends BaseMapper<SoilSample> {
List<SoilSampleVO> selectVOList(RowBounds rowBounds, @Param("vo") SoilSampleVO soilSample); List<SoilSampleVO> selectVOList(RowBounds rowBounds, @Param("vo") SoilSampleVO soilSample);
List<SoilSampleVO> selectVOListByExp(RowBounds rowBounds, @Param("vo")SoilSampleVO soilSample); List<SoilSampleVO> selectVOListByExp(RowBounds rowBounds, @Param("vo")SoilSampleVO soilSample);
List<SoilSampleVO> selectLocationSample(Page<SoilSampleVO> page, @Param("vo")SoilSampleVO soilSample);
} }
...@@ -57,4 +57,6 @@ public interface ISoilExperimentService extends IBaseService<SoilExperiment> { ...@@ -57,4 +57,6 @@ public interface ISoilExperimentService extends IBaseService<SoilExperiment> {
List<SoilExperimentVO> listVOByIds(List<Long> expIds); List<SoilExperimentVO> listVOByIds(List<Long> expIds);
boolean parseTxt(SmbFile smbFile, CollectDataType request); boolean parseTxt(SmbFile smbFile, CollectDataType request);
boolean importExperiments(Long[] ids, Long[] aptitudeIds, Account account);
} }
...@@ -53,4 +53,8 @@ public interface ISoilSampleService extends IBaseService<SoilSample> { ...@@ -53,4 +53,8 @@ public interface ISoilSampleService extends IBaseService<SoilSample> {
Page<SoilSampleVO> pageByExp(Page<SoilSampleVO> page, SoilSampleVO soilSample); Page<SoilSampleVO> pageByExp(Page<SoilSampleVO> page, SoilSampleVO soilSample);
boolean scanOperation(String sampleCode, String type, Account account); boolean scanOperation(String sampleCode, String type, Account account);
Page<SoilSampleVO> pageLocationSample(Page<SoilSampleVO> page, SoilSampleVO soilSample);
boolean sampleRetain(Long[] ids,Long locationId,String location, Account account);
} }
...@@ -23,6 +23,8 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -23,6 +23,8 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.*; import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -121,11 +123,11 @@ public class SoilAptitudeExpServiceImpl extends BaseServiceImpl<SoilAptitudeExpM ...@@ -121,11 +123,11 @@ public class SoilAptitudeExpServiceImpl extends BaseServiceImpl<SoilAptitudeExpM
*/ */
public boolean is_alpha(String str) { public static boolean is_alpha(String str) {
if(str==null) return false; if(str==null) return false;
String regex = "[\u4e00-\u9fa5]"; //汉字的Unicode取值范围
return str.matches("[a-zA-Z]+"); Pattern pattern = Pattern.compile(regex);
Matcher match = pattern.matcher(str);
return !match.find();
} }
} }
...@@ -17,6 +17,7 @@ import com.patzn.cloud.service.lims.base.dto.CodeTypeDTO; ...@@ -17,6 +17,7 @@ import com.patzn.cloud.service.lims.base.dto.CodeTypeDTO;
import com.patzn.cloud.service.lims.base.entity.LmsUserGroup; import com.patzn.cloud.service.lims.base.entity.LmsUserGroup;
import com.patzn.cloud.service.lims.base.enums.CodeTypeEnum; import com.patzn.cloud.service.lims.base.enums.CodeTypeEnum;
import com.patzn.cloud.service.lims.common.MyComparator; import com.patzn.cloud.service.lims.common.MyComparator;
import com.patzn.cloud.service.lims.common.StringStaticDataUtils;
import com.patzn.cloud.service.lims.common.service.ILmsMsgService; import com.patzn.cloud.service.lims.common.service.ILmsMsgService;
import com.patzn.cloud.service.lims.soil.service.*; import com.patzn.cloud.service.lims.soil.service.*;
import com.patzn.cloud.service.soil.dto.SoilEntrustDTO; import com.patzn.cloud.service.soil.dto.SoilEntrustDTO;
...@@ -642,7 +643,7 @@ public class SoilEntrustServiceImpl extends BaseServiceImpl<SoilEntrustMapper, S ...@@ -642,7 +643,7 @@ public class SoilEntrustServiceImpl extends BaseServiceImpl<SoilEntrustMapper, S
for (int j = 0; j < lastCellNum; j++) { for (int j = 0; j < lastCellNum; j++) {
XSSFCell cell= row.getCell(j); XSSFCell cell= row.getCell(j);
String cellValue = HSSFWorkbookUtil.getJavaValue(cell).toString(); String cellValue = HSSFWorkbookUtil.getJavaValue(cell).toString();
if ("工程号".equals(cellValue)){ if ("平均容重".equals(cellValue)){
for (int m = j+1; m < lastCellNum; m++) { for (int m = j+1; m < lastCellNum; m++) {
String value= HSSFWorkbookUtil.getJavaValue(row.getCell(m)).toString(); String value= HSSFWorkbookUtil.getJavaValue(row.getCell(m)).toString();
if (StringUtils.isNotBlank(value)){ if (StringUtils.isNotBlank(value)){
...@@ -722,7 +723,7 @@ public class SoilEntrustServiceImpl extends BaseServiceImpl<SoilEntrustMapper, S ...@@ -722,7 +723,7 @@ public class SoilEntrustServiceImpl extends BaseServiceImpl<SoilEntrustMapper, S
} }
} }
if (itemIndexMap.size()>0){ if (itemIndexMap.size()>0){
if (StringHandleUtils.isNumeric(cellValue0)){ if (StringHandleUtils.isNumeric(cellValue0)|| !StringStaticDataUtils.importEntrustTitle.contains(cellValue0.trim())){
sampleInfoMap.put(cellValue0, Maps.newHashMap()); sampleInfoMap.put(cellValue0, Maps.newHashMap());
Map<String,String> mapInfo = sampleInfoMap.get(cellValue0); Map<String,String> mapInfo = sampleInfoMap.get(cellValue0);
for (int j = 0; j < lastCellNum; j++) { for (int j = 0; j < lastCellNum; j++) {
......
...@@ -13,6 +13,7 @@ import java.util.stream.Collectors; ...@@ -13,6 +13,7 @@ import java.util.stream.Collectors;
import com.baomidou.mybatisplus.mapper.Condition; import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.toolkit.ArrayUtils; import com.baomidou.mybatisplus.toolkit.ArrayUtils;
import com.baomidou.mybatisplus.toolkit.CollectionUtils; import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.toolkit.IdWorker;
import com.patzn.cloud.commons.api.RestAssert; import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account; import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.toolkit.FileUtils; import com.patzn.cloud.commons.toolkit.FileUtils;
...@@ -70,6 +71,9 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -70,6 +71,9 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
@Autowired @Autowired
private ISoilAptitudeExpService soilAptitudeExpService;
@Autowired
private OssClient ossClient; private OssClient ossClient;
@Override @Override
...@@ -383,6 +387,44 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -383,6 +387,44 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
} }
@Transactional(rollbackFor = Exception.class)
@Override
public boolean importExperiments(Long[] ids, Long[] aptitudeIds, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择样品");
RestAssert.fail(ArrayUtils.isEmpty(aptitudeIds),"请选择试验项目");
List<SoilAptitudeExp> soilAptitudeExps = soilAptitudeExpService.list(Condition.create().in("id",aptitudeIds));
RestAssert.fail(CollectionUtils.isEmpty(soilAptitudeExps),"请选择试验项目");
List<SoilExperiment> saveExperimentList = new ArrayList<>();
List<SoilExperimentOperation> saveExperimentOperationList = new ArrayList<>();
for (Long sampleId:ids) {
for (SoilAptitudeExp aptitudeExp:soilAptitudeExps) {
SoilExperiment experiment = aptitudeExp.convert(SoilExperiment.class);
experiment.setSampleId(sampleId);
experiment.setAptitudeExpId(aptitudeExp.getId());
experiment.setStatus(SoilExpStatusEnum.DRAFT);
experiment.setProgress(SoilExpStatusEnum.DRAFT);
experiment.setId(IdWorker.getId());
saveExperimentList.add(experiment);
SoilExperimentOperation experimentOperation = new SoilExperimentOperation();
experimentOperation.setExperimentId(experiment.getId());
saveExperimentOperationList.add(experimentOperation);
}
}
if (CollectionUtils.isNotEmpty(saveExperimentList)){
saveBatch(saveExperimentList);
soilExperimentOperationService.saveBatch(saveExperimentOperationList);
}
return true;
}
public static boolean isAllFieldNull(Object object) { public static boolean isAllFieldNull(Object object) {
Class clazz = object.getClass(); Class clazz = object.getClass();
Field [] fields = clazz.getDeclaredFields(); Field [] fields = clazz.getDeclaredFields();
......
...@@ -136,7 +136,7 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi ...@@ -136,7 +136,7 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi
Map<Long, Set<String>> shortNameMap = new HashMap<>(); Map<Long, Set<String>> shortNameMap = new HashMap<>();
for (SoilExperiment experiment:experimentList) { for (SoilExperiment experiment:experimentList) {
if (!nameMap.containsKey(experiment.getSampleId())){ if (!nameMap.containsKey(experiment.getSampleId())){
Set<String> set = new HashSet<>(); Set<String> set = new TreeSet<>();
set.add(experiment.getName()); set.add(experiment.getName());
nameMap.put(experiment.getSampleId(),set); nameMap.put(experiment.getSampleId(),set);
}else{ }else{
...@@ -146,9 +146,12 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi ...@@ -146,9 +146,12 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi
} }
if (StringUtils.isBlank(experiment.getShortName())){
continue;
}
if (!shortNameMap.containsKey(experiment.getSampleId())){ if (!shortNameMap.containsKey(experiment.getSampleId())){
Set<String> set = new HashSet<>(); Set<String> set = new TreeSet<>();
set.add(experiment.getShortName()); set.add(experiment.getShortName());
shortNameMap.put(experiment.getSampleId(),set); shortNameMap.put(experiment.getSampleId(),set);
}else{ }else{
...@@ -189,13 +192,14 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi ...@@ -189,13 +192,14 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi
sample.setStatus(SoilSampleStatusEnum.SEND); sample.setStatus(SoilSampleStatusEnum.SEND);
sample.setProgress(SoilSampleStatusEnum.SEND); sample.setProgress(SoilSampleStatusEnum.SEND);
List<SoilExperiment> experimentList = soilExperimentService.list(Condition.create().setSqlSelect("sample_id").in("sample_id",ids).groupBy("sample_id"));
RestAssert.fail(experimentList.size()!=ids.length,"请选择含有试验项目的委托");
if (super.update(sample,Condition.create().in("id",ids))){ if (super.update(sample,Condition.create().in("id",ids))){
soilSampleOperationService.recordReceiveInfo(ids,locationId,receiveLocation,account); soilSampleOperationService.recordReceiveInfo(ids,locationId,receiveLocation,account);
soilSampleRecordService.record(SoilSampleStatusEnum.RECEIVE,SoilSampleStatusEnum.SEND,ids,0,account,"收样室收样"); soilSampleRecordService.record(SoilSampleStatusEnum.RECEIVE,SoilSampleStatusEnum.SEND,ids,0,account,"收样室收样");
//soilSampleBackupService.initBackup(ids,account); //soilSampleBackupService.initBackup(ids,account);
//初始化备样 //初始化备样
} }
//更改委托状态 //更改委托状态
List<SoilSample> sampleList = super.list(Condition.create().setSqlSelect("entrust_id").in("id",ids).groupBy("entrust_id")); List<SoilSample> sampleList = super.list(Condition.create().setSqlSelect("entrust_id").in("id",ids).groupBy("entrust_id"));
if (CollectionUtils.isEmpty(sampleList)){ if (CollectionUtils.isEmpty(sampleList)){
...@@ -231,6 +235,7 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi ...@@ -231,6 +235,7 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi
public boolean sendSample(Long[] ids, Account account) { public boolean sendSample(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要发放的样品"); RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择要发放的样品");
int count = super.count(Condition.create().in("id",ids).ne("status",SoilSampleStatusEnum.SEND)); int count = super.count(Condition.create().in("id",ids).ne("status",SoilSampleStatusEnum.SEND));
RestAssert.fail(!checkSampleHaveExperiment(ids),"请发放含有试验项目的样品");
RestAssert.fail(count>0,"请发放待发放的样品"); RestAssert.fail(count>0,"请发放待发放的样品");
SoilSample sample = new SoilSample(); SoilSample sample = new SoilSample();
sample.setStatus(SoilSampleStatusEnum.SOIL_PREPARE); sample.setStatus(SoilSampleStatusEnum.SOIL_PREPARE);
...@@ -270,6 +275,10 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi ...@@ -270,6 +275,10 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi
return true; return true;
} }
private boolean checkSampleHaveExperiment(Long[] ids) {
return ids.length!=soilExperimentService.list(Condition.create().setSqlSelect("sample_id").in("sample_id",ids).groupBy("sample_id")).size();
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
...@@ -291,11 +300,17 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi ...@@ -291,11 +300,17 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi
return Lists.newArrayList(); return Lists.newArrayList();
} }
List<Long> sampleIds = Arrays.asList(ids); List<Long> sampleIds = Arrays.asList(ids);
List<SoilExperiment> experimentListDb = soilExperimentService.list(Condition.create().setSqlSelect("group_id","group_name","sample_id","name").in("sample_id",ids));
for (SoilExperiment experiment:experimentList) { for (SoilExperiment experiment:experimentList) {
if (!sampleIds.contains(experiment.getSampleId())){ if (!sampleIds.contains(experiment.getSampleId())){
RestAssert.fail(ArrayUtils.isEmpty(ids),"选择的样品不含试验项目,请确认"); RestAssert.fail(ArrayUtils.isEmpty(ids),"选择的样品不含试验项目,请确认");
} }
RestAssert.fail(null == experiment.getGroupId()||StringUtils.isBlank(experiment.getGroupName()),"试验项目:"+experiment.getName()+"未填写实验科室,请确认!"); }
for (SoilExperiment experiment:experimentListDb) {
RestAssert.fail(null == experiment.getGroupId()||StringUtils.isBlank(experiment.getGroupName()),"试验项目:"+experiment.getName()+"未填写实验科室,请确认!");
} }
...@@ -382,6 +397,19 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi ...@@ -382,6 +397,19 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi
if (super.update(sample,Condition.create().in("id",sampleIdSet))){ if (super.update(sample,Condition.create().in("id",sampleIdSet))){
soilSampleOperationService.recordMakerInfo(sampleIdSet,account); soilSampleOperationService.recordMakerInfo(sampleIdSet,account);
soilSampleRecordService.record(SoilSampleStatusEnum.SEND,SoilSampleStatusEnum.SOIL_PREPARE,sampleIdSet,0,account,"样品开土制备完成"); soilSampleRecordService.record(SoilSampleStatusEnum.SEND,SoilSampleStatusEnum.SOIL_PREPARE,sampleIdSet,0,account,"样品开土制备完成");
List<SoilPrepare> saveList = new ArrayList<>();
for (Long sampleId:sampleIdSet) {
SoilPrepare prepare = new SoilPrepare();
//2代表是副样
prepare.setType(2);
prepare.setStatus(SoilPrepareStatusEnum.PREPARED);
prepare.setProgress(SoilPrepareStatusEnum.PREPARED);
prepare.setSampleId(sampleId);
saveList.add(prepare);
}
if (CollectionUtils.isNotEmpty(saveList)){
soilPrepareService.saveBatch(saveList);
}
} }
for (SoilPrepare prepare:prepareList) { for (SoilPrepare prepare:prepareList) {
...@@ -482,4 +510,31 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi ...@@ -482,4 +510,31 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi
} }
return takeSample(sampleIds,account); return takeSample(sampleIds,account);
} }
@Override
public Page<SoilSampleVO> pageLocationSample(Page<SoilSampleVO> page, SoilSampleVO soilSample) {
if (StringUtils.isBlank(soilSample.getReceiveLocation())){
RestAssert.fail("请填写收样位置");
}
return page.setRecords(baseMapper.selectLocationSample(page,soilSample));
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean sampleRetain(Long[] ids,Long locationId,String location, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择试样");
List<SoilExperiment> experimentList= soilExperimentService.list(Condition.create().setSqlSelect("id").in("sample_id",ids));
RestAssert.fail(null == locationId || StringUtils.isBlank(location),"请选择要存放的位置");
if (CollectionUtils.isNotEmpty(experimentList)){
RestAssert.fail("请留存不含试验项目的样品");
}
SoilSample sample = new SoilSample();
sample.setStatus(SoilSampleStatusEnum.RETAIN);
sample.setProgress(SoilSampleStatusEnum.RETAIN);
soilSampleRecordService.record(SoilSampleStatusEnum.RECEIVE,SoilSampleStatusEnum.RECEIVE,ids,0,account,"不含有试验项目的样品进行留存");
soilSampleOperationService.recordReceiveInfo(ids,locationId,location,account);
return super.update(sample,Condition.create().in("id",ids));
}
} }
...@@ -68,12 +68,36 @@ ...@@ -68,12 +68,36 @@
JOIN soil_entrust e ON s.entrust_id = e.id JOIN soil_entrust e ON s.entrust_id = e.id
WHERE s.deleted = 0 AND e.deleted = 0 WHERE s.deleted = 0 AND e.deleted = 0
<include refid="sWhere"/> <include refid="sWhere"/>
<if test="vo.haveExp!=null">
<if test="vo.haveExp == 0">
AND (SELECT COUNT(1) FROM soil_experiment WHERE deleted = 0 AND sample_id = s.id )=0
</if>
<if test="vo.haveExp == 1">
AND (SELECT COUNT(1) FROM soil_experiment WHERE deleted = 0 AND sample_id = s.id )>0
</if>
</if>
ORDER BY s.sample_code ORDER BY s.sample_code
</select> </select>
<select id="selectLocationSample" resultType="com.patzn.cloud.service.soil.vo.SoilSampleVO">
WITH o AS ( SELECT sample_id,receive_location,receiver,receive_time,sender,send_time,make_time,maker,company_id FROM soil_sample_operation WHERE receive_location = #{vo.receiveLocation} )
SELECT
<include refid="sColumn"/>,<include refid="eColumn"/>,
o.receive_location,o.receiver,o.receive_time,o.sender,o.send_time,o.make_time,o.maker
FROM
o o
JOIN soil_sample s ON o.sample_id = s.id
JOIN soil_entrust e ON s.entrust_id = e.id
WHERE s.deleted = 0 AND e.deleted = 0
<include refid="sWhere"/>
ORDER BY s.sample_code
</select>
<select id="selectVOListByExp" resultType="com.patzn.cloud.service.soil.vo.SoilSampleVO"> <select id="selectVOListByExp" resultType="com.patzn.cloud.service.soil.vo.SoilSampleVO">
WITH exp AS ( WITH exp AS (
SELECT sample_id,company_id FROM soil_experiment WHERE deleted = 0 SELECT sample_id,company_id FROM soil_experiment WHERE deleted = 0
......
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