Commit a21efce1 by jiangxuming

加日志并优化速度

parent ac589cb9
......@@ -3,6 +3,7 @@ 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.commons.toolkit.TimeWatch;
import com.patzn.cloud.service.hmhj.entity.Entrust;
import com.patzn.cloud.service.hmhj.entity.OriginalRecord;
import com.patzn.cloud.service.hmhj.entity.OriginalTemplate;
......@@ -25,7 +26,7 @@ public interface IOriginalRecordService extends IBaseService<OriginalRecord> {
boolean removeByIds(List<Long> ids);
OriginalRecord uploadExpGenerate(Long[] ids, OriginalTemplate template, Entrust entrust, Account account, String remark, File file);
OriginalRecord uploadExpGenerate(Long[] ids, OriginalTemplate template, Entrust entrust, Account account, String remark, File file, TimeWatch timeWatch);
OriginalRecord uploadExpGenerate(Map<Long,List<Long>> entrustItemIdMap, OriginalTemplate template, Account account, String remark, File file);
......
......@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.toolkit.MapUtils;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.commons.toolkit.TimeWatch;
import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.hmhj.entity.Entrust;
......@@ -31,6 +32,9 @@ import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
......@@ -48,6 +52,8 @@ public class OriginalRecordServiceImpl extends BaseServiceImpl<OriginalRecordMap
@Autowired
private OssClient ossClient;
private static final ThreadPoolExecutor pool = new ThreadPoolExecutor(8, 20, 10, TimeUnit.MINUTES, new LinkedBlockingQueue<>(5000));
@Override
public Page<OriginalRecord> page(Page<OriginalRecord> page, OriginalRecord originalRecord) {
......@@ -97,7 +103,7 @@ public class OriginalRecordServiceImpl extends BaseServiceImpl<OriginalRecordMap
@Transactional(rollbackFor = Exception.class)
@Override
public OriginalRecord uploadExpGenerate(Long[] ids, OriginalTemplate template, Entrust entrust, Account account, String remark, File file) {
public OriginalRecord uploadExpGenerate(Long[] ids, OriginalTemplate template, Entrust entrust, Account account, String remark, File file, TimeWatch timeWatch) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择试验项目");
RestAssert.fail(null == entrust.getId(), "试验委托单ID不能为空");
......@@ -113,7 +119,9 @@ public class OriginalRecordServiceImpl extends BaseServiceImpl<OriginalRecordMap
return null;
}
originalRecord.setObjectKey(obsFileResult.getObjectKey());
logger.info("7-1阶段耗时:{} ms", timeWatch.pointTime());
if (save(originalRecord)) {
logger.info("7-2阶段耗时:{} ms", timeWatch.pointTime());
List<ItemRelOriginalRecord> saveList = new ArrayList<>();
for (Long id : ids) {
ItemRelOriginalRecord relOriginalRecord = new ItemRelOriginalRecord();
......@@ -121,10 +129,17 @@ public class OriginalRecordServiceImpl extends BaseServiceImpl<OriginalRecordMap
relOriginalRecord.setRecordId(originalRecord.getId());
saveList.add(relOriginalRecord);
}
logger.info("7-3阶段耗时:{} ms", timeWatch.pointTime());
if (CollectionUtils.isNotEmpty(saveList)) {
pool.execute(() -> {
itemRelOriginalRecordService.saveBatch(saveList);
});
}
// if (CollectionUtils.isNotEmpty(saveList)) {
// itemRelOriginalRecordService.saveBatch(saveList);
// }
}
logger.info("7-4阶段耗时:{} ms", timeWatch.pointTime());
return originalRecord;
}
......
......@@ -445,6 +445,18 @@
END) then 1 else 0 end) "END_INDEX"
FROM entrust_sample_item_index ii
WHERE ii.deleted = 0
<if test="null != vo.ids">
and ii.entrust_sample_item_id in
<foreach collection="vo.ids" index="index" item="itemId" open="(" separator="," close=")">
#{itemId}
</foreach>
</if>
<if test="null != vo.nonIds">
and ii.entrust_sample_item_id not in
<foreach collection="vo.nonIds" index="index" item="itemId" open="(" separator="," close=")">
#{itemId}
</foreach>
</if>
GROUP BY ii.entrust_sample_item_id
) ii on ii.entrust_sample_item_id = i.id
where e.deleted = 0 and s.deleted = 0 and i.deleted = 0 and s.type = 0
......
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