Commit 36663cdd by lijingjing

批量扫码需求添加;

parent b2682797
...@@ -28,6 +28,7 @@ import io.swagger.annotations.ApiOperation; ...@@ -28,6 +28,7 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -307,6 +308,7 @@ public class EntrustSampleController extends ServiceController { ...@@ -307,6 +308,7 @@ public class EntrustSampleController extends ServiceController {
@PostMapping("/page_sample_receive") @PostMapping("/page_sample_receive")
public RestResult<Page<EntrustSampleVO>> getPageSampleReceive(EntrustSampleVO entrustSample) { public RestResult<Page<EntrustSampleVO>> getPageSampleReceive(EntrustSampleVO entrustSample) {
entrustSample.setPrepareStatus(EntrustSamplePrepareStatusEnum.RECEIVE); entrustSample.setPrepareStatus(EntrustSamplePrepareStatusEnum.RECEIVE);
entrustSample.setStatusList(Collections.singletonList(EntrustSampleStatusEnum.RECEIVE));
return success(entrustSampleService.pageSampleReceive(getPage(), entrustSample)); return success(entrustSampleService.pageSampleReceive(getPage(), entrustSample));
} }
......
...@@ -25,6 +25,8 @@ public interface IEntrustSamplePrepareService extends IBaseService<EntrustSample ...@@ -25,6 +25,8 @@ public interface IEntrustSamplePrepareService extends IBaseService<EntrustSample
boolean submitSampleReceive(Long[] ids,String receiveType, Account account); boolean submitSampleReceive(Long[] ids,String receiveType, Account account);
boolean submitSampleReceiveWithoutPrepare(List<Long> sampleIds, String receiveType, Account account);
boolean addOrUpdateToSetStatus(Long[] sampleIds, EntrustSamplePrepareStatusEnum statusEnum); boolean addOrUpdateToSetStatus(Long[] sampleIds, EntrustSamplePrepareStatusEnum statusEnum);
boolean removeBySampleIds(Long[] sampleIds); boolean removeBySampleIds(Long[] sampleIds);
......
...@@ -226,10 +226,11 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -226,10 +226,11 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
EntrustSample entrustSample = entrustSampleService.getById(prepareList.get(0).getEntrustSampleId()); EntrustSample entrustSample = entrustSampleService.getById(prepareList.get(0).getEntrustSampleId());
Entrust entrust = entrustService.getById(entrustSample.getEntrustId()); Entrust entrust = entrustService.getById(entrustSample.getEntrustId());
if (null == entrust.getTestAddress()) { List<EntrustSample> notSampleList = entrustSampleService.list(Condition.create().eq("entrust_id", entrust.getId()).notIn("id", sampleIdsList));
// entrust.setReceiveTime(new Date()); List<Long> notOkSampleIds = new ArrayList<>();
if (CollectionUtils.isNotEmpty(notSampleList)) {
notOkSampleIds = notSampleList.stream().map(EntrustSample::getId).collect(Collectors.toList());
} }
EntrustSamplePrepare prepare = new EntrustSamplePrepare(); EntrustSamplePrepare prepare = new EntrustSamplePrepare();
prepare.setStatus(EntrustSamplePrepareStatusEnum.TEST); prepare.setStatus(EntrustSamplePrepareStatusEnum.TEST);
prepare.setStatus(EntrustSamplePrepareStatusEnum.TEST); prepare.setStatus(EntrustSamplePrepareStatusEnum.TEST);
...@@ -242,10 +243,14 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -242,10 +243,14 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
statusNotOkList.add(EntrustSamplePrepareStatusEnum.RECEIVE_OK); statusNotOkList.add(EntrustSamplePrepareStatusEnum.RECEIVE_OK);
List<EntrustSamplePrepare> preparesNotOkList = super.list(Condition.create().in("id", sampleIdsList).in("status", statusNotOkList)); List<EntrustSamplePrepare> preparesNotOkList = super.list(Condition.create().in("id", sampleIdsList).in("status", statusNotOkList));
List<Long> notOkSampleIds = preparesNotOkList.stream().map(i -> { List<Long> notSampleIds = preparesNotOkList.stream().map(i -> {
return i.getEntrustSampleId(); return i.getEntrustSampleId();
}).collect(Collectors.toList()); }).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(notSampleIds)) {
notOkSampleIds.addAll(notSampleIds);
}
List<Long> changeList = new ArrayList<>(); List<Long> changeList = new ArrayList<>();
for (Long id : sampleIdsList) { for (Long id : sampleIdsList) {
if (!notOkSampleIds.contains(id)) { if (!notOkSampleIds.contains(id)) {
...@@ -279,6 +284,51 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp ...@@ -279,6 +284,51 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean submitSampleReceiveWithoutPrepare(List<Long> sampleIds, String receiveType, Account account) {
RestAssert.fail(CollectionUtils.isEmpty(sampleIds), "请选择检测样品");
// 更新检测项目
EntrustSampleItem item = new EntrustSampleItem();
item.setStatus(EntrustSampleItemStatusEnum.ALLOT);
item.setProgress(EntrustSampleItemStatusEnum.ALLOT);
entrustSampleItemService.update(item, Condition.create().in("entrust_sample_id", sampleIds));
// 更新样品信息
EntrustSample sample = new EntrustSample();
sample.setStatus(EntrustSampleStatusEnum.TEST);
sample.setProgress(EntrustSampleStatusEnum.TEST);
entrustSampleService.update(sample, Condition.create().in("id", sampleIds));
// 查询随机样品对应的委托信息
EntrustSample entrustSample = entrustSampleService.getById(sampleIds.get(0));
// 查询委托下,是否还有没有完成接收的样品
List<EntrustSampleStatusEnum> unfinishStatus = Arrays.asList(
EntrustSampleStatusEnum.DRAFT,
EntrustSampleStatusEnum.RECEIVE
);
List<EntrustSample> entrustSamples = entrustSampleService.list(Condition.create()
.eq("entrust_id", entrustSample.getEntrustId())
.in("status", unfinishStatus)
);
if (CollectionUtils.isNotEmpty(entrustSamples)) {
return true;
}
Entrust entrust = entrustService.getById(entrustSample.getEntrustId());
// 检测开始时间为接收时间
entrust.setTestTimeS(new Date());
if (entrustService.isCanIntoNextNode(entrust)) {
entrustService.submitToNextNode(entrust, account);
} else {
entrust.setFlowStatus(EntrustFlowEnum.TEST.getName());
entrustService.updateById(entrust);
// 添加委托操作记录
entrustRecordService.record(new Long[]{entrust.getId()}, "样品接收", "任务分配", 0, account, "提交至任务分配");
}
return true;
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean receiveSampleBatch(Long[] ids, Account account) { public boolean receiveSampleBatch(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要接收的委托"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要接收的委托");
List<EntrustSample> sampleList = entrustSampleService.list(Condition.create().in("entrust_id", ids)); List<EntrustSample> sampleList = entrustSampleService.list(Condition.create().in("entrust_id", ids));
......
...@@ -1723,7 +1723,7 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -1723,7 +1723,7 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
if (CollectionUtils.isEmpty(itemList)) return false; if (CollectionUtils.isEmpty(itemList)) return false;
List<EntrustSample> sampleList = getBatchIds(sampleIdsList); List<EntrustSample> sampleList = getBatchIds(sampleIdsList);
Map<Long,Long> sampleEntrustIdMap = sampleList.stream().collect(Collectors.toMap(EntrustSample::getId,EntrustSample::getEntrustId)); Map<Long, Long> sampleEntrustIdMap = sampleList.stream().collect(Collectors.toMap(EntrustSample::getId, EntrustSample::getEntrustId));
List<EntrustSampleItem> saveItemList = new ArrayList<>(); List<EntrustSampleItem> saveItemList = new ArrayList<>();
for (Long sampleId : sampleIdsList) { for (Long sampleId : sampleIdsList) {
...@@ -1751,19 +1751,30 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -1751,19 +1751,30 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean scanReceive(String sampleCode, Account account) { public boolean scanReceive(String sampleCodes, Account account) {
RestAssert.fail(StringUtils.isBlank(sampleCode), "请扫描二维码"); RestAssert.fail(StringUtils.isBlank(sampleCodes), "请扫描二维码");
String[] codeArray = sampleCode.split("~"); String[] sampleCodeArr = sampleCodes.split(",");
RestAssert.fail(codeArray.length != 3, "样品编号有误!"); Wrapper wrapper = Condition.create();
Long groupId = Long.parseLong(codeArray[1]); List<Long> sampleIds = new ArrayList<>();
Long sampleId = Long.parseLong(codeArray[2]); for (int i = 0; i < sampleCodeArr.length; i++) {
// 样品编号ID,根据当前提供的样品编号和组号获取 String code = sampleCodeArr[i];
// EntrustSample sample = getOne(Condition.create().setSqlSelect("id").eq("id", codeArray[0]).last("LIMIT 1")); String[] codeArr = code.split("~");
List<EntrustSamplePrepare> prepareList = entrustSamplePrepareService.list(Condition.create().eq("entrust_sample_id", sampleId).eq("group_id", groupId)); RestAssert.fail(codeArr.length != 3, "样品编号有误!");
RestAssert.fail(CollectionUtils.isEmpty(prepareList), "暂未查询到样品下的接收信息!"); Long groupId = Long.parseLong(codeArr[1]);
Long sampleId = Long.parseLong(codeArr[2]);
sampleIds.add(sampleId);
wrapper.orNew().eq("entrust_sample_id", sampleId).eq("group_id", groupId);
}
System.out.println(wrapper.toString());
List<EntrustSamplePrepare> prepareList = entrustSamplePrepareService.list(wrapper);
if (CollectionUtils.isNotEmpty(prepareList)) {
Long[] prepareIds = prepareList.stream().map(EntrustSamplePrepare::getId).toArray(size -> new Long[size]); Long[] prepareIds = prepareList.stream().map(EntrustSamplePrepare::getId).toArray(size -> new Long[size]);
return entrustSamplePrepareService.submitSampleReceive(prepareIds, "扫码接收", account); return entrustSamplePrepareService.submitSampleReceive(prepareIds, "扫码接收", account);
} }
return entrustSamplePrepareService.submitSampleReceiveWithoutPrepare(sampleIds, "扫码接收", account);
}
@Override @Override
public boolean updateSampleCodeByEntrustId(Long entrustId, int level) { public boolean updateSampleCodeByEntrustId(Long entrustId, int level) {
...@@ -2229,7 +2240,7 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -2229,7 +2240,7 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
private List<EntrustSampleItemIndex> getIndexList(Long sampleId) { private List<EntrustSampleItemIndex> getIndexList(Long sampleId) {
if(null == sampleId){ if (null == sampleId) {
return new ArrayList<>(); return new ArrayList<>();
} }
return entrustSampleItemIndexService.listItemBySampleIds(Collections.singletonList(sampleId)); return entrustSampleItemIndexService.listItemBySampleIds(Collections.singletonList(sampleId));
......
...@@ -25,6 +25,12 @@ ...@@ -25,6 +25,12 @@
AND p.status != #{vo.prepareNotStatus} AND p.status != #{vo.prepareNotStatus}
</if> </if>
<if test="null!=vo.statusList">
<foreach collection="vo.statusList" index="index" item="status" open=" and s.status in (" separator="," close=")">
#{status}
</foreach>
</if>
<if test="null!=vo.entrustId"> <if test="null!=vo.entrustId">
AND s.entrust_id = #{vo.entrustId} AND s.entrust_id = #{vo.entrustId}
</if> </if>
......
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