Commit 906e8894 by wangweidong

土工平台修改

parent ebe46889
...@@ -65,6 +65,21 @@ public class SoilExperimentController extends ServiceController { ...@@ -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 { ...@@ -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> { ...@@ -58,4 +58,8 @@ public interface SoilEntrustMapper extends BaseMapper<SoilEntrust> {
@SqlParser(filter = true) @SqlParser(filter = true)
List<SoilEntrustVO> selectListForSummaryQuery(RowBounds rowBounds,@Param("vo")SoilEntrustVO soilEntrust); 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; package com.patzn.cloud.service.lims.soil.mapper;
import com.baomidou.mybatisplus.annotations.SqlParser;
import com.baomidou.mybatisplus.mapper.BaseMapper; import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.service.soil.dto.SoilExperimentQueryDTO; import com.patzn.cloud.service.soil.dto.SoilExperimentQueryDTO;
...@@ -49,4 +50,9 @@ public interface SoilExperimentMapper extends BaseMapper<SoilExperiment> { ...@@ -49,4 +50,9 @@ public interface SoilExperimentMapper extends BaseMapper<SoilExperiment> {
List<SoilExperimentVO> listGroupVOListByEntrustIds( @Param("entrustIdList")List<Long> entrustIdList); List<SoilExperimentVO> listGroupVOListByEntrustIds( @Param("entrustIdList")List<Long> entrustIdList);
List<SoilExperimentVO> selectByEntrustId( @Param("entrustId")Long entrustId); 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> { ...@@ -102,4 +102,8 @@ public interface ISoilEntrustService extends IBaseService<SoilEntrust> {
Page<SoilEntrustVO> pageReportBySummaryReport(Page<SoilEntrustVO> page, SoilEntrustVO soilEntrust); Page<SoilEntrustVO> pageReportBySummaryReport(Page<SoilEntrustVO> page, SoilEntrustVO soilEntrust);
Page<SoilEntrustSummaryDTO> listSummaryQuery(Page<SoilEntrustSummaryDTO> 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> { ...@@ -109,4 +109,8 @@ public interface ISoilExperimentService extends IBaseService<SoilExperiment> {
boolean uploadDynamicsCollect(MultipartHttpServletRequest httpServletRequest, Long entrustId, Account account); boolean uploadDynamicsCollect(MultipartHttpServletRequest httpServletRequest, Long entrustId, Account account);
SoilExpReport seniorTestReport(Long id, 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; ...@@ -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.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.HSSFWorkbookUtil;
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.StringStaticDataUtils;
import com.patzn.cloud.service.lims.common.service.IExportService; import com.patzn.cloud.service.lims.common.service.IExportService;
...@@ -40,7 +41,6 @@ import com.patzn.cloud.service.soil.vo.SoilEntrustVO; ...@@ -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.SoilExperimentVO;
import com.patzn.cloud.service.soil.vo.SoilPrepareVO; import com.patzn.cloud.service.soil.vo.SoilPrepareVO;
import com.patzn.cloud.service.soil.vo.SoilSampleVO; import com.patzn.cloud.service.soil.vo.SoilSampleVO;
import com.patzn.poibox.xwpf.HSSFWorkbookUtil;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -1494,6 +1494,82 @@ public class SoilEntrustServiceImpl extends BaseServiceImpl<SoilEntrustMapper, S ...@@ -1494,6 +1494,82 @@ public class SoilEntrustServiceImpl extends BaseServiceImpl<SoilEntrustMapper, S
return page; 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) @Transactional(rollbackFor = Exception.class)
@Override @Override
......
...@@ -1258,7 +1258,7 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -1258,7 +1258,7 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
String generated="原始记录"; String generated="原始记录";
try { try {
file = File.createTempFile(generated, ".xlsx"); file = File.createTempFile(generated, "."+template.getType());
os = new FileOutputStream(file); os = new FileOutputStream(file);
xssfWorkbook.write(os); xssfWorkbook.write(os);
os.flush(); os.flush();
...@@ -2708,6 +2708,20 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap ...@@ -2708,6 +2708,20 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
return objectKey; 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) { public boolean parseTxt(MultipartFile smbFile, CollectDataType request) {
try { try {
......
...@@ -645,7 +645,7 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi ...@@ -645,7 +645,7 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi
@Override @Override
public List<SoilPrepareVO> obtainPrepareData(Long[] ids, Account account) { public List<SoilPrepareVO> obtainPrepareData(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择数据"); RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择数据");
List<SoilExperiment> experimentList = soilExperimentService.list(Condition.create().setSqlSelect("group_id","group_name","sample_id").in("sample_id",ids).groupBy("group_id,group_name,sample_id")); List<SoilExperiment> experimentList = soilExperimentService.list(Condition.create().setSqlSelect("group_id","group_name","sample_id","name","short_name").in("sample_id",ids).groupBy("group_id,group_name,sample_id"));
if (CollectionUtils.isEmpty(experimentList)){ if (CollectionUtils.isEmpty(experimentList)){
return Lists.newArrayList(); return Lists.newArrayList();
} }
...@@ -665,6 +665,9 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi ...@@ -665,6 +665,9 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi
Map<Long,List<SoilExperiment>> groupSampleMap = new HashMap<>(); Map<Long,List<SoilExperiment>> groupSampleMap = new HashMap<>();
Map<String,List<SoilExperiment>> groupAndSampleMap = new HashMap<>();
for (SoilExperiment experiment:experimentList) { for (SoilExperiment experiment:experimentList) {
if (!groupSampleMap.containsKey(experiment.getSampleId())){ if (!groupSampleMap.containsKey(experiment.getSampleId())){
List<SoilExperiment> soilExperimentList = Lists.newArrayList(experiment); List<SoilExperiment> soilExperimentList = Lists.newArrayList(experiment);
...@@ -674,12 +677,24 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi ...@@ -674,12 +677,24 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi
soilExperimentList.add(experiment); soilExperimentList.add(experiment);
groupSampleMap.put(experiment.getSampleId(),soilExperimentList); groupSampleMap.put(experiment.getSampleId(),soilExperimentList);
} }
if (groupAndSampleMap.containsKey(experiment.getSampleId()+"--"+experiment.getGroupId())){
List<SoilExperiment> soilExperimentList = groupSampleMap.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<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(); Long sampleId = sample.getId();
List<SoilExperiment> soilExperimentList = groupSampleMap.get(sampleId); List<SoilExperiment> soilExperimentList = groupSampleMap.get(sampleId);
if (null == soilExperimentList){ if (null == soilExperimentList){
...@@ -698,7 +713,27 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi ...@@ -698,7 +713,27 @@ public class SoilSampleServiceImpl extends BaseServiceImpl<SoilSampleMapper, Soi
prepare.setProgress(SoilPrepareStatusEnum.DRAFT); prepare.setProgress(SoilPrepareStatusEnum.DRAFT);
prepare.setSampleCode(sample.getSampleCode()); prepare.setSampleCode(sample.getSampleCode());
prepare.setSampleDepth(sample.getSampleDepth()); 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())){
sbName.append(experiment.getShortName()).append("、");
}
}
prepare.setItemNames(StringHandleUtils.getExcepLastOne(sbName.toString()));
prepare.setItemNamesShort(StringHandleUtils.getExcepLastOne(sbShortName.toString()));
}
prepareList.add(prepare); prepareList.add(prepare);
} }
SoilPrepareVO prepare = new SoilPrepareVO(); SoilPrepareVO prepare = new SoilPrepareVO();
......
...@@ -369,4 +369,64 @@ ...@@ -369,4 +369,64 @@
</select> </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> </mapper>
...@@ -446,5 +446,69 @@ ...@@ -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> </mapper>
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