Commit 9e11883a by lijingjing

添加工作量统计接口;

parent aac39016
package com.patzn.cloud.service.lims.hmhj.controller;
import com.baomidou.mybatisplus.plugins.Page;
import com.google.common.collect.Lists;
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.hmhj.dto.QueryDTO;
import com.patzn.cloud.service.hmhj.entity.EntrustSampleItem;
import com.patzn.cloud.service.hmhj.entity.ItemDeviate;
import com.patzn.cloud.service.hmhj.entity.OriginalRecord;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO;
import com.patzn.cloud.service.hmhj.vo.TesterWorkloadStatsVO;
import com.patzn.cloud.service.lims.base.entity.LmsUserRelGroup;
import com.patzn.cloud.service.lims.base.vo.LmsUserRelGroupVO;
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.IEntrustSampleItemService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
......@@ -585,7 +578,6 @@ public class EntrustSampleItemController extends ServiceController {
}
@ApiOperation(value = "分页列表", notes = "分页查询数据列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataType = "int"),
......@@ -598,4 +590,11 @@ public class EntrustSampleItemController extends ServiceController {
return success(entrustSampleItemService.pageGroupUser(getPage(), soilExperiment));
}
@ApiOperation("检测人员工作量统计查询")
@PostMapping("/tester_workload_stats_query")
public RestResult<List<TesterWorkloadStatsVO>> getTesterWorkloadStatusQuery(QueryDTO queryDTO) {
return success(entrustSampleItemService.getTesterWorkloadStatusQuery(queryDTO));
}
}
......@@ -2,9 +2,11 @@ package com.patzn.cloud.service.lims.hmhj.mapper;
import com.baomidou.mybatisplus.annotations.SqlParser;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.service.hmhj.dto.QueryDTO;
import com.patzn.cloud.service.hmhj.entity.EntrustSampleItem;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO;
import com.patzn.cloud.service.hmhj.vo.TesterWorkloadStatsVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
......@@ -44,4 +46,6 @@ public interface EntrustSampleItemMapper extends BatchMapper<EntrustSampleItem>
List<EntrustSampleItemVO> selectByEntrustId(@Param("entrustId") Long entrustId);
int selectUnallocatedCountByEntrustId(@Param("entrustId") Long entrustId);
List<TesterWorkloadStatsVO> selectTesterWorkloadStatus(@Param("vo") QueryDTO queryDTO);
}
......@@ -3,10 +3,12 @@ package com.patzn.cloud.service.lims.hmhj.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.hmhj.dto.QueryDTO;
import com.patzn.cloud.service.hmhj.entity.EntrustSampleItem;
import com.patzn.cloud.service.hmhj.entity.ItemDeviate;
import com.patzn.cloud.service.hmhj.entity.OriginalRecord;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO;
import com.patzn.cloud.service.hmhj.vo.TesterWorkloadStatsVO;
import com.patzn.cloud.service.lims.base.entity.LmsUserRelGroup;
import com.patzn.cloud.service.lims.base.vo.LmsUserRelGroupVO;
......@@ -74,4 +76,6 @@ public interface IEntrustSampleItemService extends IBaseService<EntrustSampleIte
Page<LmsUserRelGroupVO> pageGroupUser(Page<LmsUserRelGroupVO> page, LmsUserRelGroup soilExperiment);
List<TesterWorkloadStatsVO> getTesterWorkloadStatusQuery(QueryDTO queryDTO);
}
......@@ -11,12 +11,14 @@ import com.patzn.cloud.commons.toolkit.FileUtils;
import com.patzn.cloud.feign.lims.base.client.LmsUserRelGroupClient;
import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.hmhj.dto.QueryDTO;
import com.patzn.cloud.service.hmhj.entity.*;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustStatusEnum;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO;
import com.patzn.cloud.service.hmhj.vo.TesterWorkloadStatsVO;
import com.patzn.cloud.service.lims.base.entity.LmsUserRelGroup;
import com.patzn.cloud.service.lims.base.vo.LmsUserRelGroupVO;
import com.patzn.cloud.service.lims.common.CompareUtils;
......@@ -855,4 +857,9 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
page.setTotal(relGroupPage.getTotal());
return page;
}
@Override
public List<TesterWorkloadStatsVO> getTesterWorkloadStatusQuery(QueryDTO queryDTO){
return baseMapper.selectTesterWorkloadStatus(queryDTO);
}
}
......@@ -104,8 +104,10 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
entrustSampleService.updateById(entrustSample);
}else if ("备样".equalsIgnoreCase(vo.getMakeType())){
EntrustSampleBackup backup = new EntrustSampleBackup();
EntrustSample sample = entrustSampleService.getById(vo.getId());
backup.setEntrustId(vo.getEntrustId());
backup.setSampleId(vo.getId());
backup.setStoragePeriod(sample.getSurplusSampleLimit());
backup.setStatus(EntrustSampleBackupStatusEnum.BACKUP_ING);
backup.setProgress(EntrustSampleBackupStatusEnum.BACKUP_ING);
backup.setReceiveTime(new Date());
......
......@@ -200,7 +200,12 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
}
for (EntrustSampleVO vo : voList) {
vo.setIndexList(sampleIndexMap.get(vo.getId()));
// 获取检测结果,判定是否合格
}
// 数据排序,有结果的排在前面,无结果排后面
Collections.sort(voList,Comparator.comparingInt(t->CollectionUtils.isNotEmpty(t.getIndexList()) ? 1 : 0));
return page.setRecords(voList);
}
......
......@@ -15,11 +15,12 @@
s.NAME AS "sampleName",
s.code AS "sampleCode" ,
e.client ,
e.code AS "entrustCode"
e.code AS "entrustCode",
date_part('day', CAST(b.storage_period AS TIMESTAMP) - CAST( now() AS TIMESTAMP)) "remain_days"
FROM
entrust_sample_backup b
JOIN entrust_sample s ON b.sample_id = s.
ID JOIN entrust e ON s.entrust_id = e.ID
JOIN entrust_sample s ON b.sample_id = s.ID
JOIN entrust e ON s.entrust_id = e.ID
<where>
AND b.deleted = 0 AND s.deleted = 0 AND e.deleted = 0
<if test="null!=vo.sampleCode">
......@@ -45,7 +46,7 @@
AND e.code LIKE CONCAT('%',#{vo.entrustCode},'%')
</if>
</where>
order by b.ctime desc
order by date_part('day', CAST(b.storage_period AS TIMESTAMP) - CAST( now() AS TIMESTAMP)) asc,b.ctime desc
</select>
<select id="selectManageList" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleBackupVO">
......
......@@ -92,7 +92,7 @@
)
SELECT i.*,s.name AS "sampleName",e.test_side "testSide",s.code AS "sampleCode",l.record_id,r.object_key AS "recordObjectKey",
s.compliance_test
s.compliance_test,s.sample_from,sample_shape
FROM i
JOIN entrust_sample s ON i.entrust_sample_id = s.id
LEFT JOIN ( SELECT id,item_id,record_id FROM item_rel_original_record WHERE deleted = 0 ) l ON i.id = l.item_id
......@@ -338,4 +338,36 @@
and i.status = 0
AND s.entrust_id = #{entrustId}
</select>
<!-- 检测人员工作量统计查询 -->
<select id="selectTesterWorkloadStatus" resultType="com.patzn.cloud.service.hmhj.vo.TesterWorkloadStatsVO">
select
i.tester_id,
i.tester,
o.org_name,
sum(case when i.status = 50 then 1 else 0 end ) "finish_num",
sum(case when i.status = 20 and ii.fill_num > 0 then 1 else 0 end ) "testing_num",
sum(case when i.status = 20 and ii.fill_num = 0 then 1 else 0 end ) "untest_num",
sum(case when i.status = 50 and e.priority = '加急' then 1 else 0 end ) "urgent_finish_num",
sum(case when i.status != 50 and e.priority = '加急' then 1 else 0 end ) "urgent_unfinish_num"
from entrust_sample_item i
join entrust_sample s on s.id = i.entrust_sample_id
join entrust e on e.id = s.entrust_id
join v_sys_user_org o on o.user_id = i.tester_Id
left join (
select ii.entrust_sample_item_id,count(1) "fill_num" from entrust_sample_item_index ii
where ii.deleted = 0 group by ii.entrust_sample_item_id
) ii on ii.entrust_sample_item_id = i.id
where s.deleted = 0 and i.deleted = 0 and e.deleted = 0
and i.entrust_sample_id = s.id
and o.user_id = i.tester_id
and s.entrust_id = e.id
<if test="vo.timeS != null">
and e.entrust_time &gt;= #{vo.timeS}
</if>
<if test="vo.timeE != null">
and e.entrust_time &lt;= #{vo.timeE}
</if>
GROUP BY i.tester_id,i.tester,o.org_name
</select>
</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