Commit 395a9209 by wangweidong

Merge remote-tracking branch 'origin/master'

parents 87f6cb12 7b8838a3
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);
}
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.toolkit.DateUtils;
import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.hmhj.entity.EntrustAnnex;
......@@ -22,10 +23,7 @@ import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.*;
/**
* 服务实现类
......@@ -117,6 +115,7 @@ public class EntrustAnnexServiceImpl extends BaseServiceImpl<EntrustAnnexMapper,
.eq("type",entrustIdAndType[1].equals("word") ? "docx" : "")
/* 这个remark写死,保证取到是生成的检测委托书,不是用户自己上传的 */
.eq("remark","打印检测委托书时上传生成的文件")
.ge("ctime", DateUtils.toDate(DateUtils.toYearMonthDay(new Date())))
.orderBy("ctime", false));
if (CollectionUtils.isNotEmpty(entrustAnnexes)) {
return entrustAnnexes.get(0).getObjectKey();
......
......@@ -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);
}
......
......@@ -1317,23 +1317,30 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
/*每个委托一个文件*/
for (Entrust entrust : entrustList) {
/* 样品 */
EntrustVO entrustVO = entrust.convert(EntrustVO.class);
/* 对应的样品 */
List<EntrustSample> samples = entrustSamples.stream().
filter(s -> entrust.getId().equals(s.getEntrustId())).
collect(Collectors.toList());
/* 该样品对应的项目 */
/* 对应样品的所有编号 */
List<String> codes = samples.stream().map(s -> s.getCode()).collect(Collectors.toList());
/* 对应该项目的所有的样品id */
List<Long> currIds = samples.stream().map(s -> s.getId()).collect(Collectors.toList());
/* 这些样品对应的项目 */
List<EntrustSampleItem> currItems = new ArrayList<>();
if (CollectionUtils.isNotEmpty(samples)) {
/* 样品对应的项目 */
/* 这些样品对应的项目 */
currItems = items.stream()
.filter(i -> samples.get(0).getId().equals(i.getEntrustSampleId()))
.filter(i -> currIds.contains(i.getEntrustSampleId()))
.collect(Collectors.toList());
dataMap.put("sample",samples.get(0));
} else {
dataMap.put("sample",new EntrustSample());
}
/* 委托*/
dataMap.put("entrust",entrust);
/* 委托 */
entrustVO.setSampleQuantityTotal(Long.parseLong(String.valueOf(samples.size())));
entrustVO.setCodes(ListToStringUtils.listToString(codes,"、",gangCode));
dataMap.put("entrust",entrustVO);
/* 项目名 */
Set<String> itemNames = currItems.stream().filter(i -> StringUtils.isNotEmpty(i.getName()))
.map(i -> i.getName()).collect(Collectors.toSet());
......
......@@ -74,6 +74,7 @@ public class MaterialItemServiceImpl extends BaseServiceImpl<MaterialItemMapper,
materialItem.setDecide(qualification.getDecide());
materialItem.setCode(qualification.getCode());
materialItem.setAccordName(qualification.getAccordName());
materialItem.setPrice(qualification.getPrice());
saveMaterialItemList.add(materialItem);
}
......
......@@ -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