Commit f3174e3c by zhangmengqi

Merge branch 'dev'

parents 80f8ea96 4be9bf0d
......@@ -13,10 +13,10 @@ import java.util.List;
public class CollectUtil {
public static void main(String[] args) {
File file = new File("D://颗粒分析试验 GB SieveS-99.txt");
File file = new File("D://三轴压缩S-10r.txt");
try {
FileInputStream io = new FileInputStream(file);
txt2StringKeliFenxi(io);
txt2String(io);
}catch (Exception e){
}
......@@ -277,10 +277,32 @@ public class CollectUtil {
List<String> allStringList = new ArrayList<>();
String e50 = "";
while((s = brCheck.readLine())!=null){
allStringList.add(s);
String content = s.replace(" ","");
if (content.contains("剪切峰值50%ε50")){
String [] e50s=content.split("│");
if (e50s.length>=3){
if (StringUtils.isNotBlank(e50s[2])){
SoilExperimentCollectData njlData = new SoilExperimentCollectData();
njlData.setName("剪切峰值50%ε50");
njlData.setTestValue(e50s[2]);
dataList.add(njlData);
}
}
}
sbAll.append(content);
}
if (sbAll.toString().contains("无侧限抗压强度试验")){
......
......@@ -65,6 +65,21 @@ public class SoilExperimentController extends ServiceController {
@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_statistics")
public RestResult<Page<SoilExperimentVO>> getPageCheckStatistics(SoilExperimentVO soilExperiment) {
soilExperiment.setCompanyId(currentCompanyId());
return success(soilExperimentService.pageCheckStatistics(getPage(), soilExperiment));
}
......
......@@ -161,10 +161,30 @@ public class SoilStatisticsController extends ServiceController {
@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_area_statistics")
public RestResult<Page<SoilEntrustVO>> getPageAreaStatistics(SoilEntrustVO entrustVO) {
return success(soilEntrustService.pageAreaStatistics(getPage(), entrustVO));
}
@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_project_statistics")
public RestResult<Page<SoilEntrustVO>> getPageProjectStatistics(SoilEntrustVO entrustVO) {
return success(soilEntrustService.pageProjectStatistics(getPage(), entrustVO));
}
}
......@@ -58,4 +58,8 @@ public interface SoilEntrustMapper extends BaseMapper<SoilEntrust> {
@SqlParser(filter = true)
List<SoilEntrustVO> selectListForSummaryQuery(RowBounds rowBounds,@Param("vo")SoilEntrustVO soilEntrust);
List<SoilEntrustVO> selectAreaStatistics(RowBounds rowBounds,@Param("vo")SoilEntrustVO entrustVO);
List<SoilEntrustVO> selectProjectStatistics(RowBounds rowBounds,@Param("vo")SoilEntrustVO entrustVO);
}
package com.patzn.cloud.service.lims.soil.mapper;
import com.baomidou.mybatisplus.annotations.SqlParser;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.service.soil.dto.SoilExperimentQueryDTO;
......@@ -49,4 +50,9 @@ public interface SoilExperimentMapper extends BaseMapper<SoilExperiment> {
List<SoilExperimentVO> listGroupVOListByEntrustIds( @Param("entrustIdList")List<Long> entrustIdList);
List<SoilExperimentVO> selectByEntrustId( @Param("entrustId")Long entrustId);
@SqlParser(filter = true)
List<SoilExperimentVO> selectCheckStatistics(RowBounds rowBounds, @Param("vo")SoilExperimentVO soilExperiment);
List<SoilExperimentVO> selectVOForProjectStatistics(@Param("entrustIds")List<Long> entrustIdsList);
}
......@@ -102,4 +102,8 @@ public interface ISoilEntrustService extends IBaseService<SoilEntrust> {
Page<SoilEntrustVO> pageReportBySummaryReport(Page<SoilEntrustVO> page, SoilEntrustVO soilEntrust);
Page<SoilEntrustSummaryDTO> listSummaryQuery(Page<SoilEntrustSummaryDTO> page,SoilEntrustVO soilEntrust);
Page<SoilEntrustVO> pageAreaStatistics(Page<SoilEntrustVO> page, SoilEntrustVO entrustVO);
Page<SoilEntrustVO> pageProjectStatistics(Page<SoilEntrustVO> page, SoilEntrustVO entrustVO);
}
......@@ -109,4 +109,8 @@ public interface ISoilExperimentService extends IBaseService<SoilExperiment> {
boolean uploadDynamicsCollect(MultipartHttpServletRequest httpServletRequest, Long entrustId, Account account);
SoilExpReport seniorTestReport(Long id, Account account);
Page<SoilExperimentVO> pageCheckStatistics(Page<SoilExperimentVO> page, SoilExperimentVO soilExperiment);
List<SoilExperimentVO> listVOForProjectStatistics(List<Long> entrustIdsList);
}
......@@ -18,6 +18,7 @@ import com.patzn.cloud.feign.lims.base.client.LmsUserGroupClient;
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.enums.CodeTypeEnum;
import com.patzn.cloud.service.lims.common.HSSFWorkbookUtil;
import com.patzn.cloud.service.lims.common.MyComparator;
import com.patzn.cloud.service.lims.common.StringStaticDataUtils;
import com.patzn.cloud.service.lims.common.service.IExportService;
......@@ -40,7 +41,6 @@ import com.patzn.cloud.service.soil.vo.SoilEntrustVO;
import com.patzn.cloud.service.soil.vo.SoilExperimentVO;
import com.patzn.cloud.service.soil.vo.SoilPrepareVO;
import com.patzn.cloud.service.soil.vo.SoilSampleVO;
import com.patzn.poibox.xwpf.HSSFWorkbookUtil;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -1494,6 +1494,82 @@ public class SoilEntrustServiceImpl extends BaseServiceImpl<SoilEntrustMapper, S
return page;
}
@Override
public Page<SoilEntrustVO> pageAreaStatistics(Page<SoilEntrustVO> page, SoilEntrustVO entrustVO) {
return page.setRecords(baseMapper.selectAreaStatistics(page,entrustVO));
}
@Override
public Page<SoilEntrustVO> pageProjectStatistics(Page<SoilEntrustVO> page, SoilEntrustVO entrustVO) {
List<SoilEntrustVO> voList = baseMapper.selectProjectStatistics(page,entrustVO);
if (CollectionUtils.isEmpty(voList)){
return page;
}
List<String> projectNameList = voList.stream().map(v->{
return v.getProjectName();
}).collect(Collectors.toList());
List<SoilEntrust> entrustList = list(Condition.create().setSqlSelect("id","project_name").in("project_name",projectNameList));
List<Long> entrustIdsList = entrustList.stream().map(e->{
return e.getId();
}).collect(Collectors.toList());
if (CollectionUtils.isEmpty(entrustIdsList)){
return page.setRecords(voList);
}
List<SoilExperimentVO> experimentVOList = soilExperimentService.listVOForProjectStatistics(entrustIdsList);
if (CollectionUtils.isEmpty(experimentVOList)){
return page.setRecords(voList);
}
Map<String,List<String>> mapItemName = new HashMap<>();
Map<String,Integer> mapItemCount = new HashMap<>();
for (SoilExperimentVO vo : experimentVOList) {
if (null==vo.getItemCount()){
vo.setItemCount(0);
}
if (mapItemName.containsKey(vo.getProjectName())){
List<String> nameList = mapItemName.get(vo.getProjectName());
nameList.add(vo.getName());
mapItemName.put(vo.getProjectName(),nameList);
}else{
List<String> nameList = new ArrayList<>();
nameList.add(vo.getName());
mapItemName.put(vo.getProjectName(),nameList);
}
if (mapItemCount.containsKey(vo.getProjectName())){
Integer num = mapItemCount.get(vo.getProjectName());
num = num + vo.getItemCount();
mapItemCount.put(vo.getProjectName(),num);
}else{
Integer num = 0;
num = num + vo.getItemCount();
mapItemCount.put(vo.getProjectName(),num);
}
}
for (SoilEntrustVO vo : voList) {
List<String> nameList = mapItemName.get(vo.getProjectName());
Integer num = mapItemCount.get(vo.getProjectName());
if (CollectionUtils.isNotEmpty(nameList)){
vo.setItemNames(com.patzn.cloud.service.lims.common.StringHandleUtils.join(nameList));
}
vo.setNum(num);
}
return page.setRecords(voList);
}
@Transactional(rollbackFor = Exception.class)
@Override
......
......@@ -1258,7 +1258,7 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
String generated="原始记录";
try {
file = File.createTempFile(generated, ".xlsx");
file = File.createTempFile(generated, "."+template.getType());
os = new FileOutputStream(file);
xssfWorkbook.write(os);
os.flush();
......@@ -2708,6 +2708,20 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
return objectKey;
}
@Override
public Page<SoilExperimentVO> pageCheckStatistics(Page<SoilExperimentVO> page, SoilExperimentVO soilExperiment) {
soilExperiment.setStatusList(Lists.newArrayList(
SoilExpStatusEnum.AUDIT,
SoilExpStatusEnum.END
));
return page.setRecords(baseMapper.selectCheckStatistics(page,soilExperiment));
}
@Override
public List<SoilExperimentVO> listVOForProjectStatistics(List<Long> entrustIdsList) {
return baseMapper.selectVOForProjectStatistics(entrustIdsList);
}
public boolean parseTxt(MultipartFile smbFile, CollectDataType request) {
try {
......
......@@ -651,7 +651,7 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi
}
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));
List<SoilExperiment> experimentListDb = soilExperimentService.list(Condition.create().setSqlSelect("group_id","group_name","sample_id","name","short_name").in("sample_id",ids));
for (SoilExperiment experiment:experimentList) {
if (!sampleIds.contains(experiment.getSampleId())){
......@@ -665,6 +665,9 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi
Map<Long,List<SoilExperiment>> groupSampleMap = new HashMap<>();
Map<String,List<SoilExperiment>> groupAndSampleMap = new HashMap<>();
for (SoilExperiment experiment:experimentList) {
if (!groupSampleMap.containsKey(experiment.getSampleId())){
List<SoilExperiment> soilExperimentList = Lists.newArrayList(experiment);
......@@ -675,11 +678,22 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi
groupSampleMap.put(experiment.getSampleId(),soilExperimentList);
}
}
for (SoilExperiment experiment : experimentListDb) {
if (groupAndSampleMap.containsKey(experiment.getSampleId()+"--"+experiment.getGroupId())){
List<SoilExperiment> soilExperimentList = groupAndSampleMap.get(experiment.getSampleId()+"--"+experiment.getGroupId());
soilExperimentList.add(experiment);
groupAndSampleMap.put(experiment.getSampleId()+"--"+experiment.getGroupId(),soilExperimentList);
}else {
List<SoilExperiment> soilExperimentList = new ArrayList<>();
soilExperimentList.add(experiment);
groupAndSampleMap.put(experiment.getSampleId()+"--"+experiment.getGroupId(),soilExperimentList);
}
}
List<SoilPrepareVO> prepareList = new ArrayList<>();
List<SoilSample> soilSampleList = list(Condition.create().in("id",ids));
List<SoilSampleVO> soilSampleList = listVOByIds(Arrays.asList(ids));
for (SoilSample sample:soilSampleList) {
for (SoilSampleVO sample:soilSampleList) {
Long sampleId = sample.getId();
List<SoilExperiment> soilExperimentList = groupSampleMap.get(sampleId);
if (null == soilExperimentList){
......@@ -698,7 +712,27 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi
prepare.setProgress(SoilPrepareStatusEnum.DRAFT);
prepare.setSampleCode(sample.getSampleCode());
prepare.setSampleDepth(sample.getSampleDepth());
prepare.setSiteNo(sample.getSiteNo());
prepare.setBoreholeName(sample.getBoreholeName());
prepare.setSamplePack(sample.getSamplePack());
if (null!=groupAndSampleMap.get(sampleId+"--"+soilExperiment.getGroupId())){
List<SoilExperiment> myGroupList = groupAndSampleMap.get(sampleId+"--"+soilExperiment.getGroupId());
StringBuffer sbName = new StringBuffer();
StringBuffer sbShortName = new StringBuffer();
for (SoilExperiment experiment : myGroupList) {
if (StringUtils.isNotBlank(experiment.getName())){
sbName.append(experiment.getName()).append("、");
}
if (StringUtils.isNotBlank(experiment.getShortName())){
sbShortName.append(experiment.getShortName()).append("、");
}
}
prepare.setItemNames(StringHandleUtils.getExcepLastOne(sbName.toString()));
prepare.setItemNamesShort(StringHandleUtils.getExcepLastOne(sbShortName.toString()));
}
prepareList.add(prepare);
}
SoilPrepareVO prepare = new SoilPrepareVO();
......
......@@ -369,4 +369,64 @@
</select>
<select id="selectAreaStatistics" resultType="com.patzn.cloud.service.soil.vo.SoilEntrustVO">
SELECT
e.borehole_location,count(1) AS num
FROM
soil_sample s
JOIN soil_entrust e ON s.entrust_id = e.ID
WHERE s.deleted = 0 AND e.deleted = 0
<if test="null!=vo.boreholeLocation">
AND e.borehole_location LIKE CONCAT('%',#{vo.boreholeLocation},'%')
</if>
<if test="null!=vo.entrustDateBeg">
AND e.entrust_date >= #{vo.entrustDateBeg}
</if>
<if test="null!=vo.entrustDateEnd">
AND e.entrust_date <![CDATA[<=]]> #{vo.entrustDateEnd}
</if>
GROUP BY e.borehole_location
</select>
<select id="selectProjectStatistics" resultType="com.patzn.cloud.service.soil.vo.SoilEntrustVO">
SELECT
e.project_name,
a.project_type
FROM
soil_entrust e
LEFT JOIN ( SELECT project_name, project_type FROM soil_alone_sample WHERE deleted = 0 GROUP BY project_name, project_type ) a ON e.project_name = a.project_name
WHERE e.deleted = 0 AND e.project_name IS NOT NULL
<if test="null!=vo.projectName">
AND e.project_name LIKE CONCAT('%',#{vo.projectName},'%')
</if>
<if test="null!=vo.projectType">
AND a.project_type LIKE CONCAT('%',#{vo.projectType},'%')
</if>
<if test="null!=vo.entrustDateBeg">
AND e.entrust_date >= #{vo.entrustDateBeg}
</if>
<if test="null!=vo.entrustDateEnd">
AND e.entrust_date <![CDATA[<=]]> #{vo.entrustDateEnd}
</if>
GROUP BY e.project_name,
a.project_type
</select>
</mapper>
......@@ -446,5 +446,69 @@
<select id="selectCheckStatistics" resultType="com.patzn.cloud.service.soil.vo.SoilExperimentVO">
SELECT t.NAME
,
COUNT ( 1 ) AS "itemCount"
FROM
soil_experiment t
JOIN soil_sample s ON t.sample_id = s.id
JOIN soil_experiment_operation o ON t.id = o.experiment_id
JOIN soil_entrust e ON s.entrust_id = e.id
WHERE
t.status IN
<foreach collection="vo.statusList" index="index" item="status" open="(" separator="," close=")">
#{status}
</foreach>
AND t.company_id = #{vo.companyId}
<if test="null!=vo.name">
AND t.name LIKE CONCAT('%',#{vo.name},'%')
</if>
<if test="null!=vo.checkTimeBeg">
AND o.check_time >= #{vo.checkTimeBeg}
</if>
<if test="null!=vo.checkTimeEnd">
AND o.check_time <![CDATA[<=]]> #{vo.checkTimeEnd}
</if>
AND t.deleted = 0
AND s.deleted = 0
AND e.deleted = 0
GROUP BY
t.NAME
</select>
<select id="selectVOForProjectStatistics" resultType="com.patzn.cloud.service.soil.vo.SoilExperimentVO">
SELECT
e.project_name,t.name, COUNT ( 1 ) AS "itemCount"
FROM
soil_experiment t
JOIN soil_experiment_operation o ON T.id = o.experiment_id
JOIN soil_sample s ON T.sample_id = s.ID
JOIN soil_entrust e ON s.entrust_id = e.ID
WHERE e.deleted = 0 AND s.deleted = 0 AND t.deleted = 0
AND e.id IN
<foreach collection="entrustIds" index="index" item="entrustId" open="(" separator="," close=")">
#{entrustId}
</foreach>
GROUP BY e.project_name,t.name
</select>
</mapper>
This source diff could not be displayed because it is too large. You can view the blob instead.
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