Commit 003b1ceb by ghxdhr

Merge branch 'master' of git.patzn.com:wangweidong/patzn-cloud-service-hmhj

parents edb5901d 22ccc3d4
...@@ -9,7 +9,7 @@ import java.util.List; ...@@ -9,7 +9,7 @@ import java.util.List;
/** /**
* <p> * <p>
* Mapper 接口 * Mapper 接口
* </p> * </p>
* *
* @author wwd * @author wwd
...@@ -18,4 +18,6 @@ import java.util.List; ...@@ -18,4 +18,6 @@ import java.util.List;
public interface EntrustSampleItemIndexMapper extends BatchMapper<EntrustSampleItemIndex> { public interface EntrustSampleItemIndexMapper extends BatchMapper<EntrustSampleItemIndex> {
List<EntrustSampleItemIndexVO> listVOByExpIds(@Param("expIds") List<Long> expIdsList); List<EntrustSampleItemIndexVO> listVOByExpIds(@Param("expIds") List<Long> expIdsList);
List<EntrustSampleItemIndexVO> listBySampleIds(@Param("sampleIds") List<Long> sampleIdList);
} }
...@@ -26,4 +26,5 @@ public interface IEntrustSampleItemIndexService extends IBaseService<EntrustSamp ...@@ -26,4 +26,5 @@ public interface IEntrustSampleItemIndexService extends IBaseService<EntrustSamp
List<EntrustSampleItemIndex> listBySampleIds(List<Long> sampleIds); List<EntrustSampleItemIndex> listBySampleIds(List<Long> sampleIds);
List<EntrustSampleItemIndexVO> listVOBySampleIds(List<Long> sampleIds); List<EntrustSampleItemIndexVO> listVOBySampleIds(List<Long> sampleIds);
} }
...@@ -21,7 +21,7 @@ import java.util.List; ...@@ -21,7 +21,7 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
* 服务实现类 * 服务实现类
* *
* @author wwd * @author wwd
* @since 2021-06-15 * @since 2021-06-15
...@@ -53,41 +53,33 @@ public class EntrustSampleItemIndexServiceImpl extends BaseServiceImpl<EntrustSa ...@@ -53,41 +53,33 @@ public class EntrustSampleItemIndexServiceImpl extends BaseServiceImpl<EntrustSa
@Override @Override
public List<EntrustSampleItemIndex> listBySampleId(Long id) { public List<EntrustSampleItemIndex> listBySampleId(Long id) {
List<EntrustSampleItem> itemList = entrustSampleItemService.list(Condition.create().eq("entrust_sample_id",id)); List<EntrustSampleItem> itemList = entrustSampleItemService.list(Condition.create().eq("entrust_sample_id", id));
if (CollectionUtils.isEmpty(itemList)){ if (CollectionUtils.isEmpty(itemList)) {
return null; return null;
} }
List<Long> itemIds= itemList.stream().map(s->{ List<Long> itemIds = itemList.stream().map(s -> {
return s.getId(); return s.getId();
}).collect(Collectors.toList()); }).collect(Collectors.toList());
return list(Condition.create().in("entrust_sample_item_id",itemIds)); return list(Condition.create().in("entrust_sample_item_id", itemIds));
} }
@Override @Override
public List<EntrustSampleItemIndex> listBySampleIds(List<Long> sampleIds) { public List<EntrustSampleItemIndex> listBySampleIds(List<Long> sampleIds) {
List<EntrustSampleItem> itemList = entrustSampleItemService.list(Condition.create().in("entrust_sample_id",sampleIds)); List<EntrustSampleItem> itemList = entrustSampleItemService.list(Condition.create().in("entrust_sample_id", sampleIds));
if (CollectionUtils.isEmpty(itemList)){ if (CollectionUtils.isEmpty(itemList)) {
return null; return null;
} }
List<Long> itemIds= itemList.stream().map(s->{ List<Long> itemIds = itemList.stream().map(s -> {
return s.getId(); return s.getId();
}).collect(Collectors.toList()); }).collect(Collectors.toList());
return list(Condition.create().in("entrust_sample_item_id",itemIds)); return list(Condition.create().in("entrust_sample_item_id", itemIds));
} }
@Override @Override
public List<EntrustSampleItemIndexVO> listVOBySampleIds(List<Long> sampleIds) { public List<EntrustSampleItemIndexVO> listVOBySampleIds(List<Long> sampleIds) {
List<EntrustSampleItem> itemList = entrustSampleItemService.list(Condition.create().setSqlSelect("id").in("entrust_sample_id",sampleIds)); if (CollectionUtils.isEmpty(sampleIds)) {
if (CollectionUtils.isEmpty(itemList)){
return null; return null;
} }
List<Long> itemIds= new ArrayList<>(itemList.size()); return baseMapper.listBySampleIds(sampleIds);
for (EntrustSampleItem itemVO : itemList) {
itemIds.add(itemVO.getId());
}
return baseMapper.listVOByExpIds(itemIds);
} }
} }
...@@ -19,10 +19,7 @@ import com.patzn.cloud.service.hmhj.enums.EntrustFlowEnum; ...@@ -19,10 +19,7 @@ import com.patzn.cloud.service.hmhj.enums.EntrustFlowEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustStatusEnum; import com.patzn.cloud.service.hmhj.enums.EntrustStatusEnum;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleCalcResultVO; import com.patzn.cloud.service.hmhj.vo.*;
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.entity.LmsUserRelGroup;
import com.patzn.cloud.service.lims.base.vo.GroupUserVO; import com.patzn.cloud.service.lims.base.vo.GroupUserVO;
import com.patzn.cloud.service.lims.base.vo.LmsUserRelGroupVO; import com.patzn.cloud.service.lims.base.vo.LmsUserRelGroupVO;
...@@ -456,8 +453,8 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -456,8 +453,8 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
} }
@Override @Override
public List<EntrustSampleItemVO> listBySampleIdsAndIds(Long[] sampleIds,Long[] ids) { public List<EntrustSampleItemVO> listBySampleIdsAndIds(Long[] sampleIds, Long[] ids) {
return baseMapper.selectVOListBySampleIdsAndIds(sampleIds,ids); return baseMapper.selectVOListBySampleIdsAndIds(sampleIds, ids);
} }
...@@ -720,28 +717,21 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -720,28 +717,21 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
List<EntrustSample> sampleList = entrustSampleService.getBatchIds(Arrays.asList(ids)); List<EntrustSample> sampleList = entrustSampleService.getBatchIds(Arrays.asList(ids));
for (EntrustSample sample : sampleList) { for (EntrustSample sample : sampleList) {
// 获取样品检测项目数据
List<EntrustSampleItem> sampleItemList = list(Condition.create().eq("compose_judge", 1)
.eq("entrust_sample_id", sample.getId()));
RestAssert.fail(CollectionUtils.isEmpty(sampleItemList), "样品检测项目不能为空");
List<Long> itemIdList = sampleItemList.stream().map(EntrustSampleItem::getId).collect(Collectors.toList());
// 获取检测项目指标数据
List<EntrustSampleItemIndex> sampleItemIndexList = entrustSampleItemIndexService.list(Condition.create()
.in("entrust_sample_item_id", itemIdList).eq("deleted", 0).isNotNull("name"));
// 获取检测项目及指标数据
List<EntrustSampleItemIndexVO> sampleItemIndexList = entrustSampleItemIndexService.listVOBySampleIds(Lists.newArrayList(sample.getId()));
RestAssert.fail(CollectionUtils.isEmpty(sampleItemIndexList), "样品检测项目及内容不能为空");
// 计算合计值 // 计算合计值
BigDecimal totalValue = sampleItemIndexList.stream().map(t -> new BigDecimal(t.getTestValue())).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal totalValue = sampleItemIndexList.stream().map(t -> new BigDecimal(t.getTestValue())).reduce(BigDecimal.ZERO, BigDecimal::add);
double total = totalValue.doubleValue(); double total = totalValue.doubleValue();
// 获取检测项目值对象 // 获取检测项目值对象
Map<String, Double> itemDataMap = sampleItemIndexList.stream().collect(Collectors.toMap(t -> { Map<String, Double> itemDataMap = sampleItemIndexList.stream().collect(Collectors.toMap(EntrustSampleItemIndexVO::getItemName, t -> Double.parseDouble(t.getTestValue())));
return t.getName().substring(0, t.getName().lastIndexOf("-"));
}, t -> Double.parseDouble(t.getTestValue())));
// 获得产品标准信息 // 获得产品标准信息
GradingStandard standard = gradingStandardService.getById(sample.getProductStandardId()); GradingStandard standard = gradingStandardService.getById(sample.getProductStandardId());
RestAssert.fail(null == standard, "产品标准不能为空"); RestAssert.fail(null == standard, "产品标准不能为空");
// 是否组合判定
boolean isComposeJudgment = null != standard.getComposeJudge() && 1 == standard.getComposeJudge().intValue();
// 获得产品等级信息 // 获得产品等级信息
List<GradingProduct> gradingProductList = gradingProductService.list(Condition.create() List<GradingProduct> gradingProductList = gradingProductService.list(Condition.create()
.eq("grading_standard_id", standard.getId()).eq("deleted", 0) .eq("grading_standard_id", standard.getId()).eq("deleted", 0)
...@@ -764,7 +754,17 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -764,7 +754,17 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
return updateJudgeNoPass(sample, account); return updateJudgeNoPass(sample, account);
} }
// 符合合计,比较单个大小是否都符合 // 符合合计,若不为组合判定,则直接判定合格
if (!isComposeJudgment) {
// continue;
// 样品判定合格
sample.setOkJudge("合格").setJudger(account.getUserName()).setJudgerId(account.getUserId())
.setJudgeCheckTime(new Date()).setJudgeStatus(0).setJudgeProgress(0)
.setSampleGrading(product.getProductGrade());
return entrustSampleService.updateById(sample);
}
// 若为组合判定,比较单个大小是否都符合
List<GradingItem> gradingItemList = gradingItemService.list(Condition.create() List<GradingItem> gradingItemList = gradingItemService.list(Condition.create()
.eq("grading_product_id", product.getId()).eq("compose_judge", 1) .eq("grading_product_id", product.getId()).eq("compose_judge", 1)
.eq("deleted", 0)); .eq("deleted", 0));
...@@ -773,10 +773,13 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -773,10 +773,13 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
gradingItemList.stream().forEach(t -> { gradingItemList.stream().forEach(t -> {
RestAssert.fail(StringUtils.isBlank(t.getDecisionSymbol()), "产品等级下产品检测项目比较符为空"); RestAssert.fail(StringUtils.isBlank(t.getDecisionSymbol()), "产品等级下产品检测项目比较符为空");
RestAssert.fail(StringUtils.isBlank(t.getLimitValue()), "产品等级下产品检测项目限制值为空"); RestAssert.fail(StringUtils.isBlank(t.getLimitValue()), "产品等级下产品检测项目限制值为空");
RestAssert.fail(null == itemDataMap.get(t.getName()), "样品下设定组合判定的检测项目【" + t.getName() + "】不存在");
}); });
List<GradingItem> gradingItems = gradingItemList.stream().filter(t -> itemDataMap.containsKey(t.getName())).collect(Collectors.toList());
RestAssert.fail(CollectionUtils.isEmpty(gradingItems), "样品下设定组合判定的检测项目不存在");
// 获取失败数量 // 获取失败数量
long failCount = gradingItemList.stream().filter(t -> long failCount = gradingItems.stream().filter(t ->
!CompareUtils.Comparator.get(t.getDecisionSymbol()).calc(itemDataMap.get(t.getName()), Double.parseDouble(t.getLimitValue())) !CompareUtils.Comparator.get(t.getDecisionSymbol()).calc(itemDataMap.get(t.getName()), Double.parseDouble(t.getLimitValue()))
).count(); ).count();
...@@ -799,7 +802,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -799,7 +802,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
return entrustSampleService.updateById(sample); return entrustSampleService.updateById(sample);
} }
} }
return false; return true;
} }
@Override @Override
......
...@@ -16,4 +16,22 @@ ...@@ -16,4 +16,22 @@
#{id} #{id}
</foreach> </foreach>
</select> </select>
<select id="listBySampleIds" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemIndexVO">
select
ii.*,
i.name "item_name",
i.id "item_id",
s.id "sample_id",
s.code "sample_code",
s.entrust_id
from entrust_sample_item_index ii
join entrust_sample_item i on ii.entrust_sample_item_id = i.id
JOIN entrust_sample s ON i.entrust_sample_id = s.id
WHERE ii.deleted =0 AND i.deleted = 0 AND s.deleted = 0
AND s.id IN
<foreach collection="sampleIds" index="index" item="sampleId" open="(" separator="," close=")">
#{sampleId}
</foreach>
</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