Commit 37668653 by lijingjing

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

parent a8009615
...@@ -40,4 +40,6 @@ public interface EntrustSampleItemMapper extends BatchMapper<EntrustSampleItem> ...@@ -40,4 +40,6 @@ public interface EntrustSampleItemMapper extends BatchMapper<EntrustSampleItem>
List<EntrustSampleItemVO> selectByOriginalRecordId(@Param("originalRecordId") Long originalRecordId); List<EntrustSampleItemVO> selectByOriginalRecordId(@Param("originalRecordId") Long originalRecordId);
List<EntrustSampleItemVO> selectMinStatusBySampleIds(@Param("sampleIds")List<Long> sampleIds); 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; ...@@ -11,6 +11,7 @@ import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.service.hmhj.entity.*; import com.patzn.cloud.service.hmhj.entity.*;
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.vo.EntrustSampleItemVO; import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO; import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO;
import com.patzn.cloud.service.lims.common.CompareUtils; import com.patzn.cloud.service.lims.common.CompareUtils;
...@@ -49,6 +50,9 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -49,6 +50,9 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
private IEntrustSampleService entrustSampleService; private IEntrustSampleService entrustSampleService;
@Autowired @Autowired
private IEntrustRecordService entrustRecordService;
@Autowired
private IEntrustSampleItemIndexService entrustSampleItemIndexService; private IEntrustSampleItemIndexService entrustSampleItemIndexService;
...@@ -175,24 +179,45 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -175,24 +179,45 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
@Override @Override
public boolean submitTest(Long[] ids, Account account) { public boolean submitTest(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交的检测项目"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要提交的检测项目");
List<EntrustSampleItem> list = super.list(Condition.create().in("id", ids).eq("status", EntrustSampleItemStatusEnum.TEST)); // List<EntrustSampleItem> list = super.list(Condition.create().in("id", ids).eq("status", EntrustSampleItemStatusEnum.TEST));
RestAssert.fail(list.size() != ids.length, "请选择待检测的检测项目"); // RestAssert.fail(list.size() != ids.length, "请选择待检测的检测项目");
// 不再对检测值进行判断
// for (EntrustSampleItem sampleItem:list) { List<EntrustSampleItem> list = super.list(Condition.create().in("id", ids));
// RestAssert.fail(StringUtils.isBlank(sampleItem.getTestValue()),"检测项目名称:"+sampleItem.getName()+"未填写检测值,请确认!"); // 获取样品信息
// } 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(); EntrustSampleItem item = new EntrustSampleItem();
item.setTestTime(new Date()); item.setTestTime(new Date());
item.setStatus(EntrustSampleItemStatusEnum.END);
item.setStatus(EntrustSampleItemStatusEnum.CHECK); item.setProgress(EntrustSampleItemStatusEnum.END);
item.setProgress(EntrustSampleItemStatusEnum.CHECK);
super.update(item, Condition.create().in("id", ids)); 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; return true;
} }
...@@ -212,7 +237,6 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -212,7 +237,6 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
item.setCheckerId(account.getUserId()); item.setCheckerId(account.getUserId());
item.setCheckTime(new Date()); item.setCheckTime(new Date());
super.update(item, Condition.create().in("id", ids)); super.update(item, Condition.create().in("id", ids));
entrustSampleItemRecordService.record(ids, EntrustSampleItemStatusEnum.CHECK.getDisplay(), EntrustSampleItemStatusEnum.AUDIT.getDisplay(), 0, "数据复核提交", account); entrustSampleItemRecordService.record(ids, EntrustSampleItemStatusEnum.CHECK.getDisplay(), EntrustSampleItemStatusEnum.AUDIT.getDisplay(), 0, "数据复核提交", account);
return true; return true;
...@@ -339,35 +363,34 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -339,35 +363,34 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
e.printStackTrace(); e.printStackTrace();
} }
if (null!=template.getMoreItem()&&1==template.getMoreItem()){ if (null != template.getMoreItem() && 1 == template.getMoreItem()) {
Set<Long> sampleIdsList = new HashSet<>(); Set<Long> sampleIdsList = new HashSet<>();
for (EntrustSampleItemVO itemVO : voList) { for (EntrustSampleItemVO itemVO : voList) {
sampleIdsList.add(itemVO.getEntrustSampleId()); 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()); List<EntrustSampleVO> sampleVOList = new ArrayList<>(sampleList.size());
for (EntrustSample sample : sampleList) { for (EntrustSample sample : sampleList) {
EntrustSampleVO vo= sample.convert(EntrustSampleVO.class); EntrustSampleVO vo = sample.convert(EntrustSampleVO.class);
vo.setIndexList(entrustSampleItemIndexService.listBySampleId(sample.getId())); vo.setIndexList(entrustSampleItemIndexService.listBySampleId(sample.getId()));
sampleVOList.add(vo); 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; return null;
} }
if (voList.size()<template.getTemplateSampleNum()){ if (voList.size() < template.getTemplateSampleNum()) {
MoreItemOperation moreItemOperation = new MoreItemOperation(template,sampleVOList,entrust,configList,xssfWorkbook); MoreItemOperation moreItemOperation = new MoreItemOperation(template, sampleVOList, entrust, configList, xssfWorkbook);
moreItemOperation.doMakeOriginal(); moreItemOperation.doMakeOriginal();
}else{ } else {
MoreItemMoreOperation moreItemOperation = new MoreItemMoreOperation(template,sampleVOList,entrust,configList,xssfWorkbook); MoreItemMoreOperation moreItemOperation = new MoreItemMoreOperation(template, sampleVOList, entrust, configList, xssfWorkbook);
moreItemOperation.doMakeOriginal(); moreItemOperation.doMakeOriginal();
} }
} else {
}else{
OriginalFactory factory = new OriginalFactory(template, voList, entrust, configList, xssfWorkbook); OriginalFactory factory = new OriginalFactory(template, voList, entrust, configList, xssfWorkbook);
Operation operation = factory.getOperation(); Operation operation = factory.getOperation();
if (null != operation) { if (null != operation) {
...@@ -376,7 +399,6 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -376,7 +399,6 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
} }
FileOutputStream os = null; FileOutputStream os = null;
File file = null; File file = null;
String generated = "原始记录"; String generated = "原始记录";
...@@ -559,13 +581,21 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -559,13 +581,21 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
// 获取样品检测项目数据 // 获取样品检测项目数据
List<EntrustSampleItem> sampleItemList = list(Condition.create().eq("compose_judge", 1) List<EntrustSampleItem> sampleItemList = list(Condition.create().eq("compose_judge", 1)
.eq("entrust_sample_id", sample.getId())); .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(); 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()); GradingStandard standard = gradingStandardService.getById(sample.getProductStandardId());
RestAssert.fail(null == standard, "产品标准不能为空"); RestAssert.fail(null == standard, "产品标准不能为空");
......
...@@ -293,4 +293,21 @@ ...@@ -293,4 +293,21 @@
</select> </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> </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