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 2eadcdb..66b9724 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 @@ -11,11 +11,13 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessDispatchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -24,6 +26,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.Collections; +import java.util.List; import java.util.Objects; /** @@ -43,7 +46,10 @@ */ @ApiOperation("设备列表-分页") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request){ + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(bizDispatchService.listPage(page, request))); } @@ -71,15 +77,21 @@ return bizDispatchService.statusChange(deviceReceiveDTO); } + @ApiOperation("设备批量改变状态") + @PostMapping("/status/batchChange") + public ReturnDTO statusBatchChange(@RequestBody @Valid DeviceBatchStatusChangeDTO deviceBatchStatusChangeDTO) { + return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); + } + @ApiOperation("设备标签") - @PostMapping("/scan/listPage") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO)throws Exception { + @PostMapping("/scan/list") + public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Page page = PageFactory.defaultPage(); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(page,deviceScanDTO)); + return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); } + /** * 设备终止,,同时要进行终止原因的回填 */ @@ -93,7 +105,6 @@ } - /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ 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 2eadcdb..66b9724 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 @@ -11,11 +11,13 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessDispatchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -24,6 +26,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.Collections; +import java.util.List; import java.util.Objects; /** @@ -43,7 +46,10 @@ */ @ApiOperation("设备列表-分页") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request){ + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(bizDispatchService.listPage(page, request))); } @@ -71,15 +77,21 @@ return bizDispatchService.statusChange(deviceReceiveDTO); } + @ApiOperation("设备批量改变状态") + @PostMapping("/status/batchChange") + public ReturnDTO statusBatchChange(@RequestBody @Valid DeviceBatchStatusChangeDTO deviceBatchStatusChangeDTO) { + return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); + } + @ApiOperation("设备标签") - @PostMapping("/scan/listPage") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO)throws Exception { + @PostMapping("/scan/list") + public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Page page = PageFactory.defaultPage(); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(page,deviceScanDTO)); + return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); } + /** * 设备终止,,同时要进行终止原因的回填 */ @@ -93,7 +105,6 @@ } - /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index 227ca04..825c888 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -14,7 +14,6 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.mapper.business.BusinessDealRecordMapper; import com.casic.missiles.model.business.BusinessDealRecord; import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; 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 2eadcdb..66b9724 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 @@ -11,11 +11,13 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessDispatchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -24,6 +26,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.Collections; +import java.util.List; import java.util.Objects; /** @@ -43,7 +46,10 @@ */ @ApiOperation("设备列表-分页") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request){ + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(bizDispatchService.listPage(page, request))); } @@ -71,15 +77,21 @@ return bizDispatchService.statusChange(deviceReceiveDTO); } + @ApiOperation("设备批量改变状态") + @PostMapping("/status/batchChange") + public ReturnDTO statusBatchChange(@RequestBody @Valid DeviceBatchStatusChangeDTO deviceBatchStatusChangeDTO) { + return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); + } + @ApiOperation("设备标签") - @PostMapping("/scan/listPage") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO)throws Exception { + @PostMapping("/scan/list") + public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Page page = PageFactory.defaultPage(); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(page,deviceScanDTO)); + return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); } + /** * 设备终止,,同时要进行终止原因的回填 */ @@ -93,7 +105,6 @@ } - /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index 227ca04..825c888 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -14,7 +14,6 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.mapper.business.BusinessDealRecordMapper; import com.casic.missiles.model.business.BusinessDealRecord; import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; 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 5681bd6..d06ccd2 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 @@ -30,7 +30,7 @@ Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request); - Page deviceScanStatus(@Param("page") Page page, @Param("request") DeviceScanDTO request); + List deviceScanStatus(@Param("request") DeviceScanDTO request); 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 2eadcdb..66b9724 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 @@ -11,11 +11,13 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessDispatchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -24,6 +26,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.Collections; +import java.util.List; import java.util.Objects; /** @@ -43,7 +46,10 @@ */ @ApiOperation("设备列表-分页") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request){ + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(bizDispatchService.listPage(page, request))); } @@ -71,15 +77,21 @@ return bizDispatchService.statusChange(deviceReceiveDTO); } + @ApiOperation("设备批量改变状态") + @PostMapping("/status/batchChange") + public ReturnDTO statusBatchChange(@RequestBody @Valid DeviceBatchStatusChangeDTO deviceBatchStatusChangeDTO) { + return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); + } + @ApiOperation("设备标签") - @PostMapping("/scan/listPage") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO)throws Exception { + @PostMapping("/scan/list") + public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Page page = PageFactory.defaultPage(); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(page,deviceScanDTO)); + return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); } + /** * 设备终止,,同时要进行终止原因的回填 */ @@ -93,7 +105,6 @@ } - /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index 227ca04..825c888 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -14,7 +14,6 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.mapper.business.BusinessDealRecordMapper; import com.casic.missiles.model.business.BusinessDealRecord; import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; 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 5681bd6..d06ccd2 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 @@ -30,7 +30,7 @@ Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request); - Page deviceScanStatus(@Param("page") Page page, @Param("request") DeviceScanDTO request); + List deviceScanStatus(@Param("request") DeviceScanDTO request); SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); 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 223d914..37198fe 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,12 +12,14 @@ - id, order_id, sample_id, sample_status + id + , order_id, sample_id, sample_status - csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, + csi.id + AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status @@ -30,102 +32,129 @@ - SELECT sampleNo,sampleName,sampleModel,manufacturingNo,appendixDescn,id,remark,sampleId,measureContent,orderId - FROM - ( - SELECT sample_no AS "sampleNo",sample_name AS "sampleName",sample_model AS "sampleModel",manufacturing_no AS "manufacturingNo",appendix_descn AS "appendixDescn",id,remark - FROM customer_sample_info - WHERE is_del=0 AND id=#{sampleId} - )bo - JOIN ( - SELECT measure_content AS "measureContent",sample_id AS "sampleId",order_id AS "orderId" - FROM business_order_sample_relation - WHERE order_id=#{orderId} - AND sample_id=#{sampleId} - )bosr ON bosr.sampleId=bo.id + SELECT sampleNo, + sampleName, + sampleModel, + manufacturingNo, + appendixDescn, + id, + remark, + sampleId, + measureContent, + orderId + FROM (SELECT sample_no AS "sampleNo", + sample_name AS "sampleName", + sample_model AS "sampleModel", + manufacturing_no AS "manufacturingNo", + appendix_descn AS "appendixDescn", + id, + remark + FROM customer_sample_info + WHERE is_del = 0 + AND id = #{sampleId}) bo + JOIN (SELECT measure_content AS "measureContent", sample_id AS "sampleId", order_id AS "orderId" + FROM business_order_sample_relation + WHERE order_id = #{orderId} + AND sample_id = #{sampleId}) bosr ON bosr.sampleId = bo.id 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 2eadcdb..66b9724 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 @@ -11,11 +11,13 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessDispatchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -24,6 +26,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.Collections; +import java.util.List; import java.util.Objects; /** @@ -43,7 +46,10 @@ */ @ApiOperation("设备列表-分页") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request){ + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(bizDispatchService.listPage(page, request))); } @@ -71,15 +77,21 @@ return bizDispatchService.statusChange(deviceReceiveDTO); } + @ApiOperation("设备批量改变状态") + @PostMapping("/status/batchChange") + public ReturnDTO statusBatchChange(@RequestBody @Valid DeviceBatchStatusChangeDTO deviceBatchStatusChangeDTO) { + return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); + } + @ApiOperation("设备标签") - @PostMapping("/scan/listPage") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO)throws Exception { + @PostMapping("/scan/list") + public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Page page = PageFactory.defaultPage(); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(page,deviceScanDTO)); + return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); } + /** * 设备终止,,同时要进行终止原因的回填 */ @@ -93,7 +105,6 @@ } - /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index 227ca04..825c888 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -14,7 +14,6 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.mapper.business.BusinessDealRecordMapper; import com.casic.missiles.model.business.BusinessDealRecord; import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; 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 5681bd6..d06ccd2 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 @@ -30,7 +30,7 @@ Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request); - Page deviceScanStatus(@Param("page") Page page, @Param("request") DeviceScanDTO request); + List deviceScanStatus(@Param("request") DeviceScanDTO request); SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); 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 223d914..37198fe 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,12 +12,14 @@ - id, order_id, sample_id, sample_status + id + , order_id, sample_id, sample_status - csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, + csi.id + AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status @@ -30,102 +32,129 @@ - SELECT sampleNo,sampleName,sampleModel,manufacturingNo,appendixDescn,id,remark,sampleId,measureContent,orderId - FROM - ( - SELECT sample_no AS "sampleNo",sample_name AS "sampleName",sample_model AS "sampleModel",manufacturing_no AS "manufacturingNo",appendix_descn AS "appendixDescn",id,remark - FROM customer_sample_info - WHERE is_del=0 AND id=#{sampleId} - )bo - JOIN ( - SELECT measure_content AS "measureContent",sample_id AS "sampleId",order_id AS "orderId" - FROM business_order_sample_relation - WHERE order_id=#{orderId} - AND sample_id=#{sampleId} - )bosr ON bosr.sampleId=bo.id + SELECT sampleNo, + sampleName, + sampleModel, + manufacturingNo, + appendixDescn, + id, + remark, + sampleId, + measureContent, + orderId + FROM (SELECT sample_no AS "sampleNo", + sample_name AS "sampleName", + sample_model AS "sampleModel", + manufacturing_no AS "manufacturingNo", + appendix_descn AS "appendixDescn", + id, + remark + FROM customer_sample_info + WHERE is_del = 0 + AND id = #{sampleId}) bo + JOIN (SELECT measure_content AS "measureContent", sample_id AS "sampleId", order_id AS "orderId" + FROM business_order_sample_relation + WHERE order_id = #{orderId} + AND sample_id = #{sampleId}) bosr ON bosr.sampleId = bo.id diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceBatchStatusChangeDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceBatchStatusChangeDTO.java new file mode 100644 index 0000000..8362c94 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceBatchStatusChangeDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author cz + */ +@Data +@ApiModel("设备批量更新状态请求参数") +public class DeviceBatchStatusChangeDTO { + + @ApiModelProperty(value = "委托书样品关系列表", dataType = "list") + private List deviceStatusChangeDTOS; + + @ApiModelProperty(value = "状态变更(无需检测状态7,前进状态2、5、6,回退状态1,2,5)", dataType = "String") + private String status; + + @ApiModelProperty(value = "操作原因(终止操作必填,其他无需填写)", dataType = "String") + private String reason; +} 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 2eadcdb..66b9724 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 @@ -11,11 +11,13 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessDispatchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -24,6 +26,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.Collections; +import java.util.List; import java.util.Objects; /** @@ -43,7 +46,10 @@ */ @ApiOperation("设备列表-分页") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request){ + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(bizDispatchService.listPage(page, request))); } @@ -71,15 +77,21 @@ return bizDispatchService.statusChange(deviceReceiveDTO); } + @ApiOperation("设备批量改变状态") + @PostMapping("/status/batchChange") + public ReturnDTO statusBatchChange(@RequestBody @Valid DeviceBatchStatusChangeDTO deviceBatchStatusChangeDTO) { + return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); + } + @ApiOperation("设备标签") - @PostMapping("/scan/listPage") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO)throws Exception { + @PostMapping("/scan/list") + public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Page page = PageFactory.defaultPage(); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(page,deviceScanDTO)); + return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); } + /** * 设备终止,,同时要进行终止原因的回填 */ @@ -93,7 +105,6 @@ } - /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index 227ca04..825c888 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -14,7 +14,6 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.mapper.business.BusinessDealRecordMapper; import com.casic.missiles.model.business.BusinessDealRecord; import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; 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 5681bd6..d06ccd2 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 @@ -30,7 +30,7 @@ Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request); - Page deviceScanStatus(@Param("page") Page page, @Param("request") DeviceScanDTO request); + List deviceScanStatus(@Param("request") DeviceScanDTO request); SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); 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 223d914..37198fe 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,12 +12,14 @@ - id, order_id, sample_id, sample_status + id + , order_id, sample_id, sample_status - csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, + csi.id + AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status @@ -30,102 +32,129 @@ - SELECT sampleNo,sampleName,sampleModel,manufacturingNo,appendixDescn,id,remark,sampleId,measureContent,orderId - FROM - ( - SELECT sample_no AS "sampleNo",sample_name AS "sampleName",sample_model AS "sampleModel",manufacturing_no AS "manufacturingNo",appendix_descn AS "appendixDescn",id,remark - FROM customer_sample_info - WHERE is_del=0 AND id=#{sampleId} - )bo - JOIN ( - SELECT measure_content AS "measureContent",sample_id AS "sampleId",order_id AS "orderId" - FROM business_order_sample_relation - WHERE order_id=#{orderId} - AND sample_id=#{sampleId} - )bosr ON bosr.sampleId=bo.id + SELECT sampleNo, + sampleName, + sampleModel, + manufacturingNo, + appendixDescn, + id, + remark, + sampleId, + measureContent, + orderId + FROM (SELECT sample_no AS "sampleNo", + sample_name AS "sampleName", + sample_model AS "sampleModel", + manufacturing_no AS "manufacturingNo", + appendix_descn AS "appendixDescn", + id, + remark + FROM customer_sample_info + WHERE is_del = 0 + AND id = #{sampleId}) bo + JOIN (SELECT measure_content AS "measureContent", sample_id AS "sampleId", order_id AS "orderId" + FROM business_order_sample_relation + WHERE order_id = #{orderId} + AND sample_id = #{sampleId}) bosr ON bosr.sampleId = bo.id diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceBatchStatusChangeDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceBatchStatusChangeDTO.java new file mode 100644 index 0000000..8362c94 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceBatchStatusChangeDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author cz + */ +@Data +@ApiModel("设备批量更新状态请求参数") +public class DeviceBatchStatusChangeDTO { + + @ApiModelProperty(value = "委托书样品关系列表", dataType = "list") + private List deviceStatusChangeDTOS; + + @ApiModelProperty(value = "状态变更(无需检测状态7,前进状态2、5、6,回退状态1,2,5)", dataType = "String") + private String status; + + @ApiModelProperty(value = "操作原因(终止操作必填,其他无需填写)", dataType = "String") + private String reason; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 3cc3f82..51b6500 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -5,6 +5,7 @@ import lombok.Data; import lombok.NonNull; +import javax.validation.constraints.NotNull; import java.util.List; @Data @@ -29,6 +30,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; + @NotNull @ApiModelProperty(value = "样品状态", dataType = "String") private String sampleStatus; 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 2eadcdb..66b9724 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 @@ -11,11 +11,13 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessDispatchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -24,6 +26,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.Collections; +import java.util.List; import java.util.Objects; /** @@ -43,7 +46,10 @@ */ @ApiOperation("设备列表-分页") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request){ + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(bizDispatchService.listPage(page, request))); } @@ -71,15 +77,21 @@ return bizDispatchService.statusChange(deviceReceiveDTO); } + @ApiOperation("设备批量改变状态") + @PostMapping("/status/batchChange") + public ReturnDTO statusBatchChange(@RequestBody @Valid DeviceBatchStatusChangeDTO deviceBatchStatusChangeDTO) { + return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); + } + @ApiOperation("设备标签") - @PostMapping("/scan/listPage") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO)throws Exception { + @PostMapping("/scan/list") + public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Page page = PageFactory.defaultPage(); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(page,deviceScanDTO)); + return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); } + /** * 设备终止,,同时要进行终止原因的回填 */ @@ -93,7 +105,6 @@ } - /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index 227ca04..825c888 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -14,7 +14,6 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.mapper.business.BusinessDealRecordMapper; import com.casic.missiles.model.business.BusinessDealRecord; import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; 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 5681bd6..d06ccd2 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 @@ -30,7 +30,7 @@ Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request); - Page deviceScanStatus(@Param("page") Page page, @Param("request") DeviceScanDTO request); + List deviceScanStatus(@Param("request") DeviceScanDTO request); SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); 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 223d914..37198fe 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,12 +12,14 @@ - id, order_id, sample_id, sample_status + id + , order_id, sample_id, sample_status - csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, + csi.id + AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status @@ -30,102 +32,129 @@ - SELECT sampleNo,sampleName,sampleModel,manufacturingNo,appendixDescn,id,remark,sampleId,measureContent,orderId - FROM - ( - SELECT sample_no AS "sampleNo",sample_name AS "sampleName",sample_model AS "sampleModel",manufacturing_no AS "manufacturingNo",appendix_descn AS "appendixDescn",id,remark - FROM customer_sample_info - WHERE is_del=0 AND id=#{sampleId} - )bo - JOIN ( - SELECT measure_content AS "measureContent",sample_id AS "sampleId",order_id AS "orderId" - FROM business_order_sample_relation - WHERE order_id=#{orderId} - AND sample_id=#{sampleId} - )bosr ON bosr.sampleId=bo.id + SELECT sampleNo, + sampleName, + sampleModel, + manufacturingNo, + appendixDescn, + id, + remark, + sampleId, + measureContent, + orderId + FROM (SELECT sample_no AS "sampleNo", + sample_name AS "sampleName", + sample_model AS "sampleModel", + manufacturing_no AS "manufacturingNo", + appendix_descn AS "appendixDescn", + id, + remark + FROM customer_sample_info + WHERE is_del = 0 + AND id = #{sampleId}) bo + JOIN (SELECT measure_content AS "measureContent", sample_id AS "sampleId", order_id AS "orderId" + FROM business_order_sample_relation + WHERE order_id = #{orderId} + AND sample_id = #{sampleId}) bosr ON bosr.sampleId = bo.id diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceBatchStatusChangeDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceBatchStatusChangeDTO.java new file mode 100644 index 0000000..8362c94 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceBatchStatusChangeDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author cz + */ +@Data +@ApiModel("设备批量更新状态请求参数") +public class DeviceBatchStatusChangeDTO { + + @ApiModelProperty(value = "委托书样品关系列表", dataType = "list") + private List deviceStatusChangeDTOS; + + @ApiModelProperty(value = "状态变更(无需检测状态7,前进状态2、5、6,回退状态1,2,5)", dataType = "String") + private String status; + + @ApiModelProperty(value = "操作原因(终止操作必填,其他无需填写)", dataType = "String") + private String reason; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 3cc3f82..51b6500 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -5,6 +5,7 @@ import lombok.Data; import lombok.NonNull; +import javax.validation.constraints.NotNull; import java.util.List; @Data @@ -29,6 +30,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; + @NotNull @ApiModelProperty(value = "样品状态", dataType = "String") private String sampleStatus; 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 index c2a518e..c641111 100644 --- 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 @@ -15,4 +15,6 @@ @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 2eadcdb..66b9724 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 @@ -11,11 +11,13 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessDispatchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -24,6 +26,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.Collections; +import java.util.List; import java.util.Objects; /** @@ -43,7 +46,10 @@ */ @ApiOperation("设备列表-分页") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request){ + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(bizDispatchService.listPage(page, request))); } @@ -71,15 +77,21 @@ return bizDispatchService.statusChange(deviceReceiveDTO); } + @ApiOperation("设备批量改变状态") + @PostMapping("/status/batchChange") + public ReturnDTO statusBatchChange(@RequestBody @Valid DeviceBatchStatusChangeDTO deviceBatchStatusChangeDTO) { + return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); + } + @ApiOperation("设备标签") - @PostMapping("/scan/listPage") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO)throws Exception { + @PostMapping("/scan/list") + public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Page page = PageFactory.defaultPage(); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(page,deviceScanDTO)); + return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); } + /** * 设备终止,,同时要进行终止原因的回填 */ @@ -93,7 +105,6 @@ } - /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index 227ca04..825c888 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -14,7 +14,6 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.mapper.business.BusinessDealRecordMapper; import com.casic.missiles.model.business.BusinessDealRecord; import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; 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 5681bd6..d06ccd2 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 @@ -30,7 +30,7 @@ Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request); - Page deviceScanStatus(@Param("page") Page page, @Param("request") DeviceScanDTO request); + List deviceScanStatus(@Param("request") DeviceScanDTO request); SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); 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 223d914..37198fe 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,12 +12,14 @@ - id, order_id, sample_id, sample_status + id + , order_id, sample_id, sample_status - csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, + csi.id + AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status @@ -30,102 +32,129 @@ - SELECT sampleNo,sampleName,sampleModel,manufacturingNo,appendixDescn,id,remark,sampleId,measureContent,orderId - FROM - ( - SELECT sample_no AS "sampleNo",sample_name AS "sampleName",sample_model AS "sampleModel",manufacturing_no AS "manufacturingNo",appendix_descn AS "appendixDescn",id,remark - FROM customer_sample_info - WHERE is_del=0 AND id=#{sampleId} - )bo - JOIN ( - SELECT measure_content AS "measureContent",sample_id AS "sampleId",order_id AS "orderId" - FROM business_order_sample_relation - WHERE order_id=#{orderId} - AND sample_id=#{sampleId} - )bosr ON bosr.sampleId=bo.id + SELECT sampleNo, + sampleName, + sampleModel, + manufacturingNo, + appendixDescn, + id, + remark, + sampleId, + measureContent, + orderId + FROM (SELECT sample_no AS "sampleNo", + sample_name AS "sampleName", + sample_model AS "sampleModel", + manufacturing_no AS "manufacturingNo", + appendix_descn AS "appendixDescn", + id, + remark + FROM customer_sample_info + WHERE is_del = 0 + AND id = #{sampleId}) bo + JOIN (SELECT measure_content AS "measureContent", sample_id AS "sampleId", order_id AS "orderId" + FROM business_order_sample_relation + WHERE order_id = #{orderId} + AND sample_id = #{sampleId}) bosr ON bosr.sampleId = bo.id diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceBatchStatusChangeDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceBatchStatusChangeDTO.java new file mode 100644 index 0000000..8362c94 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceBatchStatusChangeDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author cz + */ +@Data +@ApiModel("设备批量更新状态请求参数") +public class DeviceBatchStatusChangeDTO { + + @ApiModelProperty(value = "委托书样品关系列表", dataType = "list") + private List deviceStatusChangeDTOS; + + @ApiModelProperty(value = "状态变更(无需检测状态7,前进状态2、5、6,回退状态1,2,5)", dataType = "String") + private String status; + + @ApiModelProperty(value = "操作原因(终止操作必填,其他无需填写)", dataType = "String") + private String reason; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 3cc3f82..51b6500 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -5,6 +5,7 @@ import lombok.Data; import lombok.NonNull; +import javax.validation.constraints.NotNull; import java.util.List; @Data @@ -29,6 +30,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; + @NotNull @ApiModelProperty(value = "样品状态", dataType = "String") private String sampleStatus; 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 index c2a518e..c641111 100644 --- 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 @@ -15,4 +15,6 @@ @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/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index 88fcec4..bf88436 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -15,8 +15,6 @@ private static final long serialVersionUID = 1L; - private Long id; - private Long orderId; private Long sampleId; @@ -66,6 +64,9 @@ @ExcelProperty(value = "样品所属", order = 11) private String sampleBelong; + @ApiModelProperty(value = "标签", dataType = "Integer") + private String labelBind; + @ApiModelProperty(value = "是否加急", dataType = "Integer") private Integer isUrgent; 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 2eadcdb..66b9724 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 @@ -11,11 +11,13 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessDispatchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -24,6 +26,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.Collections; +import java.util.List; import java.util.Objects; /** @@ -43,7 +46,10 @@ */ @ApiOperation("设备列表-分页") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request){ + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(bizDispatchService.listPage(page, request))); } @@ -71,15 +77,21 @@ return bizDispatchService.statusChange(deviceReceiveDTO); } + @ApiOperation("设备批量改变状态") + @PostMapping("/status/batchChange") + public ReturnDTO statusBatchChange(@RequestBody @Valid DeviceBatchStatusChangeDTO deviceBatchStatusChangeDTO) { + return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); + } + @ApiOperation("设备标签") - @PostMapping("/scan/listPage") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO)throws Exception { + @PostMapping("/scan/list") + public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Page page = PageFactory.defaultPage(); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(page,deviceScanDTO)); + return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); } + /** * 设备终止,,同时要进行终止原因的回填 */ @@ -93,7 +105,6 @@ } - /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index 227ca04..825c888 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -14,7 +14,6 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.mapper.business.BusinessDealRecordMapper; import com.casic.missiles.model.business.BusinessDealRecord; import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; 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 5681bd6..d06ccd2 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 @@ -30,7 +30,7 @@ Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request); - Page deviceScanStatus(@Param("page") Page page, @Param("request") DeviceScanDTO request); + List deviceScanStatus(@Param("request") DeviceScanDTO request); SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); 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 223d914..37198fe 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,12 +12,14 @@ - id, order_id, sample_id, sample_status + id + , order_id, sample_id, sample_status - csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, + csi.id + AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status @@ -30,102 +32,129 @@ - SELECT sampleNo,sampleName,sampleModel,manufacturingNo,appendixDescn,id,remark,sampleId,measureContent,orderId - FROM - ( - SELECT sample_no AS "sampleNo",sample_name AS "sampleName",sample_model AS "sampleModel",manufacturing_no AS "manufacturingNo",appendix_descn AS "appendixDescn",id,remark - FROM customer_sample_info - WHERE is_del=0 AND id=#{sampleId} - )bo - JOIN ( - SELECT measure_content AS "measureContent",sample_id AS "sampleId",order_id AS "orderId" - FROM business_order_sample_relation - WHERE order_id=#{orderId} - AND sample_id=#{sampleId} - )bosr ON bosr.sampleId=bo.id + SELECT sampleNo, + sampleName, + sampleModel, + manufacturingNo, + appendixDescn, + id, + remark, + sampleId, + measureContent, + orderId + FROM (SELECT sample_no AS "sampleNo", + sample_name AS "sampleName", + sample_model AS "sampleModel", + manufacturing_no AS "manufacturingNo", + appendix_descn AS "appendixDescn", + id, + remark + FROM customer_sample_info + WHERE is_del = 0 + AND id = #{sampleId}) bo + JOIN (SELECT measure_content AS "measureContent", sample_id AS "sampleId", order_id AS "orderId" + FROM business_order_sample_relation + WHERE order_id = #{orderId} + AND sample_id = #{sampleId}) bosr ON bosr.sampleId = bo.id diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceBatchStatusChangeDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceBatchStatusChangeDTO.java new file mode 100644 index 0000000..8362c94 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceBatchStatusChangeDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author cz + */ +@Data +@ApiModel("设备批量更新状态请求参数") +public class DeviceBatchStatusChangeDTO { + + @ApiModelProperty(value = "委托书样品关系列表", dataType = "list") + private List deviceStatusChangeDTOS; + + @ApiModelProperty(value = "状态变更(无需检测状态7,前进状态2、5、6,回退状态1,2,5)", dataType = "String") + private String status; + + @ApiModelProperty(value = "操作原因(终止操作必填,其他无需填写)", dataType = "String") + private String reason; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 3cc3f82..51b6500 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -5,6 +5,7 @@ import lombok.Data; import lombok.NonNull; +import javax.validation.constraints.NotNull; import java.util.List; @Data @@ -29,6 +30,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; + @NotNull @ApiModelProperty(value = "样品状态", dataType = "String") private String sampleStatus; 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 index c2a518e..c641111 100644 --- 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 @@ -15,4 +15,6 @@ @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/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index 88fcec4..bf88436 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -15,8 +15,6 @@ private static final long serialVersionUID = 1L; - private Long id; - private Long orderId; private Long sampleId; @@ -66,6 +64,9 @@ @ExcelProperty(value = "样品所属", order = 11) private String sampleBelong; + @ApiModelProperty(value = "标签", dataType = "Integer") + private String labelBind; + @ApiModelProperty(value = "是否加急", dataType = "Integer") private Integer isUrgent; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/OrderSampleChangeDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/OrderSampleChangeDTO.java new file mode 100644 index 0000000..f491f5b --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/OrderSampleChangeDTO.java @@ -0,0 +1,17 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("委托书样品关系") +public class OrderSampleChangeDTO { + + @ApiModelProperty(value = "委托书id", dataType = "Long") + private Long orderId; + + @ApiModelProperty(value = "样品id", dataType = "Long") + private 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 2eadcdb..66b9724 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 @@ -11,11 +11,13 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessDispatchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -24,6 +26,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.Collections; +import java.util.List; import java.util.Objects; /** @@ -43,7 +46,10 @@ */ @ApiOperation("设备列表-分页") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request){ + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(bizDispatchService.listPage(page, request))); } @@ -71,15 +77,21 @@ return bizDispatchService.statusChange(deviceReceiveDTO); } + @ApiOperation("设备批量改变状态") + @PostMapping("/status/batchChange") + public ReturnDTO statusBatchChange(@RequestBody @Valid DeviceBatchStatusChangeDTO deviceBatchStatusChangeDTO) { + return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); + } + @ApiOperation("设备标签") - @PostMapping("/scan/listPage") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO)throws Exception { + @PostMapping("/scan/list") + public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Page page = PageFactory.defaultPage(); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(page,deviceScanDTO)); + return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); } + /** * 设备终止,,同时要进行终止原因的回填 */ @@ -93,7 +105,6 @@ } - /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index 227ca04..825c888 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -14,7 +14,6 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.mapper.business.BusinessDealRecordMapper; import com.casic.missiles.model.business.BusinessDealRecord; import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; 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 5681bd6..d06ccd2 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 @@ -30,7 +30,7 @@ Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request); - Page deviceScanStatus(@Param("page") Page page, @Param("request") DeviceScanDTO request); + List deviceScanStatus(@Param("request") DeviceScanDTO request); SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); 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 223d914..37198fe 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,12 +12,14 @@ - id, order_id, sample_id, sample_status + id + , order_id, sample_id, sample_status - csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, + csi.id + AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status @@ -30,102 +32,129 @@ - SELECT sampleNo,sampleName,sampleModel,manufacturingNo,appendixDescn,id,remark,sampleId,measureContent,orderId - FROM - ( - SELECT sample_no AS "sampleNo",sample_name AS "sampleName",sample_model AS "sampleModel",manufacturing_no AS "manufacturingNo",appendix_descn AS "appendixDescn",id,remark - FROM customer_sample_info - WHERE is_del=0 AND id=#{sampleId} - )bo - JOIN ( - SELECT measure_content AS "measureContent",sample_id AS "sampleId",order_id AS "orderId" - FROM business_order_sample_relation - WHERE order_id=#{orderId} - AND sample_id=#{sampleId} - )bosr ON bosr.sampleId=bo.id + SELECT sampleNo, + sampleName, + sampleModel, + manufacturingNo, + appendixDescn, + id, + remark, + sampleId, + measureContent, + orderId + FROM (SELECT sample_no AS "sampleNo", + sample_name AS "sampleName", + sample_model AS "sampleModel", + manufacturing_no AS "manufacturingNo", + appendix_descn AS "appendixDescn", + id, + remark + FROM customer_sample_info + WHERE is_del = 0 + AND id = #{sampleId}) bo + JOIN (SELECT measure_content AS "measureContent", sample_id AS "sampleId", order_id AS "orderId" + FROM business_order_sample_relation + WHERE order_id = #{orderId} + AND sample_id = #{sampleId}) bosr ON bosr.sampleId = bo.id diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceBatchStatusChangeDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceBatchStatusChangeDTO.java new file mode 100644 index 0000000..8362c94 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceBatchStatusChangeDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author cz + */ +@Data +@ApiModel("设备批量更新状态请求参数") +public class DeviceBatchStatusChangeDTO { + + @ApiModelProperty(value = "委托书样品关系列表", dataType = "list") + private List deviceStatusChangeDTOS; + + @ApiModelProperty(value = "状态变更(无需检测状态7,前进状态2、5、6,回退状态1,2,5)", dataType = "String") + private String status; + + @ApiModelProperty(value = "操作原因(终止操作必填,其他无需填写)", dataType = "String") + private String reason; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 3cc3f82..51b6500 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -5,6 +5,7 @@ import lombok.Data; import lombok.NonNull; +import javax.validation.constraints.NotNull; import java.util.List; @Data @@ -29,6 +30,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; + @NotNull @ApiModelProperty(value = "样品状态", dataType = "String") private String sampleStatus; 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 index c2a518e..c641111 100644 --- 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 @@ -15,4 +15,6 @@ @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/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index 88fcec4..bf88436 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -15,8 +15,6 @@ private static final long serialVersionUID = 1L; - private Long id; - private Long orderId; private Long sampleId; @@ -66,6 +64,9 @@ @ExcelProperty(value = "样品所属", order = 11) private String sampleBelong; + @ApiModelProperty(value = "标签", dataType = "Integer") + private String labelBind; + @ApiModelProperty(value = "是否加急", dataType = "Integer") private Integer isUrgent; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/OrderSampleChangeDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/OrderSampleChangeDTO.java new file mode 100644 index 0000000..f491f5b --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/OrderSampleChangeDTO.java @@ -0,0 +1,17 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("委托书样品关系") +public class OrderSampleChangeDTO { + + @ApiModelProperty(value = "委托书id", dataType = "Long") + private Long orderId; + + @ApiModelProperty(value = "样品id", dataType = "Long") + private Long 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 bfc1dca..d086d88 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 @@ -1,6 +1,7 @@ package com.casic.missiles.service.Impl.business; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -37,10 +38,9 @@ import org.springframework.util.ObjectUtils; import javax.servlet.http.HttpServletResponse; -import java.util.Date; -import java.util.List; -import java.util.Objects; -import java.util.Optional; +import java.util.*; +import java.util.stream.Collector; +import java.util.stream.Collectors; /** * @author cz @@ -158,6 +158,24 @@ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } + @Override + @Transactional + public ReturnDTO statusBatchChange(DeviceBatchStatusChangeDTO deviceBatchStatusChangeDTO) { + boolean batchUpdateFlag = true; + for (DeviceStatusChangeDTO deviceStatusChangeDTO : deviceBatchStatusChangeDTO.getDeviceStatusChangeDTOS()) { + Assert.isFalse(Objects.isNull(deviceStatusChangeDTO.getOrderId()) || Objects.isNull(deviceStatusChangeDTO.getSampleId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + deviceStatusChangeDTO.setStatus(deviceBatchStatusChangeDTO.getStatus()); + deviceStatusChangeDTO.setReason(deviceBatchStatusChangeDTO.getReason()); + batchUpdateFlag &= statusChange(deviceStatusChangeDTO).getCode() == 200; + } + if (batchUpdateFlag) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + /** * 终止操作,不仅更新状态,同时进行实验室状态原因的更新 */ @@ -180,13 +198,31 @@ */ @Override @Transactional - public Page deviceScanStatus(Page page, DeviceScanDTO deviceScanDTO) throws Exception { + public List deviceScanStatus(DeviceScanDTO deviceScanDTO) throws Exception { //查询委托书和样品关联表中的各状态的样品 - Page deviceScanVOPage = orderSampleRelationMapper.deviceScanStatus(page, deviceScanDTO); - for (DeviceScanVO deviceScanVO : deviceScanVOPage.getRecords()) { - DictCodeUtils.convertDictCodeToName(deviceScanVO); + 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); + } } - 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; } /** @@ -305,7 +341,8 @@ /** * 构建证书的查询条件 */ - private QueryWrapper getCertificateReportWrapper(DeviceDispatchVO dispatchVO, Long deptId) { + private QueryWrapper getCertificateReportWrapper(DeviceDispatchVO dispatchVO, Long + deptId) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("order_id", dispatchVO.getOrderId()); wrapper.eq("sample_id", dispatchVO.getSampleId()); 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 2eadcdb..66b9724 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 @@ -11,11 +11,13 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessDispatchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -24,6 +26,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.Collections; +import java.util.List; import java.util.Objects; /** @@ -43,7 +46,10 @@ */ @ApiOperation("设备列表-分页") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request){ + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(bizDispatchService.listPage(page, request))); } @@ -71,15 +77,21 @@ return bizDispatchService.statusChange(deviceReceiveDTO); } + @ApiOperation("设备批量改变状态") + @PostMapping("/status/batchChange") + public ReturnDTO statusBatchChange(@RequestBody @Valid DeviceBatchStatusChangeDTO deviceBatchStatusChangeDTO) { + return ReturnUtil.success(bizDispatchService.statusBatchChange(deviceBatchStatusChangeDTO)); + } + @ApiOperation("设备标签") - @PostMapping("/scan/listPage") - public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO)throws Exception { + @PostMapping("/scan/list") + public ReturnDTO> deviceScanStatus(@RequestBody @Valid DeviceScanDTO deviceScanDTO) throws Exception { Assert.isFalse(CollectionUtils.isEmpty(deviceScanDTO.getLabels()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Page page = PageFactory.defaultPage(); - return ReturnUtil.success(bizDispatchService.deviceScanStatus(page,deviceScanDTO)); + return ReturnUtil.success(bizDispatchService.deviceScanStatus(deviceScanDTO)); } + /** * 设备终止,,同时要进行终止原因的回填 */ @@ -93,7 +105,6 @@ } - /** * 催办会产生催办消息,对相关操作人员进行消息提示 */ diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java index 227ca04..825c888 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOrderController.java @@ -14,7 +14,6 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.mapper.business.BusinessDealRecordMapper; import com.casic.missiles.model.business.BusinessDealRecord; import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; 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 5681bd6..d06ccd2 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 @@ -30,7 +30,7 @@ Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request); - Page deviceScanStatus(@Param("page") Page page, @Param("request") DeviceScanDTO request); + List deviceScanStatus(@Param("request") DeviceScanDTO request); SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); 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 223d914..37198fe 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,12 +12,14 @@ - id, order_id, sample_id, sample_status + id + , order_id, sample_id, sample_status - csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, + csi.id + AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status @@ -30,102 +32,129 @@ - SELECT sampleNo,sampleName,sampleModel,manufacturingNo,appendixDescn,id,remark,sampleId,measureContent,orderId - FROM - ( - SELECT sample_no AS "sampleNo",sample_name AS "sampleName",sample_model AS "sampleModel",manufacturing_no AS "manufacturingNo",appendix_descn AS "appendixDescn",id,remark - FROM customer_sample_info - WHERE is_del=0 AND id=#{sampleId} - )bo - JOIN ( - SELECT measure_content AS "measureContent",sample_id AS "sampleId",order_id AS "orderId" - FROM business_order_sample_relation - WHERE order_id=#{orderId} - AND sample_id=#{sampleId} - )bosr ON bosr.sampleId=bo.id + SELECT sampleNo, + sampleName, + sampleModel, + manufacturingNo, + appendixDescn, + id, + remark, + sampleId, + measureContent, + orderId + FROM (SELECT sample_no AS "sampleNo", + sample_name AS "sampleName", + sample_model AS "sampleModel", + manufacturing_no AS "manufacturingNo", + appendix_descn AS "appendixDescn", + id, + remark + FROM customer_sample_info + WHERE is_del = 0 + AND id = #{sampleId}) bo + JOIN (SELECT measure_content AS "measureContent", sample_id AS "sampleId", order_id AS "orderId" + FROM business_order_sample_relation + WHERE order_id = #{orderId} + AND sample_id = #{sampleId}) bosr ON bosr.sampleId = bo.id diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceBatchStatusChangeDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceBatchStatusChangeDTO.java new file mode 100644 index 0000000..8362c94 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceBatchStatusChangeDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author cz + */ +@Data +@ApiModel("设备批量更新状态请求参数") +public class DeviceBatchStatusChangeDTO { + + @ApiModelProperty(value = "委托书样品关系列表", dataType = "list") + private List deviceStatusChangeDTOS; + + @ApiModelProperty(value = "状态变更(无需检测状态7,前进状态2、5、6,回退状态1,2,5)", dataType = "String") + private String status; + + @ApiModelProperty(value = "操作原因(终止操作必填,其他无需填写)", dataType = "String") + private String reason; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 3cc3f82..51b6500 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -5,6 +5,7 @@ import lombok.Data; import lombok.NonNull; +import javax.validation.constraints.NotNull; import java.util.List; @Data @@ -29,6 +30,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; + @NotNull @ApiModelProperty(value = "样品状态", dataType = "String") private String sampleStatus; 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 index c2a518e..c641111 100644 --- 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 @@ -15,4 +15,6 @@ @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/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index 88fcec4..bf88436 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -15,8 +15,6 @@ private static final long serialVersionUID = 1L; - private Long id; - private Long orderId; private Long sampleId; @@ -66,6 +64,9 @@ @ExcelProperty(value = "样品所属", order = 11) private String sampleBelong; + @ApiModelProperty(value = "标签", dataType = "Integer") + private String labelBind; + @ApiModelProperty(value = "是否加急", dataType = "Integer") private Integer isUrgent; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/OrderSampleChangeDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/OrderSampleChangeDTO.java new file mode 100644 index 0000000..f491f5b --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/OrderSampleChangeDTO.java @@ -0,0 +1,17 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("委托书样品关系") +public class OrderSampleChangeDTO { + + @ApiModelProperty(value = "委托书id", dataType = "Long") + private Long orderId; + + @ApiModelProperty(value = "样品id", dataType = "Long") + private Long 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 bfc1dca..d086d88 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 @@ -1,6 +1,7 @@ package com.casic.missiles.service.Impl.business; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -37,10 +38,9 @@ import org.springframework.util.ObjectUtils; import javax.servlet.http.HttpServletResponse; -import java.util.Date; -import java.util.List; -import java.util.Objects; -import java.util.Optional; +import java.util.*; +import java.util.stream.Collector; +import java.util.stream.Collectors; /** * @author cz @@ -158,6 +158,24 @@ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } + @Override + @Transactional + public ReturnDTO statusBatchChange(DeviceBatchStatusChangeDTO deviceBatchStatusChangeDTO) { + boolean batchUpdateFlag = true; + for (DeviceStatusChangeDTO deviceStatusChangeDTO : deviceBatchStatusChangeDTO.getDeviceStatusChangeDTOS()) { + Assert.isFalse(Objects.isNull(deviceStatusChangeDTO.getOrderId()) || Objects.isNull(deviceStatusChangeDTO.getSampleId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + deviceStatusChangeDTO.setStatus(deviceBatchStatusChangeDTO.getStatus()); + deviceStatusChangeDTO.setReason(deviceBatchStatusChangeDTO.getReason()); + batchUpdateFlag &= statusChange(deviceStatusChangeDTO).getCode() == 200; + } + if (batchUpdateFlag) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + /** * 终止操作,不仅更新状态,同时进行实验室状态原因的更新 */ @@ -180,13 +198,31 @@ */ @Override @Transactional - public Page deviceScanStatus(Page page, DeviceScanDTO deviceScanDTO) throws Exception { + public List deviceScanStatus(DeviceScanDTO deviceScanDTO) throws Exception { //查询委托书和样品关联表中的各状态的样品 - Page deviceScanVOPage = orderSampleRelationMapper.deviceScanStatus(page, deviceScanDTO); - for (DeviceScanVO deviceScanVO : deviceScanVOPage.getRecords()) { - DictCodeUtils.convertDictCodeToName(deviceScanVO); + 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); + } } - 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; } /** @@ -305,7 +341,8 @@ /** * 构建证书的查询条件 */ - private QueryWrapper getCertificateReportWrapper(DeviceDispatchVO dispatchVO, Long deptId) { + private QueryWrapper getCertificateReportWrapper(DeviceDispatchVO dispatchVO, Long + deptId) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("order_id", dispatchVO.getOrderId()); wrapper.eq("sample_id", dispatchVO.getSampleId()); 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 0c8b726..552fd0a 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 @@ -5,6 +5,7 @@ import com.casic.missiles.dto.business.dispatch.*; import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * @author cz @@ -17,9 +18,11 @@ ReturnDTO statusChange(DeviceStatusChangeDTO deviceStatusChangeDTO); + ReturnDTO statusBatchChange(DeviceBatchStatusChangeDTO deviceBatchStatusChangeDTO); + ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO); - Page deviceScanStatus(Page page,DeviceScanDTO deviceScanDTO) throws Exception ; + List deviceScanStatus(DeviceScanDTO deviceScanDTO) throws Exception; ReturnDTO remindWorker(DeviceStatusChangeDTO deviceStatusChangeDTO);