diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index 9f0694f..57949ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -16,7 +16,9 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; +import org.omg.CORBA.OBJ_ADAPTER; import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -85,13 +87,13 @@ return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); } - @ApiOperation("设备标签") - @PostMapping("/scan/list") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); + @ApiOperation("标签绑定") + @PostMapping("/label/bind") + public ReturnDTO> bindLabel(@RequestBody @Valid LabelBindDTO labelBindDTO) throws Exception { + Assert.isFalse(ObjectUtils.isEmpty(labelBindDTO.getLabel()), () -> { + throw new BusinessException(BusinessExceptionEnum.LABEL_IS_EMPTY); }); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); + return bizDispatchService.bindLabel(labelBindDTO); } /** diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index 9f0694f..57949ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -16,7 +16,9 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; +import org.omg.CORBA.OBJ_ADAPTER; import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -85,13 +87,13 @@ return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); } - @ApiOperation("设备标签") - @PostMapping("/scan/list") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); + @ApiOperation("标签绑定") + @PostMapping("/label/bind") + public ReturnDTO> bindLabel(@RequestBody @Valid LabelBindDTO labelBindDTO) throws Exception { + Assert.isFalse(ObjectUtils.isEmpty(labelBindDTO.getLabel()), () -> { + throw new BusinessException(BusinessExceptionEnum.LABEL_IS_EMPTY); }); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); + return bizDispatchService.bindLabel(labelBindDTO); } /** diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 080b72b..70a8091 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -85,7 +85,9 @@ USER_ID_EMPTY(2432, "用户id不能为空"), CLIENT_ID_EMPTY(2433, "用户id不能为空"), URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), - DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"); + DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), + LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), + LABEL_ALREADY_BIND(2436, "标签已经绑定"); private Integer code; private String message; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index 9f0694f..57949ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -16,7 +16,9 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; +import org.omg.CORBA.OBJ_ADAPTER; import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -85,13 +87,13 @@ return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); } - @ApiOperation("设备标签") - @PostMapping("/scan/list") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); + @ApiOperation("标签绑定") + @PostMapping("/label/bind") + public ReturnDTO> bindLabel(@RequestBody @Valid LabelBindDTO labelBindDTO) throws Exception { + Assert.isFalse(ObjectUtils.isEmpty(labelBindDTO.getLabel()), () -> { + throw new BusinessException(BusinessExceptionEnum.LABEL_IS_EMPTY); }); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); + return bizDispatchService.bindLabel(labelBindDTO); } /** diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 080b72b..70a8091 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -85,7 +85,9 @@ USER_ID_EMPTY(2432, "用户id不能为空"), CLIENT_ID_EMPTY(2433, "用户id不能为空"), URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), - DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"); + DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), + LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), + LABEL_ALREADY_BIND(2436, "标签已经绑定"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index f7caa62..a8f1f13 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -1,6 +1,6 @@ package com.casic.missiles.enums.business; public interface FilePrintTypeEnum { - String TEST_REPORT = "1"; - String CALIBRATION_CERTIFICATE = "2"; + String TEST_REPORT = "样品内部检校证书"; + String CALIBRATION_CERTIFICATE = "自有设备内部检校证书"; } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index 9f0694f..57949ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -16,7 +16,9 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; +import org.omg.CORBA.OBJ_ADAPTER; import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -85,13 +87,13 @@ return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); } - @ApiOperation("设备标签") - @PostMapping("/scan/list") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); + @ApiOperation("标签绑定") + @PostMapping("/label/bind") + public ReturnDTO> bindLabel(@RequestBody @Valid LabelBindDTO labelBindDTO) throws Exception { + Assert.isFalse(ObjectUtils.isEmpty(labelBindDTO.getLabel()), () -> { + throw new BusinessException(BusinessExceptionEnum.LABEL_IS_EMPTY); }); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); + return bizDispatchService.bindLabel(labelBindDTO); } /** diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 080b72b..70a8091 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -85,7 +85,9 @@ USER_ID_EMPTY(2432, "用户id不能为空"), CLIENT_ID_EMPTY(2433, "用户id不能为空"), URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), - DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"); + DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), + LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), + LABEL_ALREADY_BIND(2436, "标签已经绑定"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index f7caa62..a8f1f13 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -1,6 +1,6 @@ package com.casic.missiles.enums.business; public interface FilePrintTypeEnum { - String TEST_REPORT = "1"; - String CALIBRATION_CERTIFICATE = "2"; + String TEST_REPORT = "样品内部检校证书"; + String CALIBRATION_CERTIFICATE = "自有设备内部检校证书"; } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index 4437c4d..02f2358 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -2,13 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.dispatch.LabelBindDTO; import com.casic.missiles.dto.business.labExecutive.SampleHandOutDetailResponse; import com.casic.missiles.dto.business.labExecutive.SampleHandOutListRequest; import com.casic.missiles.dto.business.labExecutive.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; -import com.casic.missiles.dto.business.dispatch.DeviceScanDTO; -import com.casic.missiles.dto.business.dispatch.DeviceScanVO; import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.business.workbench.SampleMonitorResponse; import com.casic.missiles.dto.cockpit.TrafficStatisticsResponse; @@ -36,7 +35,9 @@ Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request); - List deviceScanStatus(@Param("request") DeviceScanDTO request); + Long isBindLabel(@Param("label") String label); + + Integer bindLabel(@Param("request") LabelBindDTO labelBindDTO); SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index 9f0694f..57949ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -16,7 +16,9 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; +import org.omg.CORBA.OBJ_ADAPTER; import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -85,13 +87,13 @@ return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); } - @ApiOperation("设备标签") - @PostMapping("/scan/list") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); + @ApiOperation("标签绑定") + @PostMapping("/label/bind") + public ReturnDTO> bindLabel(@RequestBody @Valid LabelBindDTO labelBindDTO) throws Exception { + Assert.isFalse(ObjectUtils.isEmpty(labelBindDTO.getLabel()), () -> { + throw new BusinessException(BusinessExceptionEnum.LABEL_IS_EMPTY); }); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); + return bizDispatchService.bindLabel(labelBindDTO); } /** diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 080b72b..70a8091 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -85,7 +85,9 @@ USER_ID_EMPTY(2432, "用户id不能为空"), CLIENT_ID_EMPTY(2433, "用户id不能为空"), URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), - DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"); + DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), + LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), + LABEL_ALREADY_BIND(2436, "标签已经绑定"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index f7caa62..a8f1f13 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -1,6 +1,6 @@ package com.casic.missiles.enums.business; public interface FilePrintTypeEnum { - String TEST_REPORT = "1"; - String CALIBRATION_CERTIFICATE = "2"; + String TEST_REPORT = "样品内部检校证书"; + String CALIBRATION_CERTIFICATE = "自有设备内部检校证书"; } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index 4437c4d..02f2358 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -2,13 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.dispatch.LabelBindDTO; import com.casic.missiles.dto.business.labExecutive.SampleHandOutDetailResponse; import com.casic.missiles.dto.business.labExecutive.SampleHandOutListRequest; import com.casic.missiles.dto.business.labExecutive.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; -import com.casic.missiles.dto.business.dispatch.DeviceScanDTO; -import com.casic.missiles.dto.business.dispatch.DeviceScanVO; import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.business.workbench.SampleMonitorResponse; import com.casic.missiles.dto.cockpit.TrafficStatisticsResponse; @@ -36,7 +35,9 @@ Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request); - List deviceScanStatus(@Param("request") DeviceScanDTO request); + Long isBindLabel(@Param("label") String label); + + Integer bindLabel(@Param("request") LabelBindDTO labelBindDTO); SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java index e5a6e6b..7ca7c6d 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java @@ -24,6 +24,7 @@ @Select(" SELECT minio_file_name " + " FROM system_sign " + " WHERE sign_user_id =#{signUserId} " + - " AND is_del=0 ") + " AND is_del=0" + + " limit 1") String getSignFileNameById(@Param("signUserId")Long signUserId); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index 9f0694f..57949ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -16,7 +16,9 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; +import org.omg.CORBA.OBJ_ADAPTER; import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -85,13 +87,13 @@ return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); } - @ApiOperation("设备标签") - @PostMapping("/scan/list") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); + @ApiOperation("标签绑定") + @PostMapping("/label/bind") + public ReturnDTO> bindLabel(@RequestBody @Valid LabelBindDTO labelBindDTO) throws Exception { + Assert.isFalse(ObjectUtils.isEmpty(labelBindDTO.getLabel()), () -> { + throw new BusinessException(BusinessExceptionEnum.LABEL_IS_EMPTY); }); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); + return bizDispatchService.bindLabel(labelBindDTO); } /** diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 080b72b..70a8091 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -85,7 +85,9 @@ USER_ID_EMPTY(2432, "用户id不能为空"), CLIENT_ID_EMPTY(2433, "用户id不能为空"), URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), - DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"); + DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), + LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), + LABEL_ALREADY_BIND(2436, "标签已经绑定"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index f7caa62..a8f1f13 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -1,6 +1,6 @@ package com.casic.missiles.enums.business; public interface FilePrintTypeEnum { - String TEST_REPORT = "1"; - String CALIBRATION_CERTIFICATE = "2"; + String TEST_REPORT = "样品内部检校证书"; + String CALIBRATION_CERTIFICATE = "自有设备内部检校证书"; } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index 4437c4d..02f2358 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -2,13 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.dispatch.LabelBindDTO; import com.casic.missiles.dto.business.labExecutive.SampleHandOutDetailResponse; import com.casic.missiles.dto.business.labExecutive.SampleHandOutListRequest; import com.casic.missiles.dto.business.labExecutive.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; -import com.casic.missiles.dto.business.dispatch.DeviceScanDTO; -import com.casic.missiles.dto.business.dispatch.DeviceScanVO; import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.business.workbench.SampleMonitorResponse; import com.casic.missiles.dto.cockpit.TrafficStatisticsResponse; @@ -36,7 +35,9 @@ Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request); - List deviceScanStatus(@Param("request") DeviceScanDTO request); + Long isBindLabel(@Param("label") String label); + + Integer bindLabel(@Param("request") LabelBindDTO labelBindDTO); SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java index e5a6e6b..7ca7c6d 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java @@ -24,6 +24,7 @@ @Select(" SELECT minio_file_name " + " FROM system_sign " + " WHERE sign_user_id =#{signUserId} " + - " AND is_del=0 ") + " AND is_del=0" + + " limit 1") String getSignFileNameById(@Param("signUserId")Long signUserId); } 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 dc0af38..530dd8d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -63,103 +63,63 @@ ) bo JOIN ( - SELECT * - FROM business_order_sample_relation bosr - WHERE 1=1 - - AND (bosr.sample_status = 2 OR bosr.sample_status = 3 OR bosr.sample_status = 4 ) - - - AND bosr.sample_status = 3 - + SELECT * + FROM business_order_sample_relation bosr + WHERE 1=1 + + AND (bosr.sample_status = 2 OR bosr.sample_status = 3 OR bosr.sample_status = 4 ) + + + AND bosr.sample_status = 3 + - - AND bosr.sample_status = #{request.sampleStatus} - + + AND bosr.sample_status = #{request.sampleStatus} + - - and id in - - #{id} - - + + and id in + + #{id} + + ) bosr ON bo.id = bosr.order_id JOIN ( - SELECT * - FROM customer_sample_info csi - WHERE is_del = 0 - - AND csi.sample_no LIKE concat('%',#{request.sampleNo},'%') - - - AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - - - AND csi.sample_belong = #{request.sampleBelong} - + SELECT * + FROM customer_sample_info csi + WHERE is_del = 0 + + AND csi.sample_no LIKE concat('%',#{request.sampleNo},'%') + + + AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + + AND csi.sample_belong = #{request.sampleBelong} + ) csi ON csi.id = bosr.sample_id ORDER BY bosr.create_time DESC - + SELECT id + FROM customer_sample_info csi + WHERE is_del = 0 + + and label_bind =#{label} + - SELECT FROM business_order bo @@ -210,7 +170,8 @@ ORDER BY bosr.create_time DESC - SELECT FROM business_order_sample_relation bosr @@ -296,7 +257,8 @@ LIMIT 1 - SELECT bosr.sample_id, csi.sample_no, csi.sample_name, bo.id AS orderId FROM business_order bo JOIN business_order_sample_relation bosr ON bo.id = bosr.order_id @@ -370,7 +332,8 @@ ) csi ON csi.id = bosr.sample_id - SELECT FROM business_order bo @@ -411,7 +374,8 @@ AND DATE_FORMAT(bosr.update_time, '%Y%m') = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m') - WITH RECURSIVE months(months,num) as ( SELECT DATE_FORMAT((CURDATE()), '%Y-%m') AS 'months' , 0 as num UNION ALL diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index 9f0694f..57949ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -16,7 +16,9 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; +import org.omg.CORBA.OBJ_ADAPTER; import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -85,13 +87,13 @@ return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); } - @ApiOperation("设备标签") - @PostMapping("/scan/list") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); + @ApiOperation("标签绑定") + @PostMapping("/label/bind") + public ReturnDTO> bindLabel(@RequestBody @Valid LabelBindDTO labelBindDTO) throws Exception { + Assert.isFalse(ObjectUtils.isEmpty(labelBindDTO.getLabel()), () -> { + throw new BusinessException(BusinessExceptionEnum.LABEL_IS_EMPTY); }); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); + return bizDispatchService.bindLabel(labelBindDTO); } /** diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 080b72b..70a8091 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -85,7 +85,9 @@ USER_ID_EMPTY(2432, "用户id不能为空"), CLIENT_ID_EMPTY(2433, "用户id不能为空"), URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), - DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"); + DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), + LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), + LABEL_ALREADY_BIND(2436, "标签已经绑定"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index f7caa62..a8f1f13 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -1,6 +1,6 @@ package com.casic.missiles.enums.business; public interface FilePrintTypeEnum { - String TEST_REPORT = "1"; - String CALIBRATION_CERTIFICATE = "2"; + String TEST_REPORT = "样品内部检校证书"; + String CALIBRATION_CERTIFICATE = "自有设备内部检校证书"; } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index 4437c4d..02f2358 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -2,13 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.dispatch.LabelBindDTO; import com.casic.missiles.dto.business.labExecutive.SampleHandOutDetailResponse; import com.casic.missiles.dto.business.labExecutive.SampleHandOutListRequest; import com.casic.missiles.dto.business.labExecutive.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; -import com.casic.missiles.dto.business.dispatch.DeviceScanDTO; -import com.casic.missiles.dto.business.dispatch.DeviceScanVO; import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.business.workbench.SampleMonitorResponse; import com.casic.missiles.dto.cockpit.TrafficStatisticsResponse; @@ -36,7 +35,9 @@ Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request); - List deviceScanStatus(@Param("request") DeviceScanDTO request); + Long isBindLabel(@Param("label") String label); + + Integer bindLabel(@Param("request") LabelBindDTO labelBindDTO); SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java index e5a6e6b..7ca7c6d 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java @@ -24,6 +24,7 @@ @Select(" SELECT minio_file_name " + " FROM system_sign " + " WHERE sign_user_id =#{signUserId} " + - " AND is_del=0 ") + " AND is_del=0" + + " limit 1") String getSignFileNameById(@Param("signUserId")Long signUserId); } 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 dc0af38..530dd8d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -63,103 +63,63 @@ ) bo JOIN ( - SELECT * - FROM business_order_sample_relation bosr - WHERE 1=1 - - AND (bosr.sample_status = 2 OR bosr.sample_status = 3 OR bosr.sample_status = 4 ) - - - AND bosr.sample_status = 3 - + SELECT * + FROM business_order_sample_relation bosr + WHERE 1=1 + + AND (bosr.sample_status = 2 OR bosr.sample_status = 3 OR bosr.sample_status = 4 ) + + + AND bosr.sample_status = 3 + - - AND bosr.sample_status = #{request.sampleStatus} - + + AND bosr.sample_status = #{request.sampleStatus} + - - and id in - - #{id} - - + + and id in + + #{id} + + ) bosr ON bo.id = bosr.order_id JOIN ( - SELECT * - FROM customer_sample_info csi - WHERE is_del = 0 - - AND csi.sample_no LIKE concat('%',#{request.sampleNo},'%') - - - AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - - - AND csi.sample_belong = #{request.sampleBelong} - + SELECT * + FROM customer_sample_info csi + WHERE is_del = 0 + + AND csi.sample_no LIKE concat('%',#{request.sampleNo},'%') + + + AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + + AND csi.sample_belong = #{request.sampleBelong} + ) csi ON csi.id = bosr.sample_id ORDER BY bosr.create_time DESC - + SELECT id + FROM customer_sample_info csi + WHERE is_del = 0 + + and label_bind =#{label} + - SELECT FROM business_order bo @@ -210,7 +170,8 @@ ORDER BY bosr.create_time DESC - SELECT FROM business_order_sample_relation bosr @@ -296,7 +257,8 @@ LIMIT 1 - SELECT bosr.sample_id, csi.sample_no, csi.sample_name, bo.id AS orderId FROM business_order bo JOIN business_order_sample_relation bosr ON bo.id = bosr.order_id @@ -370,7 +332,8 @@ ) csi ON csi.id = bosr.sample_id - SELECT FROM business_order bo @@ -411,7 +374,8 @@ AND DATE_FORMAT(bosr.update_time, '%Y%m') = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m') - WITH RECURSIVE months(months,num) as ( SELECT DATE_FORMAT((CURDATE()), '%Y-%m') AS 'months' , 0 as num UNION ALL diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanDTO.java deleted file mode 100644 index c641111..0000000 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanDTO.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.casic.missiles.dto.business.dispatch; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.validation.constraints.NotNull; -import java.util.List; - -@Data -@ApiModel("设备扫描参数") -public class DeviceScanDTO { - - @NotNull - @ApiModelProperty("标签列表") - private List labels; - - @ApiModelProperty("样品状态1、待收入 2、已收入 5、待归还") - private String status; -} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index 9f0694f..57949ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -16,7 +16,9 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; +import org.omg.CORBA.OBJ_ADAPTER; import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -85,13 +87,13 @@ return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); } - @ApiOperation("设备标签") - @PostMapping("/scan/list") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); + @ApiOperation("标签绑定") + @PostMapping("/label/bind") + public ReturnDTO> bindLabel(@RequestBody @Valid LabelBindDTO labelBindDTO) throws Exception { + Assert.isFalse(ObjectUtils.isEmpty(labelBindDTO.getLabel()), () -> { + throw new BusinessException(BusinessExceptionEnum.LABEL_IS_EMPTY); }); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); + return bizDispatchService.bindLabel(labelBindDTO); } /** diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 080b72b..70a8091 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -85,7 +85,9 @@ USER_ID_EMPTY(2432, "用户id不能为空"), CLIENT_ID_EMPTY(2433, "用户id不能为空"), URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), - DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"); + DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), + LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), + LABEL_ALREADY_BIND(2436, "标签已经绑定"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index f7caa62..a8f1f13 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -1,6 +1,6 @@ package com.casic.missiles.enums.business; public interface FilePrintTypeEnum { - String TEST_REPORT = "1"; - String CALIBRATION_CERTIFICATE = "2"; + String TEST_REPORT = "样品内部检校证书"; + String CALIBRATION_CERTIFICATE = "自有设备内部检校证书"; } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index 4437c4d..02f2358 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -2,13 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.dispatch.LabelBindDTO; import com.casic.missiles.dto.business.labExecutive.SampleHandOutDetailResponse; import com.casic.missiles.dto.business.labExecutive.SampleHandOutListRequest; import com.casic.missiles.dto.business.labExecutive.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; -import com.casic.missiles.dto.business.dispatch.DeviceScanDTO; -import com.casic.missiles.dto.business.dispatch.DeviceScanVO; import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.business.workbench.SampleMonitorResponse; import com.casic.missiles.dto.cockpit.TrafficStatisticsResponse; @@ -36,7 +35,9 @@ Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request); - List deviceScanStatus(@Param("request") DeviceScanDTO request); + Long isBindLabel(@Param("label") String label); + + Integer bindLabel(@Param("request") LabelBindDTO labelBindDTO); SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java index e5a6e6b..7ca7c6d 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java @@ -24,6 +24,7 @@ @Select(" SELECT minio_file_name " + " FROM system_sign " + " WHERE sign_user_id =#{signUserId} " + - " AND is_del=0 ") + " AND is_del=0" + + " limit 1") String getSignFileNameById(@Param("signUserId")Long signUserId); } 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 dc0af38..530dd8d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -63,103 +63,63 @@ ) bo JOIN ( - SELECT * - FROM business_order_sample_relation bosr - WHERE 1=1 - - AND (bosr.sample_status = 2 OR bosr.sample_status = 3 OR bosr.sample_status = 4 ) - - - AND bosr.sample_status = 3 - + SELECT * + FROM business_order_sample_relation bosr + WHERE 1=1 + + AND (bosr.sample_status = 2 OR bosr.sample_status = 3 OR bosr.sample_status = 4 ) + + + AND bosr.sample_status = 3 + - - AND bosr.sample_status = #{request.sampleStatus} - + + AND bosr.sample_status = #{request.sampleStatus} + - - and id in - - #{id} - - + + and id in + + #{id} + + ) bosr ON bo.id = bosr.order_id JOIN ( - SELECT * - FROM customer_sample_info csi - WHERE is_del = 0 - - AND csi.sample_no LIKE concat('%',#{request.sampleNo},'%') - - - AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - - - AND csi.sample_belong = #{request.sampleBelong} - + SELECT * + FROM customer_sample_info csi + WHERE is_del = 0 + + AND csi.sample_no LIKE concat('%',#{request.sampleNo},'%') + + + AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + + AND csi.sample_belong = #{request.sampleBelong} + ) csi ON csi.id = bosr.sample_id ORDER BY bosr.create_time DESC - + SELECT id + FROM customer_sample_info csi + WHERE is_del = 0 + + and label_bind =#{label} + - SELECT FROM business_order bo @@ -210,7 +170,8 @@ ORDER BY bosr.create_time DESC - SELECT FROM business_order_sample_relation bosr @@ -296,7 +257,8 @@ LIMIT 1 - SELECT bosr.sample_id, csi.sample_no, csi.sample_name, bo.id AS orderId FROM business_order bo JOIN business_order_sample_relation bosr ON bo.id = bosr.order_id @@ -370,7 +332,8 @@ ) csi ON csi.id = bosr.sample_id - SELECT FROM business_order bo @@ -411,7 +374,8 @@ AND DATE_FORMAT(bosr.update_time, '%Y%m') = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m') - WITH RECURSIVE months(months,num) as ( SELECT DATE_FORMAT((CURDATE()), '%Y-%m') AS 'months' , 0 as num UNION ALL diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanDTO.java deleted file mode 100644 index c641111..0000000 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanDTO.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.casic.missiles.dto.business.dispatch; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.validation.constraints.NotNull; -import java.util.List; - -@Data -@ApiModel("设备扫描参数") -public class DeviceScanDTO { - - @NotNull - @ApiModelProperty("标签列表") - private List labels; - - @ApiModelProperty("样品状态1、待收入 2、已收入 5、待归还") - private String status; -} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/LabelBindDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/LabelBindDTO.java new file mode 100644 index 0000000..4e5dc47 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/LabelBindDTO.java @@ -0,0 +1,23 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * 标签绑定 + */ +@Data +@ApiModel("设备扫描参数") +public class LabelBindDTO { + + @NotNull + @ApiModelProperty("标签列表") + private String label; + + @NotNull + @ApiModelProperty("样品id") + private String sampleId; +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index 9f0694f..57949ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -16,7 +16,9 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; +import org.omg.CORBA.OBJ_ADAPTER; import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -85,13 +87,13 @@ return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); } - @ApiOperation("设备标签") - @PostMapping("/scan/list") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); + @ApiOperation("标签绑定") + @PostMapping("/label/bind") + public ReturnDTO> bindLabel(@RequestBody @Valid LabelBindDTO labelBindDTO) throws Exception { + Assert.isFalse(ObjectUtils.isEmpty(labelBindDTO.getLabel()), () -> { + throw new BusinessException(BusinessExceptionEnum.LABEL_IS_EMPTY); }); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); + return bizDispatchService.bindLabel(labelBindDTO); } /** diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 080b72b..70a8091 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -85,7 +85,9 @@ USER_ID_EMPTY(2432, "用户id不能为空"), CLIENT_ID_EMPTY(2433, "用户id不能为空"), URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), - DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"); + DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), + LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), + LABEL_ALREADY_BIND(2436, "标签已经绑定"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index f7caa62..a8f1f13 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -1,6 +1,6 @@ package com.casic.missiles.enums.business; public interface FilePrintTypeEnum { - String TEST_REPORT = "1"; - String CALIBRATION_CERTIFICATE = "2"; + String TEST_REPORT = "样品内部检校证书"; + String CALIBRATION_CERTIFICATE = "自有设备内部检校证书"; } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index 4437c4d..02f2358 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -2,13 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.dispatch.LabelBindDTO; import com.casic.missiles.dto.business.labExecutive.SampleHandOutDetailResponse; import com.casic.missiles.dto.business.labExecutive.SampleHandOutListRequest; import com.casic.missiles.dto.business.labExecutive.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; -import com.casic.missiles.dto.business.dispatch.DeviceScanDTO; -import com.casic.missiles.dto.business.dispatch.DeviceScanVO; import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.business.workbench.SampleMonitorResponse; import com.casic.missiles.dto.cockpit.TrafficStatisticsResponse; @@ -36,7 +35,9 @@ Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request); - List deviceScanStatus(@Param("request") DeviceScanDTO request); + Long isBindLabel(@Param("label") String label); + + Integer bindLabel(@Param("request") LabelBindDTO labelBindDTO); SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java index e5a6e6b..7ca7c6d 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java @@ -24,6 +24,7 @@ @Select(" SELECT minio_file_name " + " FROM system_sign " + " WHERE sign_user_id =#{signUserId} " + - " AND is_del=0 ") + " AND is_del=0" + + " limit 1") String getSignFileNameById(@Param("signUserId")Long signUserId); } 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 dc0af38..530dd8d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -63,103 +63,63 @@ ) bo JOIN ( - SELECT * - FROM business_order_sample_relation bosr - WHERE 1=1 - - AND (bosr.sample_status = 2 OR bosr.sample_status = 3 OR bosr.sample_status = 4 ) - - - AND bosr.sample_status = 3 - + SELECT * + FROM business_order_sample_relation bosr + WHERE 1=1 + + AND (bosr.sample_status = 2 OR bosr.sample_status = 3 OR bosr.sample_status = 4 ) + + + AND bosr.sample_status = 3 + - - AND bosr.sample_status = #{request.sampleStatus} - + + AND bosr.sample_status = #{request.sampleStatus} + - - and id in - - #{id} - - + + and id in + + #{id} + + ) bosr ON bo.id = bosr.order_id JOIN ( - SELECT * - FROM customer_sample_info csi - WHERE is_del = 0 - - AND csi.sample_no LIKE concat('%',#{request.sampleNo},'%') - - - AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - - - AND csi.sample_belong = #{request.sampleBelong} - + SELECT * + FROM customer_sample_info csi + WHERE is_del = 0 + + AND csi.sample_no LIKE concat('%',#{request.sampleNo},'%') + + + AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + + AND csi.sample_belong = #{request.sampleBelong} + ) csi ON csi.id = bosr.sample_id ORDER BY bosr.create_time DESC - + SELECT id + FROM customer_sample_info csi + WHERE is_del = 0 + + and label_bind =#{label} + - SELECT FROM business_order bo @@ -210,7 +170,8 @@ ORDER BY bosr.create_time DESC - SELECT FROM business_order_sample_relation bosr @@ -296,7 +257,8 @@ LIMIT 1 - SELECT bosr.sample_id, csi.sample_no, csi.sample_name, bo.id AS orderId FROM business_order bo JOIN business_order_sample_relation bosr ON bo.id = bosr.order_id @@ -370,7 +332,8 @@ ) csi ON csi.id = bosr.sample_id - SELECT FROM business_order bo @@ -411,7 +374,8 @@ AND DATE_FORMAT(bosr.update_time, '%Y%m') = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m') - WITH RECURSIVE months(months,num) as ( SELECT DATE_FORMAT((CURDATE()), '%Y-%m') AS 'months' , 0 as num UNION ALL diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanDTO.java deleted file mode 100644 index c641111..0000000 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanDTO.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.casic.missiles.dto.business.dispatch; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.validation.constraints.NotNull; -import java.util.List; - -@Data -@ApiModel("设备扫描参数") -public class DeviceScanDTO { - - @NotNull - @ApiModelProperty("标签列表") - private List labels; - - @ApiModelProperty("样品状态1、待收入 2、已收入 5、待归还") - private String status; -} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/LabelBindDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/LabelBindDTO.java new file mode 100644 index 0000000..4e5dc47 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/LabelBindDTO.java @@ -0,0 +1,23 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * 标签绑定 + */ +@Data +@ApiModel("设备扫描参数") +public class LabelBindDTO { + + @NotNull + @ApiModelProperty("标签列表") + private String label; + + @NotNull + @ApiModelProperty("样品id") + private String sampleId; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index 9e6feaf..fd4979c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -216,36 +216,22 @@ /** - * 1、通过可更新状态查询前置状态 - * 2、根据前置状态对标签进行筛选 + * 1、查询是否绑定 + * 2、未绑定进行绑定,已绑定抛出绑定异常 */ @Override @Transactional - public List deviceScanStatus(DeviceScanDTO deviceScanDTO) throws Exception { + public ReturnDTO bindLabel(LabelBindDTO labelBindDTO) throws Exception { //查询委托书和样品关联表中的各状态的样品 - List deviceScanVOList = orderSampleRelationMapper.deviceScanStatus(deviceScanDTO); - Map> deviceLabelVOMap = deviceScanVOList.stream() - .collect(Collectors.groupingBy(DeviceScanVO::getLabelBind)); - for (DeviceScanVO deviceScanVO : deviceScanVOList) { - if (deviceScanVO.getSampleId() != null) { - DictCodeUtils.convertDictCodeToName(deviceScanVO); + Long id = orderSampleRelationMapper.isBindLabel(labelBindDTO.getLabel()); + if (ObjectUtils.isEmpty(id)) { + Integer updateFlag = orderSampleRelationMapper.bindLabel(labelBindDTO); + if (updateFlag > 0) { + return ReturnUtil.success(); } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } - //实例原始标签排序的集合 - List originalLabelSortList = new ArrayList<>(); - //生成集合 - deviceScanDTO.getLabels().forEach( - label -> { - if (deviceLabelVOMap.containsKey(label)) { - originalLabelSortList.addAll(deviceLabelVOMap.get(label)); - } else { - DeviceScanVO deviceScanVO = new DeviceScanVO(); - deviceScanVO.setLabelBind(label); - originalLabelSortList.add(deviceScanVO); - } - } - ); - return originalLabelSortList; + throw new BusinessException(BusinessExceptionEnum.LABEL_ALREADY_BIND); } /** @@ -270,10 +256,10 @@ } else { dispatchVO.setFallbackState(1); } - if(TO_HANDOUT.equals(currentSegment)){ + if (TO_HANDOUT.equals(currentSegment)) { dispatchVO.setCurrentSegment(TO_ALLOCATE); } - if(MEASURE_COMPLETE.equals(currentSegment) || TO_GIVE_BACK.equals(currentSegment) || GIVE_BACK_COMPLETE.equals(currentSegment)){ + if (MEASURE_COMPLETE.equals(currentSegment) || TO_GIVE_BACK.equals(currentSegment) || GIVE_BACK_COMPLETE.equals(currentSegment)) { dispatchVO.setCurrentSegment(COMPLETE); //产品:完成状态的不展示证书出具信息 dispatchVO.setRequireCertifications(null); @@ -305,7 +291,7 @@ Boolean sendFlag = messagePushService.pushToUser(remindMessage); return ReturnUtil.success(); } - }else { + } else { throw new BusinessException(BusinessExceptionEnum.URGER_IS_EMPTY); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -341,7 +327,7 @@ //检测人不为空,且检测状态不为待分配消息催办到我的检测 if (!Objects.isNull(labExecutiveInfo.getMeasurePersonId()) && !MeasureStatusEnum.TO_ALLOCATE.equals(labExecutiveInfo.getMeasureStatus())) { MeterStaff meterStaff = meterStaffMapper.selectById(labExecutiveInfo.getMeasurePersonId()); - if(ObjectUtils.isEmpty(meterStaff)){ + if (ObjectUtils.isEmpty(meterStaff)) { throw new BusinessException(BusinessExceptionEnum.URGER_IS_EMPTY); } QueryWrapper wrapper = new QueryWrapper<>(); @@ -420,7 +406,7 @@ BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setSampleStatus(statusChangeDTO.getStatus()); //回退操作更新实验室数据状态 - if("1".equals(statusChangeDTO.getStatus())){ + if ("1".equals(statusChangeDTO.getStatus())) { updateLabExecutiveInfo(statusChangeDTO, MeasureStatusEnum.TERMINATED); } return this.orderSampleRelationMapper.update(businessOrderSampleRelation, queryWrapper); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index 9f0694f..57949ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -16,7 +16,9 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; +import org.omg.CORBA.OBJ_ADAPTER; import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -85,13 +87,13 @@ return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); } - @ApiOperation("设备标签") - @PostMapping("/scan/list") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); + @ApiOperation("标签绑定") + @PostMapping("/label/bind") + public ReturnDTO> bindLabel(@RequestBody @Valid LabelBindDTO labelBindDTO) throws Exception { + Assert.isFalse(ObjectUtils.isEmpty(labelBindDTO.getLabel()), () -> { + throw new BusinessException(BusinessExceptionEnum.LABEL_IS_EMPTY); }); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); + return bizDispatchService.bindLabel(labelBindDTO); } /** diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 080b72b..70a8091 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -85,7 +85,9 @@ USER_ID_EMPTY(2432, "用户id不能为空"), CLIENT_ID_EMPTY(2433, "用户id不能为空"), URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), - DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"); + DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), + LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), + LABEL_ALREADY_BIND(2436, "标签已经绑定"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index f7caa62..a8f1f13 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -1,6 +1,6 @@ package com.casic.missiles.enums.business; public interface FilePrintTypeEnum { - String TEST_REPORT = "1"; - String CALIBRATION_CERTIFICATE = "2"; + String TEST_REPORT = "样品内部检校证书"; + String CALIBRATION_CERTIFICATE = "自有设备内部检校证书"; } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index 4437c4d..02f2358 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -2,13 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.dispatch.LabelBindDTO; import com.casic.missiles.dto.business.labExecutive.SampleHandOutDetailResponse; import com.casic.missiles.dto.business.labExecutive.SampleHandOutListRequest; import com.casic.missiles.dto.business.labExecutive.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; -import com.casic.missiles.dto.business.dispatch.DeviceScanDTO; -import com.casic.missiles.dto.business.dispatch.DeviceScanVO; import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.business.workbench.SampleMonitorResponse; import com.casic.missiles.dto.cockpit.TrafficStatisticsResponse; @@ -36,7 +35,9 @@ Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request); - List deviceScanStatus(@Param("request") DeviceScanDTO request); + Long isBindLabel(@Param("label") String label); + + Integer bindLabel(@Param("request") LabelBindDTO labelBindDTO); SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java index e5a6e6b..7ca7c6d 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java @@ -24,6 +24,7 @@ @Select(" SELECT minio_file_name " + " FROM system_sign " + " WHERE sign_user_id =#{signUserId} " + - " AND is_del=0 ") + " AND is_del=0" + + " limit 1") String getSignFileNameById(@Param("signUserId")Long signUserId); } 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 dc0af38..530dd8d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -63,103 +63,63 @@ ) bo JOIN ( - SELECT * - FROM business_order_sample_relation bosr - WHERE 1=1 - - AND (bosr.sample_status = 2 OR bosr.sample_status = 3 OR bosr.sample_status = 4 ) - - - AND bosr.sample_status = 3 - + SELECT * + FROM business_order_sample_relation bosr + WHERE 1=1 + + AND (bosr.sample_status = 2 OR bosr.sample_status = 3 OR bosr.sample_status = 4 ) + + + AND bosr.sample_status = 3 + - - AND bosr.sample_status = #{request.sampleStatus} - + + AND bosr.sample_status = #{request.sampleStatus} + - - and id in - - #{id} - - + + and id in + + #{id} + + ) bosr ON bo.id = bosr.order_id JOIN ( - SELECT * - FROM customer_sample_info csi - WHERE is_del = 0 - - AND csi.sample_no LIKE concat('%',#{request.sampleNo},'%') - - - AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - - - AND csi.sample_belong = #{request.sampleBelong} - + SELECT * + FROM customer_sample_info csi + WHERE is_del = 0 + + AND csi.sample_no LIKE concat('%',#{request.sampleNo},'%') + + + AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + + AND csi.sample_belong = #{request.sampleBelong} + ) csi ON csi.id = bosr.sample_id ORDER BY bosr.create_time DESC - + SELECT id + FROM customer_sample_info csi + WHERE is_del = 0 + + and label_bind =#{label} + - SELECT FROM business_order bo @@ -210,7 +170,8 @@ ORDER BY bosr.create_time DESC - SELECT FROM business_order_sample_relation bosr @@ -296,7 +257,8 @@ LIMIT 1 - SELECT bosr.sample_id, csi.sample_no, csi.sample_name, bo.id AS orderId FROM business_order bo JOIN business_order_sample_relation bosr ON bo.id = bosr.order_id @@ -370,7 +332,8 @@ ) csi ON csi.id = bosr.sample_id - SELECT FROM business_order bo @@ -411,7 +374,8 @@ AND DATE_FORMAT(bosr.update_time, '%Y%m') = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m') - WITH RECURSIVE months(months,num) as ( SELECT DATE_FORMAT((CURDATE()), '%Y-%m') AS 'months' , 0 as num UNION ALL diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanDTO.java deleted file mode 100644 index c641111..0000000 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanDTO.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.casic.missiles.dto.business.dispatch; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.validation.constraints.NotNull; -import java.util.List; - -@Data -@ApiModel("设备扫描参数") -public class DeviceScanDTO { - - @NotNull - @ApiModelProperty("标签列表") - private List labels; - - @ApiModelProperty("样品状态1、待收入 2、已收入 5、待归还") - private String status; -} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/LabelBindDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/LabelBindDTO.java new file mode 100644 index 0000000..4e5dc47 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/LabelBindDTO.java @@ -0,0 +1,23 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * 标签绑定 + */ +@Data +@ApiModel("设备扫描参数") +public class LabelBindDTO { + + @NotNull + @ApiModelProperty("标签列表") + private String label; + + @NotNull + @ApiModelProperty("样品id") + private String sampleId; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index 9e6feaf..fd4979c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -216,36 +216,22 @@ /** - * 1、通过可更新状态查询前置状态 - * 2、根据前置状态对标签进行筛选 + * 1、查询是否绑定 + * 2、未绑定进行绑定,已绑定抛出绑定异常 */ @Override @Transactional - public List deviceScanStatus(DeviceScanDTO deviceScanDTO) throws Exception { + public ReturnDTO bindLabel(LabelBindDTO labelBindDTO) throws Exception { //查询委托书和样品关联表中的各状态的样品 - List deviceScanVOList = orderSampleRelationMapper.deviceScanStatus(deviceScanDTO); - Map> deviceLabelVOMap = deviceScanVOList.stream() - .collect(Collectors.groupingBy(DeviceScanVO::getLabelBind)); - for (DeviceScanVO deviceScanVO : deviceScanVOList) { - if (deviceScanVO.getSampleId() != null) { - DictCodeUtils.convertDictCodeToName(deviceScanVO); + Long id = orderSampleRelationMapper.isBindLabel(labelBindDTO.getLabel()); + if (ObjectUtils.isEmpty(id)) { + Integer updateFlag = orderSampleRelationMapper.bindLabel(labelBindDTO); + if (updateFlag > 0) { + return ReturnUtil.success(); } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } - //实例原始标签排序的集合 - List originalLabelSortList = new ArrayList<>(); - //生成集合 - deviceScanDTO.getLabels().forEach( - label -> { - if (deviceLabelVOMap.containsKey(label)) { - originalLabelSortList.addAll(deviceLabelVOMap.get(label)); - } else { - DeviceScanVO deviceScanVO = new DeviceScanVO(); - deviceScanVO.setLabelBind(label); - originalLabelSortList.add(deviceScanVO); - } - } - ); - return originalLabelSortList; + throw new BusinessException(BusinessExceptionEnum.LABEL_ALREADY_BIND); } /** @@ -270,10 +256,10 @@ } else { dispatchVO.setFallbackState(1); } - if(TO_HANDOUT.equals(currentSegment)){ + if (TO_HANDOUT.equals(currentSegment)) { dispatchVO.setCurrentSegment(TO_ALLOCATE); } - if(MEASURE_COMPLETE.equals(currentSegment) || TO_GIVE_BACK.equals(currentSegment) || GIVE_BACK_COMPLETE.equals(currentSegment)){ + if (MEASURE_COMPLETE.equals(currentSegment) || TO_GIVE_BACK.equals(currentSegment) || GIVE_BACK_COMPLETE.equals(currentSegment)) { dispatchVO.setCurrentSegment(COMPLETE); //产品:完成状态的不展示证书出具信息 dispatchVO.setRequireCertifications(null); @@ -305,7 +291,7 @@ Boolean sendFlag = messagePushService.pushToUser(remindMessage); return ReturnUtil.success(); } - }else { + } else { throw new BusinessException(BusinessExceptionEnum.URGER_IS_EMPTY); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -341,7 +327,7 @@ //检测人不为空,且检测状态不为待分配消息催办到我的检测 if (!Objects.isNull(labExecutiveInfo.getMeasurePersonId()) && !MeasureStatusEnum.TO_ALLOCATE.equals(labExecutiveInfo.getMeasureStatus())) { MeterStaff meterStaff = meterStaffMapper.selectById(labExecutiveInfo.getMeasurePersonId()); - if(ObjectUtils.isEmpty(meterStaff)){ + if (ObjectUtils.isEmpty(meterStaff)) { throw new BusinessException(BusinessExceptionEnum.URGER_IS_EMPTY); } QueryWrapper wrapper = new QueryWrapper<>(); @@ -420,7 +406,7 @@ BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setSampleStatus(statusChangeDTO.getStatus()); //回退操作更新实验室数据状态 - if("1".equals(statusChangeDTO.getStatus())){ + if ("1".equals(statusChangeDTO.getStatus())) { updateLabExecutiveInfo(statusChangeDTO, MeasureStatusEnum.TERMINATED); } return this.orderSampleRelationMapper.update(businessOrderSampleRelation, queryWrapper); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java index 5c100d6..94fa462 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java @@ -22,7 +22,7 @@ ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO); - List deviceScanStatus(DeviceScanDTO deviceScanDTO) throws Exception; + ReturnDTO bindLabel(LabelBindDTO deviceScanDTO) throws Exception; ReturnDTO remindWorker(DeviceStatusChangeDTO deviceStatusChangeDTO); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index 9f0694f..57949ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -16,7 +16,9 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; +import org.omg.CORBA.OBJ_ADAPTER; import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -85,13 +87,13 @@ return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); } - @ApiOperation("设备标签") - @PostMapping("/scan/list") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); + @ApiOperation("标签绑定") + @PostMapping("/label/bind") + public ReturnDTO> bindLabel(@RequestBody @Valid LabelBindDTO labelBindDTO) throws Exception { + Assert.isFalse(ObjectUtils.isEmpty(labelBindDTO.getLabel()), () -> { + throw new BusinessException(BusinessExceptionEnum.LABEL_IS_EMPTY); }); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); + return bizDispatchService.bindLabel(labelBindDTO); } /** diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 080b72b..70a8091 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -85,7 +85,9 @@ USER_ID_EMPTY(2432, "用户id不能为空"), CLIENT_ID_EMPTY(2433, "用户id不能为空"), URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), - DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"); + DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), + LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), + LABEL_ALREADY_BIND(2436, "标签已经绑定"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index f7caa62..a8f1f13 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -1,6 +1,6 @@ package com.casic.missiles.enums.business; public interface FilePrintTypeEnum { - String TEST_REPORT = "1"; - String CALIBRATION_CERTIFICATE = "2"; + String TEST_REPORT = "样品内部检校证书"; + String CALIBRATION_CERTIFICATE = "自有设备内部检校证书"; } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index 4437c4d..02f2358 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -2,13 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.dispatch.LabelBindDTO; import com.casic.missiles.dto.business.labExecutive.SampleHandOutDetailResponse; import com.casic.missiles.dto.business.labExecutive.SampleHandOutListRequest; import com.casic.missiles.dto.business.labExecutive.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; -import com.casic.missiles.dto.business.dispatch.DeviceScanDTO; -import com.casic.missiles.dto.business.dispatch.DeviceScanVO; import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.business.workbench.SampleMonitorResponse; import com.casic.missiles.dto.cockpit.TrafficStatisticsResponse; @@ -36,7 +35,9 @@ Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request); - List deviceScanStatus(@Param("request") DeviceScanDTO request); + Long isBindLabel(@Param("label") String label); + + Integer bindLabel(@Param("request") LabelBindDTO labelBindDTO); SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java index e5a6e6b..7ca7c6d 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java @@ -24,6 +24,7 @@ @Select(" SELECT minio_file_name " + " FROM system_sign " + " WHERE sign_user_id =#{signUserId} " + - " AND is_del=0 ") + " AND is_del=0" + + " limit 1") String getSignFileNameById(@Param("signUserId")Long signUserId); } 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 dc0af38..530dd8d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -63,103 +63,63 @@ ) bo JOIN ( - SELECT * - FROM business_order_sample_relation bosr - WHERE 1=1 - - AND (bosr.sample_status = 2 OR bosr.sample_status = 3 OR bosr.sample_status = 4 ) - - - AND bosr.sample_status = 3 - + SELECT * + FROM business_order_sample_relation bosr + WHERE 1=1 + + AND (bosr.sample_status = 2 OR bosr.sample_status = 3 OR bosr.sample_status = 4 ) + + + AND bosr.sample_status = 3 + - - AND bosr.sample_status = #{request.sampleStatus} - + + AND bosr.sample_status = #{request.sampleStatus} + - - and id in - - #{id} - - + + and id in + + #{id} + + ) bosr ON bo.id = bosr.order_id JOIN ( - SELECT * - FROM customer_sample_info csi - WHERE is_del = 0 - - AND csi.sample_no LIKE concat('%',#{request.sampleNo},'%') - - - AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - - - AND csi.sample_belong = #{request.sampleBelong} - + SELECT * + FROM customer_sample_info csi + WHERE is_del = 0 + + AND csi.sample_no LIKE concat('%',#{request.sampleNo},'%') + + + AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + + AND csi.sample_belong = #{request.sampleBelong} + ) csi ON csi.id = bosr.sample_id ORDER BY bosr.create_time DESC - + SELECT id + FROM customer_sample_info csi + WHERE is_del = 0 + + and label_bind =#{label} + - SELECT FROM business_order bo @@ -210,7 +170,8 @@ ORDER BY bosr.create_time DESC - SELECT FROM business_order_sample_relation bosr @@ -296,7 +257,8 @@ LIMIT 1 - SELECT bosr.sample_id, csi.sample_no, csi.sample_name, bo.id AS orderId FROM business_order bo JOIN business_order_sample_relation bosr ON bo.id = bosr.order_id @@ -370,7 +332,8 @@ ) csi ON csi.id = bosr.sample_id - SELECT FROM business_order bo @@ -411,7 +374,8 @@ AND DATE_FORMAT(bosr.update_time, '%Y%m') = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m') - WITH RECURSIVE months(months,num) as ( SELECT DATE_FORMAT((CURDATE()), '%Y-%m') AS 'months' , 0 as num UNION ALL diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanDTO.java deleted file mode 100644 index c641111..0000000 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanDTO.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.casic.missiles.dto.business.dispatch; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.validation.constraints.NotNull; -import java.util.List; - -@Data -@ApiModel("设备扫描参数") -public class DeviceScanDTO { - - @NotNull - @ApiModelProperty("标签列表") - private List labels; - - @ApiModelProperty("样品状态1、待收入 2、已收入 5、待归还") - private String status; -} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/LabelBindDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/LabelBindDTO.java new file mode 100644 index 0000000..4e5dc47 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/LabelBindDTO.java @@ -0,0 +1,23 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * 标签绑定 + */ +@Data +@ApiModel("设备扫描参数") +public class LabelBindDTO { + + @NotNull + @ApiModelProperty("标签列表") + private String label; + + @NotNull + @ApiModelProperty("样品id") + private String sampleId; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index 9e6feaf..fd4979c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -216,36 +216,22 @@ /** - * 1、通过可更新状态查询前置状态 - * 2、根据前置状态对标签进行筛选 + * 1、查询是否绑定 + * 2、未绑定进行绑定,已绑定抛出绑定异常 */ @Override @Transactional - public List deviceScanStatus(DeviceScanDTO deviceScanDTO) throws Exception { + public ReturnDTO bindLabel(LabelBindDTO labelBindDTO) throws Exception { //查询委托书和样品关联表中的各状态的样品 - List deviceScanVOList = orderSampleRelationMapper.deviceScanStatus(deviceScanDTO); - Map> deviceLabelVOMap = deviceScanVOList.stream() - .collect(Collectors.groupingBy(DeviceScanVO::getLabelBind)); - for (DeviceScanVO deviceScanVO : deviceScanVOList) { - if (deviceScanVO.getSampleId() != null) { - DictCodeUtils.convertDictCodeToName(deviceScanVO); + Long id = orderSampleRelationMapper.isBindLabel(labelBindDTO.getLabel()); + if (ObjectUtils.isEmpty(id)) { + Integer updateFlag = orderSampleRelationMapper.bindLabel(labelBindDTO); + if (updateFlag > 0) { + return ReturnUtil.success(); } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } - //实例原始标签排序的集合 - List originalLabelSortList = new ArrayList<>(); - //生成集合 - deviceScanDTO.getLabels().forEach( - label -> { - if (deviceLabelVOMap.containsKey(label)) { - originalLabelSortList.addAll(deviceLabelVOMap.get(label)); - } else { - DeviceScanVO deviceScanVO = new DeviceScanVO(); - deviceScanVO.setLabelBind(label); - originalLabelSortList.add(deviceScanVO); - } - } - ); - return originalLabelSortList; + throw new BusinessException(BusinessExceptionEnum.LABEL_ALREADY_BIND); } /** @@ -270,10 +256,10 @@ } else { dispatchVO.setFallbackState(1); } - if(TO_HANDOUT.equals(currentSegment)){ + if (TO_HANDOUT.equals(currentSegment)) { dispatchVO.setCurrentSegment(TO_ALLOCATE); } - if(MEASURE_COMPLETE.equals(currentSegment) || TO_GIVE_BACK.equals(currentSegment) || GIVE_BACK_COMPLETE.equals(currentSegment)){ + if (MEASURE_COMPLETE.equals(currentSegment) || TO_GIVE_BACK.equals(currentSegment) || GIVE_BACK_COMPLETE.equals(currentSegment)) { dispatchVO.setCurrentSegment(COMPLETE); //产品:完成状态的不展示证书出具信息 dispatchVO.setRequireCertifications(null); @@ -305,7 +291,7 @@ Boolean sendFlag = messagePushService.pushToUser(remindMessage); return ReturnUtil.success(); } - }else { + } else { throw new BusinessException(BusinessExceptionEnum.URGER_IS_EMPTY); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -341,7 +327,7 @@ //检测人不为空,且检测状态不为待分配消息催办到我的检测 if (!Objects.isNull(labExecutiveInfo.getMeasurePersonId()) && !MeasureStatusEnum.TO_ALLOCATE.equals(labExecutiveInfo.getMeasureStatus())) { MeterStaff meterStaff = meterStaffMapper.selectById(labExecutiveInfo.getMeasurePersonId()); - if(ObjectUtils.isEmpty(meterStaff)){ + if (ObjectUtils.isEmpty(meterStaff)) { throw new BusinessException(BusinessExceptionEnum.URGER_IS_EMPTY); } QueryWrapper wrapper = new QueryWrapper<>(); @@ -420,7 +406,7 @@ BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setSampleStatus(statusChangeDTO.getStatus()); //回退操作更新实验室数据状态 - if("1".equals(statusChangeDTO.getStatus())){ + if ("1".equals(statusChangeDTO.getStatus())) { updateLabExecutiveInfo(statusChangeDTO, MeasureStatusEnum.TERMINATED); } return this.orderSampleRelationMapper.update(businessOrderSampleRelation, queryWrapper); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java index 5c100d6..94fa462 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java @@ -22,7 +22,7 @@ ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO); - List deviceScanStatus(DeviceScanDTO deviceScanDTO) throws Exception; + ReturnDTO bindLabel(LabelBindDTO deviceScanDTO) throws Exception; ReturnDTO remindWorker(DeviceStatusChangeDTO deviceStatusChangeDTO); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java index 9037b0c..d3bd23b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java @@ -77,7 +77,7 @@ File invalidFile = new File(tempLocalFileDir); log.debug("invalid print file start delete, the file directory is {}", tempLocalFileDir); //删除运行空间下的文件 - deleteFile(invalidFile); +// deleteFile(invalidFile); return certificatePdfName; } throw new RuntimeException("the bean mapped to this certificate type is empty..."); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index 9f0694f..57949ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -16,7 +16,9 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; +import org.omg.CORBA.OBJ_ADAPTER; import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -85,13 +87,13 @@ return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); } - @ApiOperation("设备标签") - @PostMapping("/scan/list") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); + @ApiOperation("标签绑定") + @PostMapping("/label/bind") + public ReturnDTO> bindLabel(@RequestBody @Valid LabelBindDTO labelBindDTO) throws Exception { + Assert.isFalse(ObjectUtils.isEmpty(labelBindDTO.getLabel()), () -> { + throw new BusinessException(BusinessExceptionEnum.LABEL_IS_EMPTY); }); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); + return bizDispatchService.bindLabel(labelBindDTO); } /** diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 080b72b..70a8091 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -85,7 +85,9 @@ USER_ID_EMPTY(2432, "用户id不能为空"), CLIENT_ID_EMPTY(2433, "用户id不能为空"), URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), - DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"); + DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), + LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), + LABEL_ALREADY_BIND(2436, "标签已经绑定"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index f7caa62..a8f1f13 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -1,6 +1,6 @@ package com.casic.missiles.enums.business; public interface FilePrintTypeEnum { - String TEST_REPORT = "1"; - String CALIBRATION_CERTIFICATE = "2"; + String TEST_REPORT = "样品内部检校证书"; + String CALIBRATION_CERTIFICATE = "自有设备内部检校证书"; } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index 4437c4d..02f2358 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -2,13 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.dispatch.LabelBindDTO; import com.casic.missiles.dto.business.labExecutive.SampleHandOutDetailResponse; import com.casic.missiles.dto.business.labExecutive.SampleHandOutListRequest; import com.casic.missiles.dto.business.labExecutive.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; -import com.casic.missiles.dto.business.dispatch.DeviceScanDTO; -import com.casic.missiles.dto.business.dispatch.DeviceScanVO; import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.business.workbench.SampleMonitorResponse; import com.casic.missiles.dto.cockpit.TrafficStatisticsResponse; @@ -36,7 +35,9 @@ Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request); - List deviceScanStatus(@Param("request") DeviceScanDTO request); + Long isBindLabel(@Param("label") String label); + + Integer bindLabel(@Param("request") LabelBindDTO labelBindDTO); SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java index e5a6e6b..7ca7c6d 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java @@ -24,6 +24,7 @@ @Select(" SELECT minio_file_name " + " FROM system_sign " + " WHERE sign_user_id =#{signUserId} " + - " AND is_del=0 ") + " AND is_del=0" + + " limit 1") String getSignFileNameById(@Param("signUserId")Long signUserId); } 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 dc0af38..530dd8d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -63,103 +63,63 @@ ) bo JOIN ( - SELECT * - FROM business_order_sample_relation bosr - WHERE 1=1 - - AND (bosr.sample_status = 2 OR bosr.sample_status = 3 OR bosr.sample_status = 4 ) - - - AND bosr.sample_status = 3 - + SELECT * + FROM business_order_sample_relation bosr + WHERE 1=1 + + AND (bosr.sample_status = 2 OR bosr.sample_status = 3 OR bosr.sample_status = 4 ) + + + AND bosr.sample_status = 3 + - - AND bosr.sample_status = #{request.sampleStatus} - + + AND bosr.sample_status = #{request.sampleStatus} + - - and id in - - #{id} - - + + and id in + + #{id} + + ) bosr ON bo.id = bosr.order_id JOIN ( - SELECT * - FROM customer_sample_info csi - WHERE is_del = 0 - - AND csi.sample_no LIKE concat('%',#{request.sampleNo},'%') - - - AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - - - AND csi.sample_belong = #{request.sampleBelong} - + SELECT * + FROM customer_sample_info csi + WHERE is_del = 0 + + AND csi.sample_no LIKE concat('%',#{request.sampleNo},'%') + + + AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + + AND csi.sample_belong = #{request.sampleBelong} + ) csi ON csi.id = bosr.sample_id ORDER BY bosr.create_time DESC - + SELECT id + FROM customer_sample_info csi + WHERE is_del = 0 + + and label_bind =#{label} + - SELECT FROM business_order bo @@ -210,7 +170,8 @@ ORDER BY bosr.create_time DESC - SELECT FROM business_order_sample_relation bosr @@ -296,7 +257,8 @@ LIMIT 1 - SELECT bosr.sample_id, csi.sample_no, csi.sample_name, bo.id AS orderId FROM business_order bo JOIN business_order_sample_relation bosr ON bo.id = bosr.order_id @@ -370,7 +332,8 @@ ) csi ON csi.id = bosr.sample_id - SELECT FROM business_order bo @@ -411,7 +374,8 @@ AND DATE_FORMAT(bosr.update_time, '%Y%m') = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m') - WITH RECURSIVE months(months,num) as ( SELECT DATE_FORMAT((CURDATE()), '%Y-%m') AS 'months' , 0 as num UNION ALL diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanDTO.java deleted file mode 100644 index c641111..0000000 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanDTO.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.casic.missiles.dto.business.dispatch; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.validation.constraints.NotNull; -import java.util.List; - -@Data -@ApiModel("设备扫描参数") -public class DeviceScanDTO { - - @NotNull - @ApiModelProperty("标签列表") - private List labels; - - @ApiModelProperty("样品状态1、待收入 2、已收入 5、待归还") - private String status; -} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/LabelBindDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/LabelBindDTO.java new file mode 100644 index 0000000..4e5dc47 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/LabelBindDTO.java @@ -0,0 +1,23 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * 标签绑定 + */ +@Data +@ApiModel("设备扫描参数") +public class LabelBindDTO { + + @NotNull + @ApiModelProperty("标签列表") + private String label; + + @NotNull + @ApiModelProperty("样品id") + private String sampleId; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index 9e6feaf..fd4979c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -216,36 +216,22 @@ /** - * 1、通过可更新状态查询前置状态 - * 2、根据前置状态对标签进行筛选 + * 1、查询是否绑定 + * 2、未绑定进行绑定,已绑定抛出绑定异常 */ @Override @Transactional - public List deviceScanStatus(DeviceScanDTO deviceScanDTO) throws Exception { + public ReturnDTO bindLabel(LabelBindDTO labelBindDTO) throws Exception { //查询委托书和样品关联表中的各状态的样品 - List deviceScanVOList = orderSampleRelationMapper.deviceScanStatus(deviceScanDTO); - Map> deviceLabelVOMap = deviceScanVOList.stream() - .collect(Collectors.groupingBy(DeviceScanVO::getLabelBind)); - for (DeviceScanVO deviceScanVO : deviceScanVOList) { - if (deviceScanVO.getSampleId() != null) { - DictCodeUtils.convertDictCodeToName(deviceScanVO); + Long id = orderSampleRelationMapper.isBindLabel(labelBindDTO.getLabel()); + if (ObjectUtils.isEmpty(id)) { + Integer updateFlag = orderSampleRelationMapper.bindLabel(labelBindDTO); + if (updateFlag > 0) { + return ReturnUtil.success(); } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } - //实例原始标签排序的集合 - List originalLabelSortList = new ArrayList<>(); - //生成集合 - deviceScanDTO.getLabels().forEach( - label -> { - if (deviceLabelVOMap.containsKey(label)) { - originalLabelSortList.addAll(deviceLabelVOMap.get(label)); - } else { - DeviceScanVO deviceScanVO = new DeviceScanVO(); - deviceScanVO.setLabelBind(label); - originalLabelSortList.add(deviceScanVO); - } - } - ); - return originalLabelSortList; + throw new BusinessException(BusinessExceptionEnum.LABEL_ALREADY_BIND); } /** @@ -270,10 +256,10 @@ } else { dispatchVO.setFallbackState(1); } - if(TO_HANDOUT.equals(currentSegment)){ + if (TO_HANDOUT.equals(currentSegment)) { dispatchVO.setCurrentSegment(TO_ALLOCATE); } - if(MEASURE_COMPLETE.equals(currentSegment) || TO_GIVE_BACK.equals(currentSegment) || GIVE_BACK_COMPLETE.equals(currentSegment)){ + if (MEASURE_COMPLETE.equals(currentSegment) || TO_GIVE_BACK.equals(currentSegment) || GIVE_BACK_COMPLETE.equals(currentSegment)) { dispatchVO.setCurrentSegment(COMPLETE); //产品:完成状态的不展示证书出具信息 dispatchVO.setRequireCertifications(null); @@ -305,7 +291,7 @@ Boolean sendFlag = messagePushService.pushToUser(remindMessage); return ReturnUtil.success(); } - }else { + } else { throw new BusinessException(BusinessExceptionEnum.URGER_IS_EMPTY); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -341,7 +327,7 @@ //检测人不为空,且检测状态不为待分配消息催办到我的检测 if (!Objects.isNull(labExecutiveInfo.getMeasurePersonId()) && !MeasureStatusEnum.TO_ALLOCATE.equals(labExecutiveInfo.getMeasureStatus())) { MeterStaff meterStaff = meterStaffMapper.selectById(labExecutiveInfo.getMeasurePersonId()); - if(ObjectUtils.isEmpty(meterStaff)){ + if (ObjectUtils.isEmpty(meterStaff)) { throw new BusinessException(BusinessExceptionEnum.URGER_IS_EMPTY); } QueryWrapper wrapper = new QueryWrapper<>(); @@ -420,7 +406,7 @@ BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setSampleStatus(statusChangeDTO.getStatus()); //回退操作更新实验室数据状态 - if("1".equals(statusChangeDTO.getStatus())){ + if ("1".equals(statusChangeDTO.getStatus())) { updateLabExecutiveInfo(statusChangeDTO, MeasureStatusEnum.TERMINATED); } return this.orderSampleRelationMapper.update(businessOrderSampleRelation, queryWrapper); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java index 5c100d6..94fa462 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java @@ -22,7 +22,7 @@ ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO); - List deviceScanStatus(DeviceScanDTO deviceScanDTO) throws Exception; + ReturnDTO bindLabel(LabelBindDTO deviceScanDTO) throws Exception; ReturnDTO remindWorker(DeviceStatusChangeDTO deviceStatusChangeDTO); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java index 9037b0c..d3bd23b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java @@ -77,7 +77,7 @@ File invalidFile = new File(tempLocalFileDir); log.debug("invalid print file start delete, the file directory is {}", tempLocalFileDir); //删除运行空间下的文件 - deleteFile(invalidFile); +// deleteFile(invalidFile); return certificatePdfName; } throw new RuntimeException("the bean mapped to this certificate type is empty..."); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CalibrationPrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CalibrationPrintFileData.java index eb28827..bc3d751 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CalibrationPrintFileData.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CalibrationPrintFileData.java @@ -51,7 +51,7 @@ @Override protected void customizedSignNamesParamCreator() { - keyParamList = Arrays.asList("发起人", "审核人", "批准人"); + keyParamList = Arrays.asList("校准人", "核验人", "批准人" ); customizedSignNames = Arrays.asList("校准人", "核验人", "批准人" ); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java index 9f0694f..57949ea 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -16,7 +16,9 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; +import org.omg.CORBA.OBJ_ADAPTER; import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -85,13 +87,13 @@ return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); } - @ApiOperation("设备标签") - @PostMapping("/scan/list") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); + @ApiOperation("标签绑定") + @PostMapping("/label/bind") + public ReturnDTO> bindLabel(@RequestBody @Valid LabelBindDTO labelBindDTO) throws Exception { + Assert.isFalse(ObjectUtils.isEmpty(labelBindDTO.getLabel()), () -> { + throw new BusinessException(BusinessExceptionEnum.LABEL_IS_EMPTY); }); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); + return bizDispatchService.bindLabel(labelBindDTO); } /** diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index 080b72b..70a8091 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -85,7 +85,9 @@ USER_ID_EMPTY(2432, "用户id不能为空"), CLIENT_ID_EMPTY(2433, "用户id不能为空"), URGER_IS_EMPTY(2434, "催办人不存在或被删除,无法催办"), - DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"); + DEVICE_USER_OR_EMPTY(2434, "设备备删除或者催办人不存在,无法催办"), + LABEL_IS_EMPTY(2435, "标签字段为空,无法绑定"), + LABEL_ALREADY_BIND(2436, "标签已经绑定"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index f7caa62..a8f1f13 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -1,6 +1,6 @@ package com.casic.missiles.enums.business; public interface FilePrintTypeEnum { - String TEST_REPORT = "1"; - String CALIBRATION_CERTIFICATE = "2"; + String TEST_REPORT = "样品内部检校证书"; + String CALIBRATION_CERTIFICATE = "自有设备内部检校证书"; } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index 4437c4d..02f2358 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -2,13 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.dispatch.LabelBindDTO; import com.casic.missiles.dto.business.labExecutive.SampleHandOutDetailResponse; import com.casic.missiles.dto.business.labExecutive.SampleHandOutListRequest; import com.casic.missiles.dto.business.labExecutive.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; -import com.casic.missiles.dto.business.dispatch.DeviceScanDTO; -import com.casic.missiles.dto.business.dispatch.DeviceScanVO; import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.business.workbench.SampleMonitorResponse; import com.casic.missiles.dto.cockpit.TrafficStatisticsResponse; @@ -36,7 +35,9 @@ Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request); - List deviceScanStatus(@Param("request") DeviceScanDTO request); + Long isBindLabel(@Param("label") String label); + + Integer bindLabel(@Param("request") LabelBindDTO labelBindDTO); SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java index e5a6e6b..7ca7c6d 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/sys/PrintFileRegisterMapper.java @@ -24,6 +24,7 @@ @Select(" SELECT minio_file_name " + " FROM system_sign " + " WHERE sign_user_id =#{signUserId} " + - " AND is_del=0 ") + " AND is_del=0" + + " limit 1") String getSignFileNameById(@Param("signUserId")Long signUserId); } 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 dc0af38..530dd8d 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -63,103 +63,63 @@ ) bo JOIN ( - SELECT * - FROM business_order_sample_relation bosr - WHERE 1=1 - - AND (bosr.sample_status = 2 OR bosr.sample_status = 3 OR bosr.sample_status = 4 ) - - - AND bosr.sample_status = 3 - + SELECT * + FROM business_order_sample_relation bosr + WHERE 1=1 + + AND (bosr.sample_status = 2 OR bosr.sample_status = 3 OR bosr.sample_status = 4 ) + + + AND bosr.sample_status = 3 + - - AND bosr.sample_status = #{request.sampleStatus} - + + AND bosr.sample_status = #{request.sampleStatus} + - - and id in - - #{id} - - + + and id in + + #{id} + + ) bosr ON bo.id = bosr.order_id JOIN ( - SELECT * - FROM customer_sample_info csi - WHERE is_del = 0 - - AND csi.sample_no LIKE concat('%',#{request.sampleNo},'%') - - - AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') - - - AND csi.sample_belong = #{request.sampleBelong} - + SELECT * + FROM customer_sample_info csi + WHERE is_del = 0 + + AND csi.sample_no LIKE concat('%',#{request.sampleNo},'%') + + + AND csi.sample_name LIKE concat('%',#{request.sampleName},'%') + + + AND csi.sample_belong = #{request.sampleBelong} + ) csi ON csi.id = bosr.sample_id ORDER BY bosr.create_time DESC - + SELECT id + FROM customer_sample_info csi + WHERE is_del = 0 + + and label_bind =#{label} + - SELECT FROM business_order bo @@ -210,7 +170,8 @@ ORDER BY bosr.create_time DESC - SELECT FROM business_order_sample_relation bosr @@ -296,7 +257,8 @@ LIMIT 1 - SELECT bosr.sample_id, csi.sample_no, csi.sample_name, bo.id AS orderId FROM business_order bo JOIN business_order_sample_relation bosr ON bo.id = bosr.order_id @@ -370,7 +332,8 @@ ) csi ON csi.id = bosr.sample_id - SELECT FROM business_order bo @@ -411,7 +374,8 @@ AND DATE_FORMAT(bosr.update_time, '%Y%m') = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m') - WITH RECURSIVE months(months,num) as ( SELECT DATE_FORMAT((CURDATE()), '%Y-%m') AS 'months' , 0 as num UNION ALL diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanDTO.java deleted file mode 100644 index c641111..0000000 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanDTO.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.casic.missiles.dto.business.dispatch; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.validation.constraints.NotNull; -import java.util.List; - -@Data -@ApiModel("设备扫描参数") -public class DeviceScanDTO { - - @NotNull - @ApiModelProperty("标签列表") - private List labels; - - @ApiModelProperty("样品状态1、待收入 2、已收入 5、待归还") - private String status; -} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/LabelBindDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/LabelBindDTO.java new file mode 100644 index 0000000..4e5dc47 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/LabelBindDTO.java @@ -0,0 +1,23 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * 标签绑定 + */ +@Data +@ApiModel("设备扫描参数") +public class LabelBindDTO { + + @NotNull + @ApiModelProperty("标签列表") + private String label; + + @NotNull + @ApiModelProperty("样品id") + private String sampleId; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java index 9e6feaf..fd4979c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -216,36 +216,22 @@ /** - * 1、通过可更新状态查询前置状态 - * 2、根据前置状态对标签进行筛选 + * 1、查询是否绑定 + * 2、未绑定进行绑定,已绑定抛出绑定异常 */ @Override @Transactional - public List deviceScanStatus(DeviceScanDTO deviceScanDTO) throws Exception { + public ReturnDTO bindLabel(LabelBindDTO labelBindDTO) throws Exception { //查询委托书和样品关联表中的各状态的样品 - List deviceScanVOList = orderSampleRelationMapper.deviceScanStatus(deviceScanDTO); - Map> deviceLabelVOMap = deviceScanVOList.stream() - .collect(Collectors.groupingBy(DeviceScanVO::getLabelBind)); - for (DeviceScanVO deviceScanVO : deviceScanVOList) { - if (deviceScanVO.getSampleId() != null) { - DictCodeUtils.convertDictCodeToName(deviceScanVO); + Long id = orderSampleRelationMapper.isBindLabel(labelBindDTO.getLabel()); + if (ObjectUtils.isEmpty(id)) { + Integer updateFlag = orderSampleRelationMapper.bindLabel(labelBindDTO); + if (updateFlag > 0) { + return ReturnUtil.success(); } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } - //实例原始标签排序的集合 - List originalLabelSortList = new ArrayList<>(); - //生成集合 - deviceScanDTO.getLabels().forEach( - label -> { - if (deviceLabelVOMap.containsKey(label)) { - originalLabelSortList.addAll(deviceLabelVOMap.get(label)); - } else { - DeviceScanVO deviceScanVO = new DeviceScanVO(); - deviceScanVO.setLabelBind(label); - originalLabelSortList.add(deviceScanVO); - } - } - ); - return originalLabelSortList; + throw new BusinessException(BusinessExceptionEnum.LABEL_ALREADY_BIND); } /** @@ -270,10 +256,10 @@ } else { dispatchVO.setFallbackState(1); } - if(TO_HANDOUT.equals(currentSegment)){ + if (TO_HANDOUT.equals(currentSegment)) { dispatchVO.setCurrentSegment(TO_ALLOCATE); } - if(MEASURE_COMPLETE.equals(currentSegment) || TO_GIVE_BACK.equals(currentSegment) || GIVE_BACK_COMPLETE.equals(currentSegment)){ + if (MEASURE_COMPLETE.equals(currentSegment) || TO_GIVE_BACK.equals(currentSegment) || GIVE_BACK_COMPLETE.equals(currentSegment)) { dispatchVO.setCurrentSegment(COMPLETE); //产品:完成状态的不展示证书出具信息 dispatchVO.setRequireCertifications(null); @@ -305,7 +291,7 @@ Boolean sendFlag = messagePushService.pushToUser(remindMessage); return ReturnUtil.success(); } - }else { + } else { throw new BusinessException(BusinessExceptionEnum.URGER_IS_EMPTY); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -341,7 +327,7 @@ //检测人不为空,且检测状态不为待分配消息催办到我的检测 if (!Objects.isNull(labExecutiveInfo.getMeasurePersonId()) && !MeasureStatusEnum.TO_ALLOCATE.equals(labExecutiveInfo.getMeasureStatus())) { MeterStaff meterStaff = meterStaffMapper.selectById(labExecutiveInfo.getMeasurePersonId()); - if(ObjectUtils.isEmpty(meterStaff)){ + if (ObjectUtils.isEmpty(meterStaff)) { throw new BusinessException(BusinessExceptionEnum.URGER_IS_EMPTY); } QueryWrapper wrapper = new QueryWrapper<>(); @@ -420,7 +406,7 @@ BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setSampleStatus(statusChangeDTO.getStatus()); //回退操作更新实验室数据状态 - if("1".equals(statusChangeDTO.getStatus())){ + if ("1".equals(statusChangeDTO.getStatus())) { updateLabExecutiveInfo(statusChangeDTO, MeasureStatusEnum.TERMINATED); } return this.orderSampleRelationMapper.update(businessOrderSampleRelation, queryWrapper); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java index 5c100d6..94fa462 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java @@ -22,7 +22,7 @@ ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO); - List deviceScanStatus(DeviceScanDTO deviceScanDTO) throws Exception; + ReturnDTO bindLabel(LabelBindDTO deviceScanDTO) throws Exception; ReturnDTO remindWorker(DeviceStatusChangeDTO deviceStatusChangeDTO); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java index 9037b0c..d3bd23b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/PrintFileRegister.java @@ -77,7 +77,7 @@ File invalidFile = new File(tempLocalFileDir); log.debug("invalid print file start delete, the file directory is {}", tempLocalFileDir); //删除运行空间下的文件 - deleteFile(invalidFile); +// deleteFile(invalidFile); return certificatePdfName; } throw new RuntimeException("the bean mapped to this certificate type is empty..."); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CalibrationPrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CalibrationPrintFileData.java index eb28827..bc3d751 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CalibrationPrintFileData.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/CalibrationPrintFileData.java @@ -51,7 +51,7 @@ @Override protected void customizedSignNamesParamCreator() { - keyParamList = Arrays.asList("发起人", "审核人", "批准人"); + keyParamList = Arrays.asList("校准人", "核验人", "批准人" ); customizedSignNames = Arrays.asList("校准人", "核验人", "批准人" ); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/TestReportPrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/TestReportPrintFileData.java index 4033a12..fda19dd 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/TestReportPrintFileData.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/certificate/TestReportPrintFileData.java @@ -11,6 +11,7 @@ import org.springframework.stereotype.Component; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -50,6 +51,11 @@ return filePrintRegister; } + @Override + protected void customizedSignNamesParamCreator() { + keyParamList = Arrays.asList("发起人", "审核人", "批准人" ); + customizedSignNames = Arrays.asList("校准人", "发证单位", "批准人" ); + } /** * 定制化电子签章文件 *