Commit c465c0f9 by lijingjing

优化霍煤响应速度;

parent ca681a49
......@@ -17,4 +17,6 @@ public interface IGradingItemService extends IBaseService<GradingItem> {
Page<GradingItem> page(Page<GradingItem> page, GradingItem gradingItem);
boolean removeByIds(List<Long> ids);
List<GradingItem> listByProductIds(List<Long> productIds);
}
......@@ -17,4 +17,6 @@ public interface IGradingProductService extends IBaseService<GradingProduct> {
Page<GradingProduct> page(Page<GradingProduct> page, GradingProduct gradingProduct);
boolean removeByIds(List<Long> ids);
List<GradingProduct> listByStandardIds(List<Long> standardIds);
}
......@@ -25,4 +25,6 @@ public interface IGradingStandardService extends IBaseService<GradingStandard> {
boolean abolish(Long[] ids, String reason, Account account);
boolean editGradingStandard(GradingStandardDTO dto, Account account);
List<GradingStandard> listByIds(List<Long> ids);
}
......@@ -16,6 +16,7 @@ import com.patzn.cloud.commons.exception.PatznException;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.commons.toolkit.DateUtils;
import com.patzn.cloud.commons.toolkit.FileUtils;
import com.patzn.cloud.commons.toolkit.MapMergeUtils;
import com.patzn.cloud.feign.base.client.SysFileTemplateClient;
import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.service.hmhj.dto.*;
......@@ -215,21 +216,16 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
if (CollectionUtils.isEmpty(indexList)) {
return page.setRecords(voList);
}
Map<Long, List<EntrustSampleItemIndex>> sampleIndexMap = new HashMap<>();
for (EntrustSampleItemIndexVO entrustSampleItemIndex : indexList) {
if (sampleIndexMap.containsKey(entrustSampleItemIndex.getSampleId())) {
List<EntrustSampleItemIndex> itemIndexList = sampleIndexMap.get(entrustSampleItemIndex.getSampleId());
itemIndexList.add(entrustSampleItemIndex);
sampleIndexMap.put(entrustSampleItemIndex.getSampleId(), itemIndexList);
} else {
List<EntrustSampleItemIndex> itemIndexList = Lists.newArrayList();
itemIndexList.add(entrustSampleItemIndex);
sampleIndexMap.put(entrustSampleItemIndex.getSampleId(), itemIndexList);
}
}
for (EntrustSampleVO vo : voList) {
indexList.forEach(idx -> {
MapMergeUtils.getorCreateMapArrayList(idx.getSampleId(), sampleIndexMap, idx);
});
voList.forEach(vo -> {
vo.setIndexList(sampleIndexMap.get(vo.getId()));
}
});
// 数据排序,有结果的排在前面,无结果排后面
Collections.sort(voList, Comparator.comparingInt(t -> CollectionUtils.isNotEmpty(t.getIndexList()) ? 1 : 0));
......
package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.hmhj.entity.GradingItem;
import com.patzn.cloud.service.lims.hmhj.mapper.GradingItemMapper;
import com.patzn.cloud.service.lims.hmhj.service.IGradingItemService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* 服务实现类
* 服务实现类
*
* @author wwd
* @since 2021-05-14
......@@ -31,4 +34,12 @@ public class GradingItemServiceImpl extends BaseServiceImpl<GradingItemMapper, G
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
@Override
public List<GradingItem> listByProductIds(List<Long> productIds) {
if (CollectionUtils.isEmpty(productIds)) {
return new ArrayList<>();
}
return list(Condition.create().in("grading_product_id", productIds).isNotNull("limit_value"));
}
}
package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.hmhj.entity.GradingProduct;
import com.patzn.cloud.service.lims.hmhj.mapper.GradingProductMapper;
import com.patzn.cloud.service.lims.hmhj.service.IGradingProductService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* 服务实现类
* 服务实现类
*
* @author wwd
* @since 2021-05-14
......@@ -31,4 +34,13 @@ public class GradingProductServiceImpl extends BaseServiceImpl<GradingProductMap
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
@Override
public List<GradingProduct> listByStandardIds(List<Long> standardIds) {
if (CollectionUtils.isEmpty(standardIds)) {
return new ArrayList<>();
}
// 依旧优先级来处理判定顺序
return list(Condition.create().in("grading_standard_id", standardIds).orderBy("judge_priority", true));
}
}
......@@ -31,7 +31,7 @@ import java.util.Date;
import java.util.List;
/**
* 服务实现类
* 服务实现类
*
* @author wwd
* @since 2021-05-14
......@@ -52,12 +52,12 @@ public class GradingStandardServiceImpl extends BaseServiceImpl<GradingStandardM
@Override
public Page<GradingStandard> page(Page<GradingStandard> page, GradingStandard gradingStandard) {
Wrapper wrapper = new EntityWrapper<>(gradingStandard);
if (StringUtils.isNotBlank(gradingStandard.getCode())){
wrapper.like("code",gradingStandard.getCode());
if (StringUtils.isNotBlank(gradingStandard.getCode())) {
wrapper.like("code", gradingStandard.getCode());
gradingStandard.setCode(null);
}
if (StringUtils.isNotBlank(gradingStandard.getName())){
wrapper.like("name",gradingStandard.getName());
if (StringUtils.isNotBlank(gradingStandard.getName())) {
wrapper.like("name", gradingStandard.getName());
gradingStandard.setName(null);
}
return this.page(page, wrapper);
......@@ -71,8 +71,8 @@ public class GradingStandardServiceImpl extends BaseServiceImpl<GradingStandardM
@Transactional(rollbackFor = Exception.class)
@Override
public boolean addGradingStandard(GradingStandardDTO dto, Account account) {
RestAssert.fail(StringUtils.isBlank(dto.getCode()),"产品标准不能为空!");
RestAssert.fail(StringUtils.isBlank(dto.getName()),"产品标准名称不能为空!");
RestAssert.fail(StringUtils.isBlank(dto.getCode()), "产品标准不能为空!");
RestAssert.fail(StringUtils.isBlank(dto.getName()), "产品标准名称不能为空!");
GradingStandard gradingStandard = dto.convert(GradingStandard.class);
gradingStandard.setId(IdWorker.getId());
......@@ -81,14 +81,14 @@ public class GradingStandardServiceImpl extends BaseServiceImpl<GradingStandardM
List<GradingItem> saveItemList = new ArrayList<>();
List<GradingProduct> saveGradingProductList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(gradingProductList)){
if (CollectionUtils.isNotEmpty(gradingProductList)) {
for (GradingProductDTO productDTO : gradingProductList) {
List<GradingItem> itemList = productDTO.getGradingItemList();
GradingProduct product = productDTO.convert(GradingProduct.class);
product.setGradingStandardId(gradingStandard.getId());
product.setId(IdWorker.getId());
saveGradingProductList.add(product);
if (CollectionUtils.isNotEmpty(itemList)){
if (CollectionUtils.isNotEmpty(itemList)) {
for (GradingItem item : itemList) {
item.setGradingProductId(product.getId());
saveItemList.add(item);
......@@ -96,7 +96,7 @@ public class GradingStandardServiceImpl extends BaseServiceImpl<GradingStandardM
}
}
}
if (save(gradingStandard)){
if (save(gradingStandard)) {
gradingProductService.saveBatch(saveGradingProductList);
gradingItemService.saveBatch(saveItemList);
}
......@@ -117,12 +117,12 @@ public class GradingStandardServiceImpl extends BaseServiceImpl<GradingStandardM
@Transactional(rollbackFor = Exception.class)
@Override
public boolean abolish(Long[] ids, String reason, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids),"请选择需要作废的判级标准");
RestAssert.fail(StringUtils.isBlank(reason),"请填写,作废原因!");
List<GradingStandard> standards = super.list(Condition.create().in("id",ids).eq("effective",1));
if (CollectionUtils.isNotEmpty(standards)){
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择需要作废的判级标准");
RestAssert.fail(StringUtils.isBlank(reason), "请填写,作废原因!");
List<GradingStandard> standards = super.list(Condition.create().in("id", ids).eq("effective", 1));
if (CollectionUtils.isNotEmpty(standards)) {
for (GradingStandard standard : standards) {
RestAssert.fail("判级标准:"+standard.getCode()+"已经作废,请勿重复作废!");
RestAssert.fail("判级标准:" + standard.getCode() + "已经作废,请勿重复作废!");
}
}
GradingStandard gradingStandard = new GradingStandard();
......@@ -145,22 +145,22 @@ public class GradingStandardServiceImpl extends BaseServiceImpl<GradingStandardM
saveRecord.add(record);
}
gradingRecordService.saveBatch(saveRecord);
return super.update(gradingStandard,Condition.create().in("id",ids));
return super.update(gradingStandard, Condition.create().in("id", ids));
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean editGradingStandard(GradingStandardDTO dto, Account account) {
if (null == dto.getId()){
if (null == dto.getId()) {
return false;
}
List<GradingProductDTO> sampleList = dto.getGradingProductList();
if (CollectionUtils.isEmpty(sampleList)){
if (CollectionUtils.isEmpty(sampleList)) {
// PtAssert.fail("样品不能为空");
}
GradingStandard standard =dto.convert(GradingStandard.class);
if (updateById(standard)){
GradingStandard standard = dto.convert(GradingStandard.class);
if (updateById(standard)) {
List<Long> sampleIdsList = new ArrayList<>();
List<GradingProduct> updateSampleList = new ArrayList<>();
......@@ -170,43 +170,43 @@ public class GradingStandardServiceImpl extends BaseServiceImpl<GradingStandardM
List<GradingItem> saveItemList = new ArrayList<>();
List<GradingItem> updateItemList = new ArrayList<>();
for (GradingProductDTO productDTO:sampleList) {
for (GradingProductDTO productDTO : sampleList) {
GradingProduct sample = productDTO.convert(GradingProduct.class);
if (null != sample.getId()){
if (null != sample.getId()) {
updateSampleList.add(sample);
sampleIdsList.add(sample.getId());
}else{
} else {
sample.setGradingStandardId(standard.getId());
sample.setId(IdWorker.getId());
saveSampleList.add(sample);
}
List<GradingItem> viewItemList= productDTO.getGradingItemList();
if (CollectionUtils.isNotEmpty(viewItemList)){
for (GradingItem item:viewItemList) {
if (null == item.getId()){
List<GradingItem> viewItemList = productDTO.getGradingItemList();
if (CollectionUtils.isNotEmpty(viewItemList)) {
for (GradingItem item : viewItemList) {
if (null == item.getId()) {
item.setId(IdWorker.getId());
item.setGradingProductId(sample.getId());
saveItemList.add(item);
}else{
} else {
updateItemList.add(item);
}
}
}
}
if (CollectionUtils.isNotEmpty(updateSampleList)){
if (CollectionUtils.isNotEmpty(updateSampleList)) {
gradingProductService.updateBatchById(updateSampleList);
}
if (CollectionUtils.isNotEmpty(saveSampleList)){
if (CollectionUtils.isNotEmpty(saveSampleList)) {
gradingProductService.saveBatch(saveSampleList);
}
if (CollectionUtils.isNotEmpty(saveItemList)){
if (CollectionUtils.isNotEmpty(saveItemList)) {
gradingItemService.saveBatch(saveItemList);
}
if (CollectionUtils.isNotEmpty(updateItemList)){
if (CollectionUtils.isNotEmpty(updateItemList)) {
gradingItemService.updateBatchById(updateItemList);
}
......@@ -222,4 +222,12 @@ public class GradingStandardServiceImpl extends BaseServiceImpl<GradingStandardM
gradingRecordService.save(record);
return true;
}
@Override
public List<GradingStandard> listByIds(List<Long> ids) {
if (CollectionUtils.isEmpty(ids)) {
return new ArrayList<>();
}
return super.list(Condition.create().in("id", ids));
}
}
......@@ -10,7 +10,7 @@ server:
spring:
# 环境 dev|test|pro
profiles:
active: local
active: dev
application:
name: hmhj
# 模板引擎配置
......
......@@ -682,6 +682,7 @@
<select id="listIndexReplaceItemBySampleIds" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO">
select
i.name || '##'|| ii.name "name",
i.entrust_sample_id,
ii.*,
i.compose_judge,
s.code "sample_code",
......
......@@ -37,38 +37,14 @@
</select>
<select id="selectVOList" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleVO">
with sample_item as (
select
i.company_id,
i.entrust_sample_id,
max(i.group_id) "group_id",
string_agg(distinct i.name,'、') "item_names"
<!-- ,case when count(1) != count(distinct i.name) then true else false end "item_report" -->
from entrust_sample_item i where i.deleted = 0
<if test="null != vo.entrustId">
AND i.entrust_id = #{vo.entrustId}
</if>
<if test="null != vo.itemStatus">
and i.status = #{vo.itemStatus}
</if>
<if test="null != vo.itemStatusList">
and i.status IN
<foreach collection="vo.itemStatusList" index="index" item="itemStatus" open="(" separator="," close=")">
#{itemStatus}
</foreach>
</if>
<if test="null != vo.testerId ">
and i.tester_id = #{vo.testerId}
</if>
group by i.company_id,i.entrust_sample_id
)
SELECT
s.*,
i.group_id,
i.item_names
max(i.group_id) "group_id",
string_agg ( DISTINCT i.NAME, '、' ) "item_names"
FROM entrust_sample s
JOIN sample_item i on i.entrust_sample_id = s.id
WHERE deleted = 0
JOIN entrust_sample_item i on i.entrust_sample_id = s.id and i.deleted = 0
WHERE s.deleted = 0
<if test="null != vo.entrustId">
AND s.entrust_id = #{vo.entrustId}
</if>
......@@ -97,29 +73,6 @@
AND s.status != #{vo.notStatus}
</if>
<!--
<if test="null != vo.itemStatus or null != vo.itemStatusList or null != vo.testerId">
AND exists (
select 1 from entrust_sample_item i where i.deleted = 0 and i.entrust_sample_id = s.id
<if test="null != vo.itemStatus">
and i.status = #{vo.itemStatus}
</if>
<if test="null != vo.itemStatusList">
and i.status IN
<foreach collection="vo.itemStatusList" index="index" item="itemStatus" open="(" separator="," close=")">
#{itemStatus}
</foreach>
</if>
<if test="null != vo.testerId ">
and i.tester_id = #{vo.testerId}
</if>
)
</if>
-->
<if test="null != vo.statusList">
and s.status IN
<foreach collection="vo.statusList" index="index" item="status" open="(" separator="," close=")">
......@@ -134,7 +87,22 @@
</foreach>
</if>
order by s.order_by asc, s.code ,s.ctime desc
<if test="null != vo.itemStatus">
and i.status = #{vo.itemStatus}
</if>
<if test="null != vo.itemStatusList">
and i.status IN
<foreach collection="vo.itemStatusList" index="index" item="itemStatus" open="(" separator="," close=")">
#{itemStatus}
</foreach>
</if>
<if test="null != vo.testerId ">
and i.tester_id = #{vo.testerId}
</if>
GROUP BY s.ID
ORDER BY s.order_by asc, s.code ,s.ctime desc
</select>
<select id="selectMinStatusByEntrustIds" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleVO">
......@@ -211,6 +179,22 @@
<if test="null != vo.slotNoE">
AND to_number(s.slot_no,'99999') &lt;= #{vo.slotNoE}
</if>
<if test="null != vo.shift">
<choose>
<!--零点 =》 00:00-8:00 -->
<when test="0 == vo.shift">
and "time"('00:00:00') &lt;= "time"(e.entrust_time) and "time"('08:00:00') > "time"(e.entrust_time)
</when>
<!--白班 =》 8:00-16:00 -->
<when test="1 == vo.shift">
and "time"('08:00:00') &lt;= "time"(e.entrust_time) and "time"('16:00:00') > "time"(e.entrust_time)
</when>
<!--中班 =》 16:00 —24:00 -->
<when test="2 == vo.shift">
and "time"('16:00:00') &lt;= "time"(e.entrust_time) and "time"('23:59:59') >= "time"(e.entrust_time)
</when>
</choose>
</if>
ORDER BY e.code,s.code
</select>
......
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