Commit 37668653 by lijingjing

添加根据委托单号查询样品

parent a8009615
......@@ -40,4 +40,6 @@ public interface EntrustSampleItemMapper extends BatchMapper<EntrustSampleItem>
List<EntrustSampleItemVO> selectByOriginalRecordId(@Param("originalRecordId") Long originalRecordId);
List<EntrustSampleItemVO> selectMinStatusBySampleIds(@Param("sampleIds")List<Long> sampleIds);
List<EntrustSampleItemVO> selectByEntrustId(@Param("entrustId") Long entrustId);
}
......@@ -11,6 +11,7 @@ import com.patzn.cloud.oss.starter.OssClient;
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.lims.common.CompareUtils;
......@@ -49,6 +50,9 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
private IEntrustSampleService entrustSampleService;
@Autowired
private IEntrustRecordService entrustRecordService;
@Autowired
private IEntrustSampleItemIndexService entrustSampleItemIndexService;
......@@ -175,24 +179,45 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
@Override
public boolean submitTest(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交的检测项目");
List<EntrustSampleItem> list = super.list(Condition.create().in("id", ids).eq("status", EntrustSampleItemStatusEnum.TEST));
RestAssert.fail(list.size() != ids.length, "请选择待检测的检测项目");
// 不再对检测值进行判断
// for (EntrustSampleItem sampleItem:list) {
// RestAssert.fail(StringUtils.isBlank(sampleItem.getTestValue()),"检测项目名称:"+sampleItem.getName()+"未填写检测值,请确认!");
// }
// List<EntrustSampleItem> list = super.list(Condition.create().in("id", ids).eq("status", EntrustSampleItemStatusEnum.TEST));
// RestAssert.fail(list.size() != ids.length, "请选择待检测的检测项目");
List<EntrustSampleItem> list = super.list(Condition.create().in("id", ids));
// 获取样品信息
EntrustSample entrustSample = entrustSampleService.getById(list.get(0).getEntrustSampleId());
RestAssert.fail(null == entrustSample, "样品信息不能为空");
// 获取委托编号
long entrustId = entrustSample.getEntrustId();
// 委托信息
Entrust entrust = entrustService.getById(entrustId);
// ==
List<EntrustSampleItemVO> itemList = baseMapper.selectByEntrustId(entrustId);
// 若存在检测项目没有完成的,不可提交
// RestAssert.fail(itemList.stream().filter(t -> (null == t.getEndIndex() || 0 == t.getEndIndex().intValue())).count() > 0, "存在没有完成检测的检测项目");
// 若存在检测项目没有完成的,不可提交
for (EntrustSampleItemVO item : itemList) {
RestAssert.fail(null == item.getEndIndex() || 0 == item.getEndIndex().intValue(), "检测项目名称:" + item.getName() + "未填写检测值,请确认!");
}
EntrustSampleItem item = new EntrustSampleItem();
item.setTestTime(new Date());
item.setStatus(EntrustSampleItemStatusEnum.CHECK);
item.setProgress(EntrustSampleItemStatusEnum.CHECK);
item.setStatus(EntrustSampleItemStatusEnum.END);
item.setProgress(EntrustSampleItemStatusEnum.END);
super.update(item, Condition.create().in("id", ids));
entrustSampleItemRecordService.record(ids, EntrustSampleItemStatusEnum.TEST.getDisplay(), EntrustSampleItemStatusEnum.CHECK.getDisplay(), 0, "数据录入提交", account);
entrustSampleItemRecordService.record(ids, EntrustSampleItemStatusEnum.TEST.getDisplay(), EntrustSampleItemStatusEnum.END.getDisplay(), 0, "数据录入提交", account);
// 提交为报告编制
EntrustSample sample = new EntrustSample().setStatus(EntrustSampleStatusEnum.REPORT_MAKE).setLid(account.getUserId()).setLtime(new Date());
entrustSampleService.update(sample, Condition.create().eq("entrust_id", entrustId));
// 样品操作日志
// 暂时不提供
/// 修改委托信息
entrust.setLid(account.getUserId()).setLtime(new Date()).setProgress(EntrustStatusEnum.MAKE).setStatus(EntrustStatusEnum.MAKE);
entrustService.updateById(entrust);
// 添加委托日志
entrustRecordService.record(new Long[]{entrustId}, EntrustStatusEnum.TEST.getDisplay(), EntrustStatusEnum.TEST.getDisplay(), 0, account, "提交至报告编制");
return true;
}
......@@ -212,7 +237,6 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
item.setCheckerId(account.getUserId());
item.setCheckTime(new Date());
super.update(item, Condition.create().in("id", ids));
entrustSampleItemRecordService.record(ids, EntrustSampleItemStatusEnum.CHECK.getDisplay(), EntrustSampleItemStatusEnum.AUDIT.getDisplay(), 0, "数据复核提交", account);
return true;
......@@ -339,35 +363,34 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
e.printStackTrace();
}
if (null!=template.getMoreItem()&&1==template.getMoreItem()){
if (null != template.getMoreItem() && 1 == template.getMoreItem()) {
Set<Long> sampleIdsList = new HashSet<>();
for (EntrustSampleItemVO itemVO : voList) {
sampleIdsList.add(itemVO.getEntrustSampleId());
}
List<EntrustSample> sampleList = entrustSampleService.list(Condition.create().in("id",sampleIdsList));
List<EntrustSample> sampleList = entrustSampleService.list(Condition.create().in("id", sampleIdsList));
List<EntrustSampleVO> sampleVOList = new ArrayList<>(sampleList.size());
for (EntrustSample sample : sampleList) {
EntrustSampleVO vo= sample.convert(EntrustSampleVO.class);
EntrustSampleVO vo = sample.convert(EntrustSampleVO.class);
vo.setIndexList(entrustSampleItemIndexService.listBySampleId(sample.getId()));
sampleVOList.add(vo);
}
if (null == template.getSampleBeginRow()|| null==template.getSampleMergerNum()||null==template.getTemplateSampleNum()){
if (null == template.getSampleBeginRow() || null == template.getSampleMergerNum() || null == template.getTemplateSampleNum()) {
return null;
}
if (voList.size()<template.getTemplateSampleNum()){
MoreItemOperation moreItemOperation = new MoreItemOperation(template,sampleVOList,entrust,configList,xssfWorkbook);
if (voList.size() < template.getTemplateSampleNum()) {
MoreItemOperation moreItemOperation = new MoreItemOperation(template, sampleVOList, entrust, configList, xssfWorkbook);
moreItemOperation.doMakeOriginal();
}else{
MoreItemMoreOperation moreItemOperation = new MoreItemMoreOperation(template,sampleVOList,entrust,configList,xssfWorkbook);
} else {
MoreItemMoreOperation moreItemOperation = new MoreItemMoreOperation(template, sampleVOList, entrust, configList, xssfWorkbook);
moreItemOperation.doMakeOriginal();
}
}else{
} else {
OriginalFactory factory = new OriginalFactory(template, voList, entrust, configList, xssfWorkbook);
Operation operation = factory.getOperation();
if (null != operation) {
......@@ -376,7 +399,6 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
}
FileOutputStream os = null;
File file = null;
String generated = "原始记录";
......@@ -559,13 +581,21 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
// 获取样品检测项目数据
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"));
// 计算合计值
BigDecimal totalValue = sampleItemList.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();
// 获取检测项目值对象
Map<String, Double> itemDataMap = sampleItemList.stream().collect(Collectors.toMap(EntrustSampleItem::getName, t -> Double.parseDouble(t.getTestValue())));
Map<String, Double> itemDataMap = sampleItemIndexList.stream().collect(Collectors.toMap(t -> {
return t.getName().substring(0, t.getName().lastIndexOf("-"));
}, t -> Double.parseDouble(t.getTestValue())));
// 获得产品标准信息
GradingStandard standard = gradingStandardService.getById(sample.getProductStandardId());
RestAssert.fail(null == standard, "产品标准不能为空");
......
......@@ -293,4 +293,21 @@
</select>
<!--根据委托ID查询检测项目数据-->
<select id="selectByEntrustId" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO">
SELECT i.id,i.name,i.entrust_sample_id,s.entrust_id,i.agreed_value,i.test_value,i.standard,s.code AS "sampleCode"
,s.name AS "sampleName", s.sample_shape ,s.sample_quantity, s.standard, s.sample_from,s.product_code,s.name_code,
(case when COALESCE(ii."END_INDEX",0) = 0 then 0 else 1 end) "endIndex"
FROM
entrust_sample_item i
JOIN entrust_sample s ON i.entrust_sample_id = s.ID
left join (
SELECT ii.entrust_sample_item_id, (CASE WHEN COUNT (1) = 0 THEN 0 ELSE 1 END) "END_INDEX"
FROM entrust_sample_item_index ii WHERE ii.deleted = 0 AND ii.test_value is not null
GROUP BY ii.entrust_sample_item_id
) ii on ii.entrust_sample_item_id = i.id
WHERE i.deleted = 0 AND s.deleted = 0
AND s.entrust_id = #{entrustId}
</select>
</mapper>
ALTER TABLE "public"."entrust_sample"
ALTER TABLE "public"."entrust_sample"
ADD COLUMN "slot_no" varchar(32) COLLATE "pg_catalog"."default";
COMMENT ON COLUMN "public"."entrust_sample"."slot_no" IS '槽号';
\ No newline at end of file
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