diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessReadWriterController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessReadWriterController.java index b44de47..6f9f354 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessReadWriterController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessReadWriterController.java @@ -2,13 +2,17 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.business.dispatch.ReadSampleDTO; +import com.casic.missiles.dto.business.dispatch.SampleLabelReadListRequest; import com.casic.missiles.model.equipment.EquipmentFixedAssets; import com.casic.missiles.service.business.IBusinessReadWriterService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.Set; @@ -50,11 +54,20 @@ /** * 扫描收入、扫描检完、新建委托书、待收入等获取样品列表,需要实现接口调用有线扫码枪(二维码)和读写器设备结合的结果,识别的结果先展示为样品列表,点击某一个再查详情 * 已实现有线扫码枪(二维码)和大读写器结合扫描,扫码枪扫描结果是样品编号,读写器扫描结果是样品标签绑定 + * 过滤扫描样品场景: + * 扫描收入:设备收发场景+待收入状态 + * 扫描结束检定:设备收发场景+已收入状态 + * 扫描结束检定:设备收发场景+已超期状态 + * 扫描归还:设备收发场景+待归还状态 + * 新建委托书:委托书场景 + * 扫描收入:我的检测场景+待检测状态 + * 扫描检完:我的检测场景+检测中状态 + * 扫描检完:部门检测+检测中状态 */ @ApiOperation("扫描收入、扫描检完、新建委托书、待收入等标签识别获取样品列表") @PostMapping("/sample/label/readList") - public ReturnDTO> sampleLabelReadList(@RequestBody Set strSet) { - return readWriterService.sampleLabelReadList(strSet); + public ReturnDTO> sampleLabelReadList(@RequestBody SampleLabelReadListRequest request) throws Exception { + return readWriterService.sampleLabelReadList(request); } /** diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessReadWriterController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessReadWriterController.java index b44de47..6f9f354 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessReadWriterController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessReadWriterController.java @@ -2,13 +2,17 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.business.dispatch.ReadSampleDTO; +import com.casic.missiles.dto.business.dispatch.SampleLabelReadListRequest; import com.casic.missiles.model.equipment.EquipmentFixedAssets; import com.casic.missiles.service.business.IBusinessReadWriterService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.Set; @@ -50,11 +54,20 @@ /** * 扫描收入、扫描检完、新建委托书、待收入等获取样品列表,需要实现接口调用有线扫码枪(二维码)和读写器设备结合的结果,识别的结果先展示为样品列表,点击某一个再查详情 * 已实现有线扫码枪(二维码)和大读写器结合扫描,扫码枪扫描结果是样品编号,读写器扫描结果是样品标签绑定 + * 过滤扫描样品场景: + * 扫描收入:设备收发场景+待收入状态 + * 扫描结束检定:设备收发场景+已收入状态 + * 扫描结束检定:设备收发场景+已超期状态 + * 扫描归还:设备收发场景+待归还状态 + * 新建委托书:委托书场景 + * 扫描收入:我的检测场景+待检测状态 + * 扫描检完:我的检测场景+检测中状态 + * 扫描检完:部门检测+检测中状态 */ @ApiOperation("扫描收入、扫描检完、新建委托书、待收入等标签识别获取样品列表") @PostMapping("/sample/label/readList") - public ReturnDTO> sampleLabelReadList(@RequestBody Set strSet) { - return readWriterService.sampleLabelReadList(strSet); + public ReturnDTO> sampleLabelReadList(@RequestBody SampleLabelReadListRequest request) throws Exception { + return readWriterService.sampleLabelReadList(request); } /** diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index 39ef61a..0f19b4d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id + blei.measure_status, blei.measure_person_id, csi.label_bind diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 530dd8d..baea973 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -36,7 +36,7 @@ csi.manufacturing_no, bo.order_code, bo.id AS orderId, bo.customer_id, bo.customer_name, bo.customer_no, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status, bosr.real_deliver_time, csi.measure_type, bo.is_urgent, bo.plan_deliver_time, - bo.require_over_time, bo.deliverer, bosr.return_time, csi.remark + bo.require_over_time, bo.deliverer, bosr.return_time, csi.remark, csi.label_bind, bo.customer_id FROM ( SELECT * diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessReadWriterController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessReadWriterController.java index b44de47..6f9f354 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessReadWriterController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessReadWriterController.java @@ -2,13 +2,17 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.business.dispatch.ReadSampleDTO; +import com.casic.missiles.dto.business.dispatch.SampleLabelReadListRequest; import com.casic.missiles.model.equipment.EquipmentFixedAssets; import com.casic.missiles.service.business.IBusinessReadWriterService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.Set; @@ -50,11 +54,20 @@ /** * 扫描收入、扫描检完、新建委托书、待收入等获取样品列表,需要实现接口调用有线扫码枪(二维码)和读写器设备结合的结果,识别的结果先展示为样品列表,点击某一个再查详情 * 已实现有线扫码枪(二维码)和大读写器结合扫描,扫码枪扫描结果是样品编号,读写器扫描结果是样品标签绑定 + * 过滤扫描样品场景: + * 扫描收入:设备收发场景+待收入状态 + * 扫描结束检定:设备收发场景+已收入状态 + * 扫描结束检定:设备收发场景+已超期状态 + * 扫描归还:设备收发场景+待归还状态 + * 新建委托书:委托书场景 + * 扫描收入:我的检测场景+待检测状态 + * 扫描检完:我的检测场景+检测中状态 + * 扫描检完:部门检测+检测中状态 */ @ApiOperation("扫描收入、扫描检完、新建委托书、待收入等标签识别获取样品列表") @PostMapping("/sample/label/readList") - public ReturnDTO> sampleLabelReadList(@RequestBody Set strSet) { - return readWriterService.sampleLabelReadList(strSet); + public ReturnDTO> sampleLabelReadList(@RequestBody SampleLabelReadListRequest request) throws Exception { + return readWriterService.sampleLabelReadList(request); } /** diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index 39ef61a..0f19b4d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id + blei.measure_status, blei.measure_person_id, csi.label_bind diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 530dd8d..baea973 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -36,7 +36,7 @@ csi.manufacturing_no, bo.order_code, bo.id AS orderId, bo.customer_id, bo.customer_name, bo.customer_no, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status, bosr.real_deliver_time, csi.measure_type, bo.is_urgent, bo.plan_deliver_time, - bo.require_over_time, bo.deliverer, bosr.return_time, csi.remark + bo.require_over_time, bo.deliverer, bosr.return_time, csi.remark, csi.label_bind, bo.customer_id FROM ( SELECT * diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index a4b3d8d..1610817 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -111,4 +111,10 @@ @ApiModelProperty(value = "回退状态(已收入的状态) 1真0假", dataType = "Integer") private Integer FallbackState; + //扫描匹配使用参数 + @JSONField(serialize = false) + private String labelBind; + @JSONField(serialize = false) + private Long customerId; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/SampleLabelReadListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/SampleLabelReadListRequest.java new file mode 100644 index 0000000..ed728bd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/SampleLabelReadListRequest.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Set; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/7/10 16:06 + */ +@Data +public class SampleLabelReadListRequest { + @ApiModelProperty(value = "场景编码(1:设备收发场景,2:委托书场景,3:我的检测场景,4:部门检测场景)", dataType = "String") + private String sceneNo; + @ApiModelProperty(value = "场景下的状态(场景1(1:待收入状态,2:已收入状态,3:待归还状态,4:已超期状态);场景3(1:待检测状态,2:检测中状态);场景4(1:检测中状态))", dataType = "String") + private String status; + @ApiModelProperty(value = "扫码集合", dataType = "Set") + private Set strSet; +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessReadWriterController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessReadWriterController.java index b44de47..6f9f354 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessReadWriterController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessReadWriterController.java @@ -2,13 +2,17 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.business.dispatch.ReadSampleDTO; +import com.casic.missiles.dto.business.dispatch.SampleLabelReadListRequest; import com.casic.missiles.model.equipment.EquipmentFixedAssets; import com.casic.missiles.service.business.IBusinessReadWriterService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.Set; @@ -50,11 +54,20 @@ /** * 扫描收入、扫描检完、新建委托书、待收入等获取样品列表,需要实现接口调用有线扫码枪(二维码)和读写器设备结合的结果,识别的结果先展示为样品列表,点击某一个再查详情 * 已实现有线扫码枪(二维码)和大读写器结合扫描,扫码枪扫描结果是样品编号,读写器扫描结果是样品标签绑定 + * 过滤扫描样品场景: + * 扫描收入:设备收发场景+待收入状态 + * 扫描结束检定:设备收发场景+已收入状态 + * 扫描结束检定:设备收发场景+已超期状态 + * 扫描归还:设备收发场景+待归还状态 + * 新建委托书:委托书场景 + * 扫描收入:我的检测场景+待检测状态 + * 扫描检完:我的检测场景+检测中状态 + * 扫描检完:部门检测+检测中状态 */ @ApiOperation("扫描收入、扫描检完、新建委托书、待收入等标签识别获取样品列表") @PostMapping("/sample/label/readList") - public ReturnDTO> sampleLabelReadList(@RequestBody Set strSet) { - return readWriterService.sampleLabelReadList(strSet); + public ReturnDTO> sampleLabelReadList(@RequestBody SampleLabelReadListRequest request) throws Exception { + return readWriterService.sampleLabelReadList(request); } /** diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index 39ef61a..0f19b4d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id + blei.measure_status, blei.measure_person_id, csi.label_bind diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 530dd8d..baea973 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -36,7 +36,7 @@ csi.manufacturing_no, bo.order_code, bo.id AS orderId, bo.customer_id, bo.customer_name, bo.customer_no, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status, bosr.real_deliver_time, csi.measure_type, bo.is_urgent, bo.plan_deliver_time, - bo.require_over_time, bo.deliverer, bosr.return_time, csi.remark + bo.require_over_time, bo.deliverer, bosr.return_time, csi.remark, csi.label_bind, bo.customer_id FROM ( SELECT * diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index a4b3d8d..1610817 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -111,4 +111,10 @@ @ApiModelProperty(value = "回退状态(已收入的状态) 1真0假", dataType = "Integer") private Integer FallbackState; + //扫描匹配使用参数 + @JSONField(serialize = false) + private String labelBind; + @JSONField(serialize = false) + private Long customerId; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/SampleLabelReadListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/SampleLabelReadListRequest.java new file mode 100644 index 0000000..ed728bd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/SampleLabelReadListRequest.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Set; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/7/10 16:06 + */ +@Data +public class SampleLabelReadListRequest { + @ApiModelProperty(value = "场景编码(1:设备收发场景,2:委托书场景,3:我的检测场景,4:部门检测场景)", dataType = "String") + private String sceneNo; + @ApiModelProperty(value = "场景下的状态(场景1(1:待收入状态,2:已收入状态,3:待归还状态,4:已超期状态);场景3(1:待检测状态,2:检测中状态);场景4(1:检测中状态))", dataType = "String") + private String status; + @ApiModelProperty(value = "扫码集合", dataType = "Set") + private Set strSet; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index c787615..bd15e46 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -114,4 +114,8 @@ @JSONField(serialize = false) private String measureDeptName; + + //扫描匹配使用参数 + @JSONField(serialize = false) + private String labelBind; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessReadWriterServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessReadWriterServiceImpl.java index 799b2a5..34ac254 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessReadWriterServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessReadWriterServiceImpl.java @@ -1,15 +1,28 @@ package com.casic.missiles.service.Impl.business; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; import com.casic.missiles.dto.business.dispatch.ReadSampleDTO; +import com.casic.missiles.dto.business.dispatch.SampleLabelReadListRequest; +import com.casic.missiles.dto.business.labExecutive.SampleLabExecutiveListRequest; +import com.casic.missiles.dto.business.labExecutive.SampleLabExecutiveListResponse; +import com.casic.missiles.enums.business.MeasureStatusEnum; +import com.casic.missiles.enums.sample.SampleStatusEnum; import com.casic.missiles.mapper.MeterFixedAssetsMapper; import com.casic.missiles.mapper.customer.CustomerSampleMapper; import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.service.business.IBusinessDispatchService; +import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService; import com.casic.missiles.service.business.IBusinessReadWriterService; +import com.casic.missiles.utils.ConvertUtils; import gnu.io.SerialPort; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -17,6 +30,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Set; +import java.util.stream.Collectors; /** * @Description: 读写器相关业务 @@ -30,6 +44,10 @@ private CustomerSampleMapper sampleMapper; @Autowired private MeterFixedAssetsMapper meterFixedAssetsMapper; + @Autowired + private IBusinessDispatchService businessDispatchService; + @Autowired + private IBusinessLabExecutiveInfoService businessLabExecutiveInfoService; public static SerialPort serialPort = null; @@ -53,20 +71,91 @@ } @Override - public ReturnDTO> sampleLabelReadList(Set strSet) { - //样品列表 - List firstSamples = new ArrayList<>(); - List secondSamples = new ArrayList<>(); - if (!CollectionUtils.isEmpty(strSet)) { - firstSamples = queryGunReadSampleList(strSet); - secondSamples = queryReadSampleList(strSet); - } + public ReturnDTO> sampleLabelReadList(SampleLabelReadListRequest request) throws Exception { List resultList = new ArrayList<>(); - resultList.addAll(firstSamples); - resultList.addAll(secondSamples); + //兼容原有不过滤方式 + if (!CollectionUtils.isEmpty(request.getStrSet()) && StringUtils.isEmpty(request.getSceneNo())) { + List firstSamples = new ArrayList<>(); + List secondSamples = new ArrayList<>(); + firstSamples = queryGunReadSampleList(request.getStrSet()); + secondSamples = queryReadSampleList(request.getStrSet()); + resultList.addAll(firstSamples); + resultList.addAll(secondSamples); + }else { + //获取不同场景样品列表 + resultList = handleSceneSample(request.getSceneNo(), request.getStatus(), request.getStrSet()); + } return ReturnUtil.success(resultList); } + private List handleSceneSample(String sceneNo, String status, Set strSet) throws Exception { + List resultList = new ArrayList<>(); + if(sceneNo.equals("1")){ + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + DeviceDispatchDTO request = new DeviceDispatchDTO(); + if(status.equals("1")){ + //扫描收入:设备收发场景+待收入状态 + request.setSampleStatus(SampleStatusEnum.TO_RECEIVE); + }else if(status.equals("2")){ + //扫描结束检定:设备收发场景+已收入状态 + request.setSampleStatus(SampleStatusEnum.TO_HANDOUT); + }else if(status.equals("3")){ + //扫描归还:设备收发场景+待归还状态 + request.setSampleStatus(SampleStatusEnum.TO_GIVE_BACK); + }else if(status.equals("4")){ + //扫描结束检定:设备收发场景+已超期状态 + request.setSampleStatus(SampleStatusEnum.BE_OVERDUE); + } + Page deviceDispatchVOPage = businessDispatchService.listPage(page, request); + List records = deviceDispatchVOPage.getRecords(); + resultList = ConvertUtils.sourceToTarget(records, ReadSampleDTO.class); + }else if(sceneNo.equals("2")){ + //新建委托书:委托书场景 + List readSampleDTOS = queryGunReadSampleList(strSet); + List readSampleDTOS1 = queryReadSampleList(strSet); + List readSampleList = new ArrayList<>(); + readSampleList.addAll(readSampleDTOS); + readSampleList.addAll(readSampleDTOS1); + return readSampleList; + } else if(sceneNo.equals("3")){ + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + SampleLabExecutiveListRequest request = new SampleLabExecutiveListRequest(); + if(status.equals("1")){ + //扫描收入:我的检测场景+待检测状态 + request.setMeasureStatus(MeasureStatusEnum.TO_MEASURE); + }else if(status.equals("2")){ + //扫描检完:我的检测场景+检测中状态 + request.setMeasureStatus(MeasureStatusEnum.IN_MEASURE); + } + Page sampleLabExecutiveListResponsePage = businessLabExecutiveInfoService.myLabExecutiveListPage(page, request); + List records = sampleLabExecutiveListResponsePage.getRecords(); + resultList = ConvertUtils.sourceToTarget(records, ReadSampleDTO.class); + } else if(sceneNo.equals("4")){ + if(status.equals("1")){ + //扫描检完:部门检测场景+检测中状态 + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + SampleLabExecutiveListRequest request = new SampleLabExecutiveListRequest(); + request.setMeasureStatus(MeasureStatusEnum.IN_MEASURE); + Page sampleLabExecutiveListResponsePage = businessLabExecutiveInfoService.deptLabExecutiveListPage(page, request); + List records = sampleLabExecutiveListResponsePage.getRecords(); + resultList = ConvertUtils.sourceToTarget(records, ReadSampleDTO.class); + } + } + List collect = resultList.stream().filter(result -> { + return (strSet.contains(result.getSampleNo()) || strSet.contains(result.getLabelBind())); + }).collect(Collectors.toList()); + return collect; + } + private List queryGunReadSampleList(Set gunSet) { List readSampleDTOS = sampleMapper.selectListForReadWriter(gunSet, null); return readSampleDTOS; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessReadWriterController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessReadWriterController.java index b44de47..6f9f354 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessReadWriterController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessReadWriterController.java @@ -2,13 +2,17 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.business.dispatch.ReadSampleDTO; +import com.casic.missiles.dto.business.dispatch.SampleLabelReadListRequest; import com.casic.missiles.model.equipment.EquipmentFixedAssets; import com.casic.missiles.service.business.IBusinessReadWriterService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.Set; @@ -50,11 +54,20 @@ /** * 扫描收入、扫描检完、新建委托书、待收入等获取样品列表,需要实现接口调用有线扫码枪(二维码)和读写器设备结合的结果,识别的结果先展示为样品列表,点击某一个再查详情 * 已实现有线扫码枪(二维码)和大读写器结合扫描,扫码枪扫描结果是样品编号,读写器扫描结果是样品标签绑定 + * 过滤扫描样品场景: + * 扫描收入:设备收发场景+待收入状态 + * 扫描结束检定:设备收发场景+已收入状态 + * 扫描结束检定:设备收发场景+已超期状态 + * 扫描归还:设备收发场景+待归还状态 + * 新建委托书:委托书场景 + * 扫描收入:我的检测场景+待检测状态 + * 扫描检完:我的检测场景+检测中状态 + * 扫描检完:部门检测+检测中状态 */ @ApiOperation("扫描收入、扫描检完、新建委托书、待收入等标签识别获取样品列表") @PostMapping("/sample/label/readList") - public ReturnDTO> sampleLabelReadList(@RequestBody Set strSet) { - return readWriterService.sampleLabelReadList(strSet); + public ReturnDTO> sampleLabelReadList(@RequestBody SampleLabelReadListRequest request) throws Exception { + return readWriterService.sampleLabelReadList(request); } /** diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index 39ef61a..0f19b4d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id + blei.measure_status, blei.measure_person_id, csi.label_bind