Commit e3607375 by lijingjing

添加部分大屏接口查询;

parent e9c79dc3
package com.patzn.cloud.service.lims.hmhj.controller; package com.patzn.cloud.service.lims.hmhj.controller;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.service.hmhj.entity.EntrustSampleItemIndex; import com.patzn.cloud.service.hmhj.entity.EntrustSampleItemIndex;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.DeleteMapping;
...@@ -81,4 +82,16 @@ public class EntrustSampleItemIndexController extends ServiceController { ...@@ -81,4 +82,16 @@ public class EntrustSampleItemIndexController extends ServiceController {
public RestResult<Boolean> delete(@RequestParam("ids") List<Long> ids) { public RestResult<Boolean> delete(@RequestParam("ids") List<Long> ids) {
return success(entrustSampleItemIndexService.removeByIds(ids)); return success(entrustSampleItemIndexService.removeByIds(ids));
} }
@ApiOperation("根据检测项目ID查询信息")
@GetMapping("/get_by_item_info")
public RestResult<EntrustSampleItemIndex> getByItemIdName(@RequestParam("itemId") Long itemId) {
return success(entrustSampleItemIndexService.getByItemIdName(itemId));
}
@ApiOperation("添加或修改指标")
@PostMapping("/save_or_update")
public RestResult<Boolean> saveOrUpdate(EntrustSampleItemIndex entrustSampleItemIndex) {
return success(entrustSampleItemIndexService.saveOrUpdateData(entrustSampleItemIndex));
}
} }
...@@ -3,6 +3,7 @@ package com.patzn.cloud.service.lims.hmhj.controller; ...@@ -3,6 +3,7 @@ package com.patzn.cloud.service.lims.hmhj.controller;
import com.patzn.cloud.commons.api.RestResult; import com.patzn.cloud.commons.api.RestResult;
import com.patzn.cloud.commons.controller.ServiceController; import com.patzn.cloud.commons.controller.ServiceController;
import com.patzn.cloud.service.hmhj.dto.QueryDTO; import com.patzn.cloud.service.hmhj.dto.QueryDTO;
import com.patzn.cloud.service.hmhj.dto.WorkloadStatsQueryDTO;
import com.patzn.cloud.service.hmhj.entity.Statistics; import com.patzn.cloud.service.hmhj.entity.Statistics;
import com.patzn.cloud.service.lims.hmhj.service.IStatisticsService; import com.patzn.cloud.service.lims.hmhj.service.IStatisticsService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -67,7 +68,7 @@ public class StatisticsController extends ServiceController { ...@@ -67,7 +68,7 @@ public class StatisticsController extends ServiceController {
@ApiOperation("工作量统计") @ApiOperation("工作量统计")
@PostMapping("/workload_quantity") @PostMapping("/workload_quantity")
public RestResult<List<Statistics>> getWorkloadQuantity(QueryDTO queryDTO) { public RestResult<Statistics> getWorkloadQuantity(WorkloadStatsQueryDTO queryDTO) {
return success(statsService.getWorkloadQuantity(queryDTO)); return success(statsService.getWorkloadQuantity(queryDTO));
} }
...@@ -79,8 +80,8 @@ public class StatisticsController extends ServiceController { ...@@ -79,8 +80,8 @@ public class StatisticsController extends ServiceController {
@ApiOperation("本周自产炭块质量统计") @ApiOperation("本周自产炭块质量统计")
@PostMapping("/cur_week_carbon blocks") @PostMapping("/cur_week_carbon blocks")
public RestResult<List<Statistics>> getCurWeekCarbonBlocksStats(QueryDTO queryDTO) { public RestResult<List<Statistics>> getCurWeekCarbonBlocks(QueryDTO queryDTO) {
return success(statsService.getCurWeekCarbonBlocksStats(queryDTO)); return success(statsService.getCurWeekCarbonBlocks(queryDTO));
} }
@ApiOperation("当日原铝质量统计") @ApiOperation("当日原铝质量统计")
......
...@@ -2,6 +2,7 @@ package com.patzn.cloud.service.lims.hmhj.mapper; ...@@ -2,6 +2,7 @@ package com.patzn.cloud.service.lims.hmhj.mapper;
import com.patzn.cloud.commons.mapper.BatchMapper; import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.hmhj.dto.QueryDTO; import com.patzn.cloud.service.hmhj.dto.QueryDTO;
import com.patzn.cloud.service.hmhj.dto.WorkloadStatsQueryDTO;
import com.patzn.cloud.service.hmhj.entity.Statistics; import com.patzn.cloud.service.hmhj.entity.Statistics;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -12,4 +13,10 @@ public interface StatisticsMapper extends BatchMapper<Statistics> { ...@@ -12,4 +13,10 @@ public interface StatisticsMapper extends BatchMapper<Statistics> {
List<Statistics> selectAlBrandsRateStats(@Param("vo") QueryDTO dto); List<Statistics> selectAlBrandsRateStats(@Param("vo") QueryDTO dto);
Statistics selectOutTestFinishStats(@Param("vo") QueryDTO queryDTO); Statistics selectOutTestFinishStats(@Param("vo") QueryDTO queryDTO);
List<Statistics> selectCurWeekCarbonBlocks(@Param("vo") QueryDTO queryDTO);
List<Statistics> selectCurWeekAcceptanceQualified(@Param("vo") QueryDTO queryDTO);
Statistics selectWorkloadQuantity(@Param("vo") WorkloadStatsQueryDTO workloadStatsQueryDTO);
} }
...@@ -8,7 +8,7 @@ import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemIndexVO; ...@@ -8,7 +8,7 @@ import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemIndexVO;
import java.util.List; import java.util.List;
/** /**
* 服务类 * 服务类
* *
* @author wwd * @author wwd
* @since 2021-06-15 * @since 2021-06-15
...@@ -27,4 +27,9 @@ public interface IEntrustSampleItemIndexService extends IBaseService<EntrustSamp ...@@ -27,4 +27,9 @@ public interface IEntrustSampleItemIndexService extends IBaseService<EntrustSamp
List<EntrustSampleItemIndexVO> listVOBySampleIds(List<Long> sampleIds); List<EntrustSampleItemIndexVO> listVOBySampleIds(List<Long> sampleIds);
List<EntrustSampleItemIndex> listByItemId(Long itemId);
EntrustSampleItemIndex getByItemIdName(Long itemId);
boolean saveOrUpdateData(EntrustSampleItemIndex entrustSampleItemIndex);
} }
...@@ -2,6 +2,7 @@ package com.patzn.cloud.service.lims.hmhj.service; ...@@ -2,6 +2,7 @@ package com.patzn.cloud.service.lims.hmhj.service;
import com.patzn.cloud.commons.service.IBaseService; import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.hmhj.dto.QueryDTO; import com.patzn.cloud.service.hmhj.dto.QueryDTO;
import com.patzn.cloud.service.hmhj.dto.WorkloadStatsQueryDTO;
import com.patzn.cloud.service.hmhj.entity.Statistics; import com.patzn.cloud.service.hmhj.entity.Statistics;
import java.util.List; import java.util.List;
...@@ -35,9 +36,9 @@ public interface IStatisticsService extends IBaseService<Statistics> { ...@@ -35,9 +36,9 @@ public interface IStatisticsService extends IBaseService<Statistics> {
List<Statistics> getOutTestItemQuantity(QueryDTO queryDTO); List<Statistics> getOutTestItemQuantity(QueryDTO queryDTO);
List<Statistics> getWorkloadQuantity(QueryDTO queryDTO); Statistics getWorkloadQuantity(WorkloadStatsQueryDTO queryDTO);
List<Statistics> getCurWeekAcceptanceQualified(QueryDTO queryDTO); List<Statistics> getCurWeekAcceptanceQualified(QueryDTO queryDTO);
List<Statistics> getCurWeekCarbonBlocksStats(QueryDTO queryDTO); List<Statistics> getCurWeekCarbonBlocks(QueryDTO queryDTO);
} }
...@@ -2,10 +2,12 @@ package com.patzn.cloud.service.lims.hmhj.service.impl; ...@@ -2,10 +2,12 @@ package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.baomidou.mybatisplus.mapper.Condition; import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.toolkit.CollectionUtils; import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.service.hmhj.entity.EntrustSampleItem; import com.patzn.cloud.service.hmhj.entity.EntrustSampleItem;
import com.patzn.cloud.service.hmhj.entity.EntrustSampleItemIndex; import com.patzn.cloud.service.hmhj.entity.EntrustSampleItemIndex;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemIndexVO; import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemIndexVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO; import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO;
import com.patzn.cloud.service.lims.common.BeanUtils;
import com.patzn.cloud.service.lims.hmhj.mapper.EntrustSampleItemIndexMapper; import com.patzn.cloud.service.lims.hmhj.mapper.EntrustSampleItemIndexMapper;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleItemIndexService; import com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleItemIndexService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl; import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
...@@ -18,6 +20,7 @@ import com.baomidou.mybatisplus.plugins.Page; ...@@ -18,6 +20,7 @@ import com.baomidou.mybatisplus.plugins.Page;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -82,4 +85,38 @@ public class EntrustSampleItemIndexServiceImpl extends BaseServiceImpl<EntrustSa ...@@ -82,4 +85,38 @@ public class EntrustSampleItemIndexServiceImpl extends BaseServiceImpl<EntrustSa
} }
return baseMapper.listBySampleIds(sampleIds); return baseMapper.listBySampleIds(sampleIds);
} }
@Override
public List<EntrustSampleItemIndex> listByItemId(Long itemId) {
if (null == itemId) {
return null;
}
return list(Condition.create().eq("entrust_sample_item_id", itemId));
}
@Override
public EntrustSampleItemIndex getByItemIdName(Long itemId) {
RestAssert.fail(null == itemId, "检测项目为空");
EntrustSampleItem item = entrustSampleItemService.getById(itemId);
RestAssert.fail(null == item, "检测项目为空");
List<EntrustSampleItemIndex> itemIndices = list(Condition.create().eq("entrust_sample_item_id", itemId).eq("name", item.getName() + "-result"));
return CollectionUtils.isEmpty(itemIndices) ? new EntrustSampleItemIndex() : itemIndices.get(0);
}
@Override
public boolean saveOrUpdateData(EntrustSampleItemIndex itemIndex) {
RestAssert.fail(null == itemIndex && null == itemIndex.getEntrustSampleItemId(), "添加时检测项目ID为空");
if (null == itemIndex.getId()) {
EntrustSampleItemIndex indexData = getByItemIdName(itemIndex.getEntrustSampleItemId());
if (null != indexData && null != indexData.getId()) {
BeanUtils.copyProperties(itemIndex, indexData, true);
return updateById(indexData);
}
EntrustSampleItem item = entrustSampleItemService.getById(itemIndex.getEntrustSampleItemId());
itemIndex.setName(item.getName() + "-result");
itemIndex.setStatus(0);
return save(itemIndex);
}
return updateById(itemIndex);
}
} }
package com.patzn.cloud.service.lims.hmhj.service.impl; package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl; import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.hmhj.dto.QueryDTO; import com.patzn.cloud.service.hmhj.dto.QueryDTO;
import com.patzn.cloud.service.hmhj.dto.WorkloadStatsQueryDTO;
import com.patzn.cloud.service.hmhj.entity.Statistics; import com.patzn.cloud.service.hmhj.entity.Statistics;
import com.patzn.cloud.service.lims.hmhj.mapper.StatisticsMapper; import com.patzn.cloud.service.lims.hmhj.mapper.StatisticsMapper;
import com.patzn.cloud.service.lims.hmhj.service.IStatisticsService; import com.patzn.cloud.service.lims.hmhj.service.IStatisticsService;
import org.apache.commons.lang.time.DateUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
...@@ -58,17 +61,23 @@ public class StatisticsServiceImpl extends BaseServiceImpl<StatisticsMapper, Sta ...@@ -58,17 +61,23 @@ public class StatisticsServiceImpl extends BaseServiceImpl<StatisticsMapper, Sta
} }
@Override @Override
public List<Statistics> getWorkloadQuantity(QueryDTO queryDTO) { public Statistics getWorkloadQuantity(WorkloadStatsQueryDTO queryDTO) {
return null; RestAssert.fail(null == queryDTO.getTimeS() || null == queryDTO.getTimeE(), "起始和结束时间为空");
queryDTO.setLastYearTimeS(DateUtils.addYears(queryDTO.getTimeS(), -1));
queryDTO.setLastYearTimeE(DateUtils.addYears(queryDTO.getTimeE(), -1));
long days = com.patzn.cloud.commons.toolkit.DateUtils.getDaysBetweenTwoDate(queryDTO.getTimeS(), queryDTO.getTimeE());
queryDTO.setPrevTimeS(DateUtils.addDays(queryDTO.getTimeS(), -(int) days));
queryDTO.setPrevTimeE(queryDTO.getTimeS());
return baseMapper.selectWorkloadQuantity(queryDTO);
} }
@Override @Override
public List<Statistics> getCurWeekAcceptanceQualified(QueryDTO queryDTO) { public List<Statistics> getCurWeekAcceptanceQualified(QueryDTO queryDTO) {
return null; return baseMapper.selectCurWeekAcceptanceQualified(queryDTO);
} }
@Override @Override
public List<Statistics> getCurWeekCarbonBlocksStats(QueryDTO queryDTO) { public List<Statistics> getCurWeekCarbonBlocks(QueryDTO queryDTO) {
return null; return baseMapper.selectCurWeekCarbonBlocks(queryDTO);
} }
} }
...@@ -105,8 +105,7 @@ ...@@ -105,8 +105,7 @@
</if> </if>
AND i.company_id = #{vo.companyId} AND i.company_id = #{vo.companyId}
</where> </where>
ORDER BY s.order_by asc ,s.code ASC
ORDER BY i.name,s.code ASC
</select> </select>
<select id="selectVOList" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO"> <select id="selectVOList" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO">
...@@ -524,7 +523,7 @@ ...@@ -524,7 +523,7 @@
<select id="selectSampleItemStats" resultType="com.patzn.cloud.service.hmhj.vo.SampleItemStatsVO"> <select id="selectSampleItemStats" resultType="com.patzn.cloud.service.hmhj.vo.SampleItemStatsVO">
SELECT SELECT
s.code "sample_code", s.code "sample_code",
'[' || string_agg('{"key":"'||ii.name||'","value":'||COALESCE(ii.test_value,'0')||'}',',') || ']' "itemJson" '[' || string_agg('{"key":"'||replace(ii.name,'-result','')||'","value":'||COALESCE(ii.test_value,'0')||'}',',') || ']' "itemJson"
FROM FROM
entrust_sample_item_index ii entrust_sample_item_index ii
JOIN entrust_sample_item i ON i.ID = ii.entrust_sample_item_id JOIN entrust_sample_item i ON i.ID = ii.entrust_sample_item_id
......
...@@ -85,7 +85,6 @@ ...@@ -85,7 +85,6 @@
</select> </select>
<select id="selectMinStatusByEntrustIds" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleVO"> <select id="selectMinStatusByEntrustIds" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleVO">
WITH summary AS ( WITH summary AS (
SELECT p.id, SELECT p.id,
p.name, p.name,
...@@ -103,7 +102,6 @@ ...@@ -103,7 +102,6 @@
#{entrustId} #{entrustId}
</foreach> </foreach>
</if> </if>
) )
SELECT s.id, SELECT s.id,
s.name, s.name,
...@@ -112,15 +110,9 @@ ...@@ -112,15 +110,9 @@
s.status s.status
FROM summary s FROM summary s
WHERE s.ranks = 1 WHERE s.ranks = 1
</select> </select>
<select id="selectTestResultQuery" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleVO"> <select id="selectTestResultQuery" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleVO">
SELECT SELECT
s.ID, s.ID,
s.NAME, s.NAME,
...@@ -135,11 +127,10 @@ ...@@ -135,11 +127,10 @@
FROM entrust_sample s FROM entrust_sample s
JOIN entrust e ON s.entrust_id = e.ID JOIN entrust e ON s.entrust_id = e.ID
JOIN ( JOIN (
SELECT i.entrust_sample_id FROM entrust_sample_item i SELECT i.entrust_sample_id FROM entrust_sample_item i
JOIN entrust_sample_item_index x ON i.ID = x.entrust_sample_item_id JOIN entrust_sample_item_index x ON i.ID = x.entrust_sample_item_id
WHERE i.deleted = 0 AND x.deleted = 0 AND x.test_value IS NOT NULL WHERE i.deleted = 0 AND x.deleted = 0 AND x.test_value IS NOT NULL
GROUP BY i.entrust_sample_id GROUP BY i.entrust_sample_id
) k ON s.ID = k.entrust_sample_id ) k ON s.ID = k.entrust_sample_id
left join ( left join (
-- 实际每个样品一条记录,此处去除测试冗余数据 -- 实际每个样品一条记录,此处去除测试冗余数据
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!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.StatisticsMapper"> <mapper namespace="com.patzn.cloud.service.lims.hmhj.mapper.StatisticsMapper">
<!--当日原铝质量统计--> <!--当日原铝质量统计-->
<select id="selectAlBrandsRateStatus" resultType="com.patzn.cloud.service.hmhj.entity.Statistics"> <select id="selectAlBrandsRateStats" resultType="com.patzn.cloud.service.hmhj.entity.Statistics">
SELECT SELECT
s.sample_grading "brand", s.sample_grading "brand",
A.total, A.total,
...@@ -11,23 +11,24 @@ ...@@ -11,23 +11,24 @@
FROM FROM
entrust_sample s, entrust_sample s,
( (
SELECT COUNT ( 1 ) "total" FROM entrust_sample s WHERE s.deleted = 0 AND s.sample_grading IS NOT NULL SELECT COUNT (1) "total" FROM entrust_sample s WHERE s.deleted = 0 AND s.sample_grading IS NOT NULL
-- AND to_char(s.judge_time, 'yyyy-MM-dd') = to_char( now(), 'yyyy-MM-dd') AND to_char(s.judge_time, 'yyyy-MM-dd') = to_char( now(), 'yyyy-MM-dd')
) A ) A
WHERE WHERE
s.deleted = 0 s.deleted = 0
AND s.sample_grading IS NOT NULL -- AND to_char( s.judge_time, 'yyyy-MM-dd' ) = to_char(now(), 'yyyy-MM-dd') AND s.sample_grading IS NOT NULL AND to_char( s.judge_time, 'yyyy-MM-dd' ) = to_char(now(), 'yyyy-MM-dd')
GROUP BY GROUP BY
A.total_num, A.total,
s.sample_grading s.sample_grading
ORDER BY ORDER BY
s.sample_grading DESC s.sample_grading DESC
</select> </select>
<!--外委完成量统计--> <!--外委完成量统计-->
<select id="selectOutTestFinishStats" resultType="com.patzn.cloud.service.hmhj.entity.Statistics"> <select id="selectOutTestFinishStats" resultType="com.patzn.cloud.service.hmhj.entity.Statistics">
SELECT SELECT
count(1) "total", count(1) "total",
sum(case when s.status = 70 and s.judge_status = 2 then 1 else 0 end) "finish_num" sum(case when s.status = 70 and s.judge_status = 2 then 1 else 0 end) "done_num"
FROM FROM
contract_sample c, entrust_sample s contract_sample c, entrust_sample s
WHERE WHERE
...@@ -35,4 +36,101 @@ ...@@ -35,4 +36,101 @@
and c.type = 1 and c.type = 1
</select> </select>
<!--本周自产炭块质量统计-->
<select id="selectCurWeekCarbonBlocks" resultType="com.patzn.cloud.service.hmhj.entity.Statistics">
SELECT
s.sample_grading "brand",
A.total,
sum(case when s.status = 70 and s.judge_status = 2 then 1 else 0 end) "brand_num",
round( sum(case when s.status = 70 and s.judge_status = 2 then 1 else 0 end) :: NUMERIC / A.total, 2 ) "ratio"
FROM
entrust_sample s,
(
SELECT COUNT( 1 ) "total"
FROM
entrust_sample s
WHERE
s.deleted = 0
AND s.sample_grading IS NOT NULL
AND s.NAME = '自产阳极炭块'
AND EXTRACT ( YEAR FROM s.judge_time ) = EXTRACT ( YEAR FROM NOW() )
AND EXTRACT ( WEEK FROM s.judge_time ) = EXTRACT ( WEEK FROM NOW() )
) A
WHERE
s.deleted = 0
AND s.sample_grading IS NOT NULL
AND s.NAME = '自产阳极炭块'
AND EXTRACT ( YEAR FROM s.judge_time ) = EXTRACT ( YEAR FROM NOW() )
AND EXTRACT ( WEEK FROM s.judge_time ) = EXTRACT ( WEEK FROM NOW() )
GROUP BY
A.total,
s.sample_grading
ORDER BY
s.sample_grading DESC
</select>
<!--本周验收合格情况-->
<select id="selectCurWeekAcceptanceQualified" resultType="com.patzn.cloud.service.hmhj.entity.Statistics">
SELECT
to_char(s.judge_time,'yyyy-MM-dd') "occur_date",
sum(case when s.ok_judge = '合格' then 1 else 0 end) "done_num",
sum(case when s.ok_judge = '不合格' then 1 else 0 end) "fail_num"
FROM
entrust_sample s
WHERE
s.deleted = 0
AND s.sample_grading IS NOT NULL
AND s.status = 70 AND s.judge_status = 2
AND EXTRACT ( YEAR FROM s.judge_time ) = EXTRACT ( YEAR FROM NOW() )
AND EXTRACT ( WEEK FROM s.judge_time ) = EXTRACT ( WEEK FROM NOW() )
GROUP BY
to_char(s.judge_time,'yyyy-MM-dd')
ORDER BY
to_char(s.judge_time,'yyyy-MM-dd') ASC
</select>
<!--工作量统计-->
<select id="selectWorkloadQuantity" resultType="com.patzn.cloud.service.hmhj.entity.Statistics">
SELECT
a.*,
round((case when 0 = b.total then 0 else a.total - b.total end)::numeric / (case when 0 = b.total then 1 else b.total end),2) "chain_ratio",
round((case when 0 = c.total then 0 else a.total - c.total end)::numeric / (case when 0 = c.total then 1 else c.total end),2) "sames_ratio"
from (SELECT
count(r.id) "total",
sum(case when s.ok_judge = '合格' then 1 else 0 end) "done_num",
count(1) - sum(case when s.ok_judge = '合格' then 1 else 0 end) "fail_num",
round(sum(case when s.ok_judge = '合格' then 1 else 0 end):: NUMERIC / count(1),2) "done_ratio",
round((count(1) - sum(case when s.ok_judge = '合格' then 1 else 0 end)):: NUMERIC / count(1),2) "fail_ratio"
FROM
entrust_sample s
join entrust e on e.id = s.entrust_id
join entrust_report r on r.entrust_id = e.id
WHERE
s.deleted = 0 and e.deleted = 0 and r.deleted = 0
AND s.status = 70 AND s.judge_status = 2
AND s.judge_time between #{timeS} and #{timeE}
) a , (SELECT
count(r.id) "total"
FROM
entrust_sample s
join entrust e on e.id = s.entrust_id
join entrust_report r on r.entrust_id = e.id
WHERE
s.deleted = 0 and e.deleted = 0 and r.deleted = 0
AND s.status = 70 AND s.judge_status = 2
AND s.judge_time between #{lastYearTimeS} and #{lastYearTimeE}
) b,
(SELECT
count(r.id) "total"
FROM
entrust_sample s
join entrust e on e.id = s.entrust_id
join entrust_report r on r.entrust_id = e.id
WHERE
s.deleted = 0 and e.deleted = 0 and r.deleted = 0
AND s.status = 70 AND s.judge_status = 2
AND s.judge_time between #{prevTimeS} and #{prevTimeE}
) c
</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