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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer sampleStatus; } 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 new file mode 100644 index 0000000..135b82c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceDispatchDTO { + + @ApiModelProperty(value = "样品编号", dataType = "String") + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + private String sampleName; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + private String orderNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerNo; + + @ApiModelProperty(value = "是否加急", dataType = "String") + private String isUrgent; + + @ApiModelProperty(value = "样品所属", dataType = "String") + private String sampleBelong; + + @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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer sampleStatus; } 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 new file mode 100644 index 0000000..135b82c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceDispatchDTO { + + @ApiModelProperty(value = "样品编号", dataType = "String") + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + private String sampleName; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + private String orderNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerNo; + + @ApiModelProperty(value = "是否加急", dataType = "String") + private String isUrgent; + + @ApiModelProperty(value = "样品所属", dataType = "String") + private String sampleBelong; + + @ApiModelProperty(value = "样品状态", dataType = "String") + private String sampleStatus; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java new file mode 100644 index 0000000..e53d8c4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto.business.dispatch; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DeviceDispatchVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "样品编号", dataType = "String") + @ExcelProperty(value = "样品编号",order = 0) + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + @ExcelProperty(value = "样品名称",order = 1) + private String sampleName; + + @ApiModelProperty(value = "型号", dataType = "String") + @ExcelProperty(value = "型号",order = 2) + private String sampleModel; + + @ApiModelProperty(value = "出厂编号", dataType = "String") + @ExcelProperty(value = "出厂编号",order = 3) + private String manufacturingNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 4) + private String customerNo; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + @ExcelProperty(value = "委托书编号",order = 5) + private String orderCode; + + @ApiModelProperty(value = "委托书名称", dataType = "String") + @ExcelProperty(value = "委托书名称",order = 6) + private String customerName; + + @ApiModelProperty(value = "计划送达时间", dataType = "String") + @ExcelProperty(value = "计划送达时间",order = 7) + private String planDeliverTime; + + //数据库暂时没有字段 + @ApiModelProperty(value = "实际送达时间", dataType = "String") + @ExcelProperty(value = "实际送达时间",order = 8) + private String realDeliverTime; + + @ApiModelProperty(value = "样品所属", dataType = "String") + @ExcelProperty(value = "样品所属",order = 8) + private String sampleBelong; + + @ApiModelProperty(value = "当前检定环节", dataType = "String") + @ExcelProperty(value = "当前检定环节",order = 9) + private String measureNode; + + @ApiModelProperty(value = "已出具证书", dataType = "Integer") + @ExcelProperty(value = "已出具证书", order = 12) + private Integer alreadyCertifications; + + @ApiModelProperty(value = "应出具证书", dataType = "Integer") + @ExcelProperty(value = "应出具证书", order = 13) + private Integer requireCertifications; + // 终止、回退、收入、归还、催办按钮 + + +} 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer sampleStatus; } 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 new file mode 100644 index 0000000..135b82c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceDispatchDTO { + + @ApiModelProperty(value = "样品编号", dataType = "String") + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + private String sampleName; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + private String orderNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerNo; + + @ApiModelProperty(value = "是否加急", dataType = "String") + private String isUrgent; + + @ApiModelProperty(value = "样品所属", dataType = "String") + private String sampleBelong; + + @ApiModelProperty(value = "样品状态", dataType = "String") + private String sampleStatus; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java new file mode 100644 index 0000000..e53d8c4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto.business.dispatch; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DeviceDispatchVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "样品编号", dataType = "String") + @ExcelProperty(value = "样品编号",order = 0) + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + @ExcelProperty(value = "样品名称",order = 1) + private String sampleName; + + @ApiModelProperty(value = "型号", dataType = "String") + @ExcelProperty(value = "型号",order = 2) + private String sampleModel; + + @ApiModelProperty(value = "出厂编号", dataType = "String") + @ExcelProperty(value = "出厂编号",order = 3) + private String manufacturingNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 4) + private String customerNo; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + @ExcelProperty(value = "委托书编号",order = 5) + private String orderCode; + + @ApiModelProperty(value = "委托书名称", dataType = "String") + @ExcelProperty(value = "委托书名称",order = 6) + private String customerName; + + @ApiModelProperty(value = "计划送达时间", dataType = "String") + @ExcelProperty(value = "计划送达时间",order = 7) + private String planDeliverTime; + + //数据库暂时没有字段 + @ApiModelProperty(value = "实际送达时间", dataType = "String") + @ExcelProperty(value = "实际送达时间",order = 8) + private String realDeliverTime; + + @ApiModelProperty(value = "样品所属", dataType = "String") + @ExcelProperty(value = "样品所属",order = 8) + private String sampleBelong; + + @ApiModelProperty(value = "当前检定环节", dataType = "String") + @ExcelProperty(value = "当前检定环节",order = 9) + private String measureNode; + + @ApiModelProperty(value = "已出具证书", dataType = "Integer") + @ExcelProperty(value = "已出具证书", order = 12) + private Integer alreadyCertifications; + + @ApiModelProperty(value = "应出具证书", dataType = "Integer") + @ExcelProperty(value = "应出具证书", order = 13) + private Integer requireCertifications; + // 终止、回退、收入、归还、催办按钮 + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java new file mode 100644 index 0000000..37cb067 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class InterchangeListRequest { + + @ApiModelProperty(value = "交接单编号", dataType = "String") + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + private String customerName; + + @ApiModelProperty(value = "交接人", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + private String deliverTime; + +} 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer sampleStatus; } 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 new file mode 100644 index 0000000..135b82c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceDispatchDTO { + + @ApiModelProperty(value = "样品编号", dataType = "String") + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + private String sampleName; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + private String orderNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerNo; + + @ApiModelProperty(value = "是否加急", dataType = "String") + private String isUrgent; + + @ApiModelProperty(value = "样品所属", dataType = "String") + private String sampleBelong; + + @ApiModelProperty(value = "样品状态", dataType = "String") + private String sampleStatus; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java new file mode 100644 index 0000000..e53d8c4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto.business.dispatch; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DeviceDispatchVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "样品编号", dataType = "String") + @ExcelProperty(value = "样品编号",order = 0) + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + @ExcelProperty(value = "样品名称",order = 1) + private String sampleName; + + @ApiModelProperty(value = "型号", dataType = "String") + @ExcelProperty(value = "型号",order = 2) + private String sampleModel; + + @ApiModelProperty(value = "出厂编号", dataType = "String") + @ExcelProperty(value = "出厂编号",order = 3) + private String manufacturingNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 4) + private String customerNo; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + @ExcelProperty(value = "委托书编号",order = 5) + private String orderCode; + + @ApiModelProperty(value = "委托书名称", dataType = "String") + @ExcelProperty(value = "委托书名称",order = 6) + private String customerName; + + @ApiModelProperty(value = "计划送达时间", dataType = "String") + @ExcelProperty(value = "计划送达时间",order = 7) + private String planDeliverTime; + + //数据库暂时没有字段 + @ApiModelProperty(value = "实际送达时间", dataType = "String") + @ExcelProperty(value = "实际送达时间",order = 8) + private String realDeliverTime; + + @ApiModelProperty(value = "样品所属", dataType = "String") + @ExcelProperty(value = "样品所属",order = 8) + private String sampleBelong; + + @ApiModelProperty(value = "当前检定环节", dataType = "String") + @ExcelProperty(value = "当前检定环节",order = 9) + private String measureNode; + + @ApiModelProperty(value = "已出具证书", dataType = "Integer") + @ExcelProperty(value = "已出具证书", order = 12) + private Integer alreadyCertifications; + + @ApiModelProperty(value = "应出具证书", dataType = "Integer") + @ExcelProperty(value = "应出具证书", order = 13) + private Integer requireCertifications; + // 终止、回退、收入、归还、催办按钮 + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java new file mode 100644 index 0000000..37cb067 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class InterchangeListRequest { + + @ApiModelProperty(value = "交接单编号", dataType = "String") + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + private String customerName; + + @ApiModelProperty(value = "交接人", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + private String deliverTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java new file mode 100644 index 0000000..5ecdc6f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java @@ -0,0 +1,54 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +@TableName +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class InterchangeListResponse { + + private Long id; + + @ApiModelProperty(value = "交接单编号", dataType = "String") + @ExcelProperty(value = "交接单编号",order = 0) + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 1) + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + @ExcelProperty(value = "委托方名称",order = 2) + private String customerName; + + @ApiModelProperty(value = "接收人", dataType = "String") + @ExcelProperty(value = "接收人",order = 3) + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + @ExcelProperty(value = "送检人",order = 4) + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + @ExcelProperty(value = "交接时间",order = 5) + private String deliverTime; + + @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注",order = 6) + private String remark; +} 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer sampleStatus; } 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 new file mode 100644 index 0000000..135b82c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceDispatchDTO { + + @ApiModelProperty(value = "样品编号", dataType = "String") + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + private String sampleName; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + private String orderNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerNo; + + @ApiModelProperty(value = "是否加急", dataType = "String") + private String isUrgent; + + @ApiModelProperty(value = "样品所属", dataType = "String") + private String sampleBelong; + + @ApiModelProperty(value = "样品状态", dataType = "String") + private String sampleStatus; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java new file mode 100644 index 0000000..e53d8c4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto.business.dispatch; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DeviceDispatchVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "样品编号", dataType = "String") + @ExcelProperty(value = "样品编号",order = 0) + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + @ExcelProperty(value = "样品名称",order = 1) + private String sampleName; + + @ApiModelProperty(value = "型号", dataType = "String") + @ExcelProperty(value = "型号",order = 2) + private String sampleModel; + + @ApiModelProperty(value = "出厂编号", dataType = "String") + @ExcelProperty(value = "出厂编号",order = 3) + private String manufacturingNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 4) + private String customerNo; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + @ExcelProperty(value = "委托书编号",order = 5) + private String orderCode; + + @ApiModelProperty(value = "委托书名称", dataType = "String") + @ExcelProperty(value = "委托书名称",order = 6) + private String customerName; + + @ApiModelProperty(value = "计划送达时间", dataType = "String") + @ExcelProperty(value = "计划送达时间",order = 7) + private String planDeliverTime; + + //数据库暂时没有字段 + @ApiModelProperty(value = "实际送达时间", dataType = "String") + @ExcelProperty(value = "实际送达时间",order = 8) + private String realDeliverTime; + + @ApiModelProperty(value = "样品所属", dataType = "String") + @ExcelProperty(value = "样品所属",order = 8) + private String sampleBelong; + + @ApiModelProperty(value = "当前检定环节", dataType = "String") + @ExcelProperty(value = "当前检定环节",order = 9) + private String measureNode; + + @ApiModelProperty(value = "已出具证书", dataType = "Integer") + @ExcelProperty(value = "已出具证书", order = 12) + private Integer alreadyCertifications; + + @ApiModelProperty(value = "应出具证书", dataType = "Integer") + @ExcelProperty(value = "应出具证书", order = 13) + private Integer requireCertifications; + // 终止、回退、收入、归还、催办按钮 + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java new file mode 100644 index 0000000..37cb067 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class InterchangeListRequest { + + @ApiModelProperty(value = "交接单编号", dataType = "String") + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + private String customerName; + + @ApiModelProperty(value = "交接人", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + private String deliverTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java new file mode 100644 index 0000000..5ecdc6f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java @@ -0,0 +1,54 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +@TableName +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class InterchangeListResponse { + + private Long id; + + @ApiModelProperty(value = "交接单编号", dataType = "String") + @ExcelProperty(value = "交接单编号",order = 0) + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 1) + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + @ExcelProperty(value = "委托方名称",order = 2) + private String customerName; + + @ApiModelProperty(value = "接收人", dataType = "String") + @ExcelProperty(value = "接收人",order = 3) + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + @ExcelProperty(value = "送检人",order = 4) + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + @ExcelProperty(value = "交接时间",order = 5) + private String deliverTime; + + @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注",order = 6) + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java index 7fdc869..ba919d3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java @@ -25,7 +25,7 @@ @ExcelIgnoreUnannotated public class OrderListReponse { - private final Long id; + private final Long id; @ApiModelProperty(value = "委托书编号", dataType = "String") @ExcelProperty(value = "委托书编号",order = 0) private String orderCode; 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer sampleStatus; } 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 new file mode 100644 index 0000000..135b82c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceDispatchDTO { + + @ApiModelProperty(value = "样品编号", dataType = "String") + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + private String sampleName; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + private String orderNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerNo; + + @ApiModelProperty(value = "是否加急", dataType = "String") + private String isUrgent; + + @ApiModelProperty(value = "样品所属", dataType = "String") + private String sampleBelong; + + @ApiModelProperty(value = "样品状态", dataType = "String") + private String sampleStatus; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java new file mode 100644 index 0000000..e53d8c4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto.business.dispatch; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DeviceDispatchVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "样品编号", dataType = "String") + @ExcelProperty(value = "样品编号",order = 0) + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + @ExcelProperty(value = "样品名称",order = 1) + private String sampleName; + + @ApiModelProperty(value = "型号", dataType = "String") + @ExcelProperty(value = "型号",order = 2) + private String sampleModel; + + @ApiModelProperty(value = "出厂编号", dataType = "String") + @ExcelProperty(value = "出厂编号",order = 3) + private String manufacturingNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 4) + private String customerNo; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + @ExcelProperty(value = "委托书编号",order = 5) + private String orderCode; + + @ApiModelProperty(value = "委托书名称", dataType = "String") + @ExcelProperty(value = "委托书名称",order = 6) + private String customerName; + + @ApiModelProperty(value = "计划送达时间", dataType = "String") + @ExcelProperty(value = "计划送达时间",order = 7) + private String planDeliverTime; + + //数据库暂时没有字段 + @ApiModelProperty(value = "实际送达时间", dataType = "String") + @ExcelProperty(value = "实际送达时间",order = 8) + private String realDeliverTime; + + @ApiModelProperty(value = "样品所属", dataType = "String") + @ExcelProperty(value = "样品所属",order = 8) + private String sampleBelong; + + @ApiModelProperty(value = "当前检定环节", dataType = "String") + @ExcelProperty(value = "当前检定环节",order = 9) + private String measureNode; + + @ApiModelProperty(value = "已出具证书", dataType = "Integer") + @ExcelProperty(value = "已出具证书", order = 12) + private Integer alreadyCertifications; + + @ApiModelProperty(value = "应出具证书", dataType = "Integer") + @ExcelProperty(value = "应出具证书", order = 13) + private Integer requireCertifications; + // 终止、回退、收入、归还、催办按钮 + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java new file mode 100644 index 0000000..37cb067 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class InterchangeListRequest { + + @ApiModelProperty(value = "交接单编号", dataType = "String") + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + private String customerName; + + @ApiModelProperty(value = "交接人", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + private String deliverTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java new file mode 100644 index 0000000..5ecdc6f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java @@ -0,0 +1,54 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +@TableName +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class InterchangeListResponse { + + private Long id; + + @ApiModelProperty(value = "交接单编号", dataType = "String") + @ExcelProperty(value = "交接单编号",order = 0) + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 1) + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + @ExcelProperty(value = "委托方名称",order = 2) + private String customerName; + + @ApiModelProperty(value = "接收人", dataType = "String") + @ExcelProperty(value = "接收人",order = 3) + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + @ExcelProperty(value = "送检人",order = 4) + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + @ExcelProperty(value = "交接时间",order = 5) + private String deliverTime; + + @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注",order = 6) + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java index 7fdc869..ba919d3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java @@ -25,7 +25,7 @@ @ExcelIgnoreUnannotated public class OrderListReponse { - private final Long id; + private final Long id; @ApiModelProperty(value = "委托书编号", dataType = "String") @ExcelProperty(value = "委托书编号",order = 0) private String orderCode; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java new file mode 100644 index 0000000..a6930fd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java @@ -0,0 +1,136 @@ +package com.casic.missiles.dto.customer.Info; + + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("customer_info") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class CustomerInfoResponse implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "编号", dataType = "String") + @ExcelProperty(value = "编号",order = 0) + private String customerNo; + + @ApiModelProperty(value = "公司名称", dataType = "String") + @ExcelProperty(value = "公司名称",order = 1) + private String customerName; + + @ApiModelProperty(value = "公司简称", dataType = "String") + @ExcelProperty(value = "公司简称",order = 2) + private String briefName; + + @ApiModelProperty(value = "业务内容", dataType = "String") + @ExcelProperty(value = "业务内容",order = 3) + private String businessContent; + + @ApiModelProperty(value = "税号", dataType = "String") + @ExcelProperty(value = "税号",order = 4) + private String taxNumber; + + @ApiModelProperty(value = "银行账户名", dataType = "String") + @ExcelProperty(value = "银行账户名",order = 5) + private String bankAccount; + + @ApiModelProperty(value = "银行名称", dataType = "String") + @ExcelProperty(value = "银行名称",order = 6) + private String bankName; + + @ApiModelProperty(value = "银行账号", dataType = "String") + @ExcelProperty(value = "银行账号",order = 7) + private String bankAccountNumber; + + @ApiModelProperty(value = "邮编", dataType = "String") + @ExcelProperty(value = "邮编",order = 8) + private String postalCode; + + @ApiModelProperty(value = "负责人", dataType = "String") + @ExcelProperty(value = "负责人",order = 9) + private String director; + + @ApiModelProperty(value = "电话", dataType = "String") + @ExcelProperty(value = "电话",order = 10) + private String phone; + + @ApiModelProperty(value = "传真", dataType = "String") + @ExcelProperty(value = "电话",order = 11) + private String fax; + + @ApiModelProperty(value = "手机", dataType = "String") + @ExcelProperty(value = "手机",order = 12) + private String mobile; + + @ApiModelProperty(value = "邮箱", dataType = "String") + @ExcelProperty(value = "邮箱",order = 13) + private String email; + + @ApiModelProperty(value = "网址", dataType = "String") + @ExcelProperty(value = "网址",order =14) + private String website; + + @ApiModelProperty(value = "履约评级-字典", dataType = "String") + private String grade; + + @ApiModelProperty(value = "公司规模", dataType = "String") + @DictCodeField(message = "公司规模描述不合法", cacheName = MeterDictCode.COMPANY_SCALE) + private String companySize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模", dataType = "String") + private String companySizeName; + + @ApiModelProperty(value = "业务规模-字典", dataType = "String") + @DictCodeField(message = "业务规模描述不合法", cacheName = MeterDictCode.BUSINESS_SCALE) + private String businessSize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模名称", dataType = "String") + private String businessSizeName; + + @ApiModelProperty(value = "整体评价", dataType = "String") + @DictCodeField(message = "公司整体评价不合法", cacheName = MeterDictCode.EVALUATION) + private String evaluation; + + @TableField(exist = false) + @ApiModelProperty(value = "整体评价", dataType = "String") + private String evaluationName; + + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @ExcelProperty(value = "详细地址",order =15) + private String fullAddress; + + @ApiModelProperty(value = "业务范围", dataType = "String") + @ExcelProperty(value = "业务范围",order =16) + private String businessScope; + + @ApiModelProperty(value = "创建时间", dataType = "String") + @ExcelProperty(value = "创建时间",order =17) + private String createTime; + + @ApiModelProperty(value = "最后更新时间", dataType = "String") + @ExcelProperty(value = "最后更新时间",order =18) + private String updateTime; + +} 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer sampleStatus; } 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 new file mode 100644 index 0000000..135b82c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceDispatchDTO { + + @ApiModelProperty(value = "样品编号", dataType = "String") + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + private String sampleName; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + private String orderNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerNo; + + @ApiModelProperty(value = "是否加急", dataType = "String") + private String isUrgent; + + @ApiModelProperty(value = "样品所属", dataType = "String") + private String sampleBelong; + + @ApiModelProperty(value = "样品状态", dataType = "String") + private String sampleStatus; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java new file mode 100644 index 0000000..e53d8c4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto.business.dispatch; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DeviceDispatchVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "样品编号", dataType = "String") + @ExcelProperty(value = "样品编号",order = 0) + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + @ExcelProperty(value = "样品名称",order = 1) + private String sampleName; + + @ApiModelProperty(value = "型号", dataType = "String") + @ExcelProperty(value = "型号",order = 2) + private String sampleModel; + + @ApiModelProperty(value = "出厂编号", dataType = "String") + @ExcelProperty(value = "出厂编号",order = 3) + private String manufacturingNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 4) + private String customerNo; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + @ExcelProperty(value = "委托书编号",order = 5) + private String orderCode; + + @ApiModelProperty(value = "委托书名称", dataType = "String") + @ExcelProperty(value = "委托书名称",order = 6) + private String customerName; + + @ApiModelProperty(value = "计划送达时间", dataType = "String") + @ExcelProperty(value = "计划送达时间",order = 7) + private String planDeliverTime; + + //数据库暂时没有字段 + @ApiModelProperty(value = "实际送达时间", dataType = "String") + @ExcelProperty(value = "实际送达时间",order = 8) + private String realDeliverTime; + + @ApiModelProperty(value = "样品所属", dataType = "String") + @ExcelProperty(value = "样品所属",order = 8) + private String sampleBelong; + + @ApiModelProperty(value = "当前检定环节", dataType = "String") + @ExcelProperty(value = "当前检定环节",order = 9) + private String measureNode; + + @ApiModelProperty(value = "已出具证书", dataType = "Integer") + @ExcelProperty(value = "已出具证书", order = 12) + private Integer alreadyCertifications; + + @ApiModelProperty(value = "应出具证书", dataType = "Integer") + @ExcelProperty(value = "应出具证书", order = 13) + private Integer requireCertifications; + // 终止、回退、收入、归还、催办按钮 + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java new file mode 100644 index 0000000..37cb067 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class InterchangeListRequest { + + @ApiModelProperty(value = "交接单编号", dataType = "String") + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + private String customerName; + + @ApiModelProperty(value = "交接人", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + private String deliverTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java new file mode 100644 index 0000000..5ecdc6f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java @@ -0,0 +1,54 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +@TableName +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class InterchangeListResponse { + + private Long id; + + @ApiModelProperty(value = "交接单编号", dataType = "String") + @ExcelProperty(value = "交接单编号",order = 0) + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 1) + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + @ExcelProperty(value = "委托方名称",order = 2) + private String customerName; + + @ApiModelProperty(value = "接收人", dataType = "String") + @ExcelProperty(value = "接收人",order = 3) + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + @ExcelProperty(value = "送检人",order = 4) + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + @ExcelProperty(value = "交接时间",order = 5) + private String deliverTime; + + @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注",order = 6) + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java index 7fdc869..ba919d3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java @@ -25,7 +25,7 @@ @ExcelIgnoreUnannotated public class OrderListReponse { - private final Long id; + private final Long id; @ApiModelProperty(value = "委托书编号", dataType = "String") @ExcelProperty(value = "委托书编号",order = 0) private String orderCode; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java new file mode 100644 index 0000000..a6930fd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java @@ -0,0 +1,136 @@ +package com.casic.missiles.dto.customer.Info; + + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("customer_info") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class CustomerInfoResponse implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "编号", dataType = "String") + @ExcelProperty(value = "编号",order = 0) + private String customerNo; + + @ApiModelProperty(value = "公司名称", dataType = "String") + @ExcelProperty(value = "公司名称",order = 1) + private String customerName; + + @ApiModelProperty(value = "公司简称", dataType = "String") + @ExcelProperty(value = "公司简称",order = 2) + private String briefName; + + @ApiModelProperty(value = "业务内容", dataType = "String") + @ExcelProperty(value = "业务内容",order = 3) + private String businessContent; + + @ApiModelProperty(value = "税号", dataType = "String") + @ExcelProperty(value = "税号",order = 4) + private String taxNumber; + + @ApiModelProperty(value = "银行账户名", dataType = "String") + @ExcelProperty(value = "银行账户名",order = 5) + private String bankAccount; + + @ApiModelProperty(value = "银行名称", dataType = "String") + @ExcelProperty(value = "银行名称",order = 6) + private String bankName; + + @ApiModelProperty(value = "银行账号", dataType = "String") + @ExcelProperty(value = "银行账号",order = 7) + private String bankAccountNumber; + + @ApiModelProperty(value = "邮编", dataType = "String") + @ExcelProperty(value = "邮编",order = 8) + private String postalCode; + + @ApiModelProperty(value = "负责人", dataType = "String") + @ExcelProperty(value = "负责人",order = 9) + private String director; + + @ApiModelProperty(value = "电话", dataType = "String") + @ExcelProperty(value = "电话",order = 10) + private String phone; + + @ApiModelProperty(value = "传真", dataType = "String") + @ExcelProperty(value = "电话",order = 11) + private String fax; + + @ApiModelProperty(value = "手机", dataType = "String") + @ExcelProperty(value = "手机",order = 12) + private String mobile; + + @ApiModelProperty(value = "邮箱", dataType = "String") + @ExcelProperty(value = "邮箱",order = 13) + private String email; + + @ApiModelProperty(value = "网址", dataType = "String") + @ExcelProperty(value = "网址",order =14) + private String website; + + @ApiModelProperty(value = "履约评级-字典", dataType = "String") + private String grade; + + @ApiModelProperty(value = "公司规模", dataType = "String") + @DictCodeField(message = "公司规模描述不合法", cacheName = MeterDictCode.COMPANY_SCALE) + private String companySize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模", dataType = "String") + private String companySizeName; + + @ApiModelProperty(value = "业务规模-字典", dataType = "String") + @DictCodeField(message = "业务规模描述不合法", cacheName = MeterDictCode.BUSINESS_SCALE) + private String businessSize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模名称", dataType = "String") + private String businessSizeName; + + @ApiModelProperty(value = "整体评价", dataType = "String") + @DictCodeField(message = "公司整体评价不合法", cacheName = MeterDictCode.EVALUATION) + private String evaluation; + + @TableField(exist = false) + @ApiModelProperty(value = "整体评价", dataType = "String") + private String evaluationName; + + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @ExcelProperty(value = "详细地址",order =15) + private String fullAddress; + + @ApiModelProperty(value = "业务范围", dataType = "String") + @ExcelProperty(value = "业务范围",order =16) + private String businessScope; + + @ApiModelProperty(value = "创建时间", dataType = "String") + @ExcelProperty(value = "创建时间",order =17) + private String createTime; + + @ApiModelProperty(value = "最后更新时间", dataType = "String") + @ExcelProperty(value = "最后更新时间",order =18) + private String updateTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java index 0341f20..6c7e8b3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "样品超期状态", dataType = "String") + @ApiModelProperty(value = "样品超期状态(1/0)", dataType = "String") private String overtimeStatus; @ApiModelProperty(value = "检定开始时间", dataType = "String") 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer sampleStatus; } 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 new file mode 100644 index 0000000..135b82c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceDispatchDTO { + + @ApiModelProperty(value = "样品编号", dataType = "String") + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + private String sampleName; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + private String orderNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerNo; + + @ApiModelProperty(value = "是否加急", dataType = "String") + private String isUrgent; + + @ApiModelProperty(value = "样品所属", dataType = "String") + private String sampleBelong; + + @ApiModelProperty(value = "样品状态", dataType = "String") + private String sampleStatus; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java new file mode 100644 index 0000000..e53d8c4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto.business.dispatch; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DeviceDispatchVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "样品编号", dataType = "String") + @ExcelProperty(value = "样品编号",order = 0) + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + @ExcelProperty(value = "样品名称",order = 1) + private String sampleName; + + @ApiModelProperty(value = "型号", dataType = "String") + @ExcelProperty(value = "型号",order = 2) + private String sampleModel; + + @ApiModelProperty(value = "出厂编号", dataType = "String") + @ExcelProperty(value = "出厂编号",order = 3) + private String manufacturingNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 4) + private String customerNo; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + @ExcelProperty(value = "委托书编号",order = 5) + private String orderCode; + + @ApiModelProperty(value = "委托书名称", dataType = "String") + @ExcelProperty(value = "委托书名称",order = 6) + private String customerName; + + @ApiModelProperty(value = "计划送达时间", dataType = "String") + @ExcelProperty(value = "计划送达时间",order = 7) + private String planDeliverTime; + + //数据库暂时没有字段 + @ApiModelProperty(value = "实际送达时间", dataType = "String") + @ExcelProperty(value = "实际送达时间",order = 8) + private String realDeliverTime; + + @ApiModelProperty(value = "样品所属", dataType = "String") + @ExcelProperty(value = "样品所属",order = 8) + private String sampleBelong; + + @ApiModelProperty(value = "当前检定环节", dataType = "String") + @ExcelProperty(value = "当前检定环节",order = 9) + private String measureNode; + + @ApiModelProperty(value = "已出具证书", dataType = "Integer") + @ExcelProperty(value = "已出具证书", order = 12) + private Integer alreadyCertifications; + + @ApiModelProperty(value = "应出具证书", dataType = "Integer") + @ExcelProperty(value = "应出具证书", order = 13) + private Integer requireCertifications; + // 终止、回退、收入、归还、催办按钮 + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java new file mode 100644 index 0000000..37cb067 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class InterchangeListRequest { + + @ApiModelProperty(value = "交接单编号", dataType = "String") + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + private String customerName; + + @ApiModelProperty(value = "交接人", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + private String deliverTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java new file mode 100644 index 0000000..5ecdc6f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java @@ -0,0 +1,54 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +@TableName +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class InterchangeListResponse { + + private Long id; + + @ApiModelProperty(value = "交接单编号", dataType = "String") + @ExcelProperty(value = "交接单编号",order = 0) + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 1) + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + @ExcelProperty(value = "委托方名称",order = 2) + private String customerName; + + @ApiModelProperty(value = "接收人", dataType = "String") + @ExcelProperty(value = "接收人",order = 3) + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + @ExcelProperty(value = "送检人",order = 4) + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + @ExcelProperty(value = "交接时间",order = 5) + private String deliverTime; + + @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注",order = 6) + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java index 7fdc869..ba919d3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java @@ -25,7 +25,7 @@ @ExcelIgnoreUnannotated public class OrderListReponse { - private final Long id; + private final Long id; @ApiModelProperty(value = "委托书编号", dataType = "String") @ExcelProperty(value = "委托书编号",order = 0) private String orderCode; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java new file mode 100644 index 0000000..a6930fd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java @@ -0,0 +1,136 @@ +package com.casic.missiles.dto.customer.Info; + + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("customer_info") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class CustomerInfoResponse implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "编号", dataType = "String") + @ExcelProperty(value = "编号",order = 0) + private String customerNo; + + @ApiModelProperty(value = "公司名称", dataType = "String") + @ExcelProperty(value = "公司名称",order = 1) + private String customerName; + + @ApiModelProperty(value = "公司简称", dataType = "String") + @ExcelProperty(value = "公司简称",order = 2) + private String briefName; + + @ApiModelProperty(value = "业务内容", dataType = "String") + @ExcelProperty(value = "业务内容",order = 3) + private String businessContent; + + @ApiModelProperty(value = "税号", dataType = "String") + @ExcelProperty(value = "税号",order = 4) + private String taxNumber; + + @ApiModelProperty(value = "银行账户名", dataType = "String") + @ExcelProperty(value = "银行账户名",order = 5) + private String bankAccount; + + @ApiModelProperty(value = "银行名称", dataType = "String") + @ExcelProperty(value = "银行名称",order = 6) + private String bankName; + + @ApiModelProperty(value = "银行账号", dataType = "String") + @ExcelProperty(value = "银行账号",order = 7) + private String bankAccountNumber; + + @ApiModelProperty(value = "邮编", dataType = "String") + @ExcelProperty(value = "邮编",order = 8) + private String postalCode; + + @ApiModelProperty(value = "负责人", dataType = "String") + @ExcelProperty(value = "负责人",order = 9) + private String director; + + @ApiModelProperty(value = "电话", dataType = "String") + @ExcelProperty(value = "电话",order = 10) + private String phone; + + @ApiModelProperty(value = "传真", dataType = "String") + @ExcelProperty(value = "电话",order = 11) + private String fax; + + @ApiModelProperty(value = "手机", dataType = "String") + @ExcelProperty(value = "手机",order = 12) + private String mobile; + + @ApiModelProperty(value = "邮箱", dataType = "String") + @ExcelProperty(value = "邮箱",order = 13) + private String email; + + @ApiModelProperty(value = "网址", dataType = "String") + @ExcelProperty(value = "网址",order =14) + private String website; + + @ApiModelProperty(value = "履约评级-字典", dataType = "String") + private String grade; + + @ApiModelProperty(value = "公司规模", dataType = "String") + @DictCodeField(message = "公司规模描述不合法", cacheName = MeterDictCode.COMPANY_SCALE) + private String companySize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模", dataType = "String") + private String companySizeName; + + @ApiModelProperty(value = "业务规模-字典", dataType = "String") + @DictCodeField(message = "业务规模描述不合法", cacheName = MeterDictCode.BUSINESS_SCALE) + private String businessSize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模名称", dataType = "String") + private String businessSizeName; + + @ApiModelProperty(value = "整体评价", dataType = "String") + @DictCodeField(message = "公司整体评价不合法", cacheName = MeterDictCode.EVALUATION) + private String evaluation; + + @TableField(exist = false) + @ApiModelProperty(value = "整体评价", dataType = "String") + private String evaluationName; + + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @ExcelProperty(value = "详细地址",order =15) + private String fullAddress; + + @ApiModelProperty(value = "业务范围", dataType = "String") + @ExcelProperty(value = "业务范围",order =16) + private String businessScope; + + @ApiModelProperty(value = "创建时间", dataType = "String") + @ExcelProperty(value = "创建时间",order =17) + private String createTime; + + @ApiModelProperty(value = "最后更新时间", dataType = "String") + @ExcelProperty(value = "最后更新时间",order =18) + private String updateTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java index 0341f20..6c7e8b3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "样品超期状态", dataType = "String") + @ApiModelProperty(value = "样品超期状态(1/0)", dataType = "String") private String overtimeStatus; @ApiModelProperty(value = "检定开始时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java index 285c3ab..a7ededa 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方代码", dataType = "String") @ExcelProperty(value = "委托方代码", order = 4) - private String customerId; + private String customerNo; @TableField(exist = false) @ApiModelProperty(value = "样品状态", dataType = "String") 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer sampleStatus; } 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 new file mode 100644 index 0000000..135b82c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceDispatchDTO { + + @ApiModelProperty(value = "样品编号", dataType = "String") + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + private String sampleName; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + private String orderNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerNo; + + @ApiModelProperty(value = "是否加急", dataType = "String") + private String isUrgent; + + @ApiModelProperty(value = "样品所属", dataType = "String") + private String sampleBelong; + + @ApiModelProperty(value = "样品状态", dataType = "String") + private String sampleStatus; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java new file mode 100644 index 0000000..e53d8c4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto.business.dispatch; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DeviceDispatchVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "样品编号", dataType = "String") + @ExcelProperty(value = "样品编号",order = 0) + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + @ExcelProperty(value = "样品名称",order = 1) + private String sampleName; + + @ApiModelProperty(value = "型号", dataType = "String") + @ExcelProperty(value = "型号",order = 2) + private String sampleModel; + + @ApiModelProperty(value = "出厂编号", dataType = "String") + @ExcelProperty(value = "出厂编号",order = 3) + private String manufacturingNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 4) + private String customerNo; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + @ExcelProperty(value = "委托书编号",order = 5) + private String orderCode; + + @ApiModelProperty(value = "委托书名称", dataType = "String") + @ExcelProperty(value = "委托书名称",order = 6) + private String customerName; + + @ApiModelProperty(value = "计划送达时间", dataType = "String") + @ExcelProperty(value = "计划送达时间",order = 7) + private String planDeliverTime; + + //数据库暂时没有字段 + @ApiModelProperty(value = "实际送达时间", dataType = "String") + @ExcelProperty(value = "实际送达时间",order = 8) + private String realDeliverTime; + + @ApiModelProperty(value = "样品所属", dataType = "String") + @ExcelProperty(value = "样品所属",order = 8) + private String sampleBelong; + + @ApiModelProperty(value = "当前检定环节", dataType = "String") + @ExcelProperty(value = "当前检定环节",order = 9) + private String measureNode; + + @ApiModelProperty(value = "已出具证书", dataType = "Integer") + @ExcelProperty(value = "已出具证书", order = 12) + private Integer alreadyCertifications; + + @ApiModelProperty(value = "应出具证书", dataType = "Integer") + @ExcelProperty(value = "应出具证书", order = 13) + private Integer requireCertifications; + // 终止、回退、收入、归还、催办按钮 + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java new file mode 100644 index 0000000..37cb067 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class InterchangeListRequest { + + @ApiModelProperty(value = "交接单编号", dataType = "String") + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + private String customerName; + + @ApiModelProperty(value = "交接人", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + private String deliverTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java new file mode 100644 index 0000000..5ecdc6f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java @@ -0,0 +1,54 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +@TableName +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class InterchangeListResponse { + + private Long id; + + @ApiModelProperty(value = "交接单编号", dataType = "String") + @ExcelProperty(value = "交接单编号",order = 0) + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 1) + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + @ExcelProperty(value = "委托方名称",order = 2) + private String customerName; + + @ApiModelProperty(value = "接收人", dataType = "String") + @ExcelProperty(value = "接收人",order = 3) + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + @ExcelProperty(value = "送检人",order = 4) + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + @ExcelProperty(value = "交接时间",order = 5) + private String deliverTime; + + @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注",order = 6) + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java index 7fdc869..ba919d3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java @@ -25,7 +25,7 @@ @ExcelIgnoreUnannotated public class OrderListReponse { - private final Long id; + private final Long id; @ApiModelProperty(value = "委托书编号", dataType = "String") @ExcelProperty(value = "委托书编号",order = 0) private String orderCode; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java new file mode 100644 index 0000000..a6930fd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java @@ -0,0 +1,136 @@ +package com.casic.missiles.dto.customer.Info; + + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("customer_info") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class CustomerInfoResponse implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "编号", dataType = "String") + @ExcelProperty(value = "编号",order = 0) + private String customerNo; + + @ApiModelProperty(value = "公司名称", dataType = "String") + @ExcelProperty(value = "公司名称",order = 1) + private String customerName; + + @ApiModelProperty(value = "公司简称", dataType = "String") + @ExcelProperty(value = "公司简称",order = 2) + private String briefName; + + @ApiModelProperty(value = "业务内容", dataType = "String") + @ExcelProperty(value = "业务内容",order = 3) + private String businessContent; + + @ApiModelProperty(value = "税号", dataType = "String") + @ExcelProperty(value = "税号",order = 4) + private String taxNumber; + + @ApiModelProperty(value = "银行账户名", dataType = "String") + @ExcelProperty(value = "银行账户名",order = 5) + private String bankAccount; + + @ApiModelProperty(value = "银行名称", dataType = "String") + @ExcelProperty(value = "银行名称",order = 6) + private String bankName; + + @ApiModelProperty(value = "银行账号", dataType = "String") + @ExcelProperty(value = "银行账号",order = 7) + private String bankAccountNumber; + + @ApiModelProperty(value = "邮编", dataType = "String") + @ExcelProperty(value = "邮编",order = 8) + private String postalCode; + + @ApiModelProperty(value = "负责人", dataType = "String") + @ExcelProperty(value = "负责人",order = 9) + private String director; + + @ApiModelProperty(value = "电话", dataType = "String") + @ExcelProperty(value = "电话",order = 10) + private String phone; + + @ApiModelProperty(value = "传真", dataType = "String") + @ExcelProperty(value = "电话",order = 11) + private String fax; + + @ApiModelProperty(value = "手机", dataType = "String") + @ExcelProperty(value = "手机",order = 12) + private String mobile; + + @ApiModelProperty(value = "邮箱", dataType = "String") + @ExcelProperty(value = "邮箱",order = 13) + private String email; + + @ApiModelProperty(value = "网址", dataType = "String") + @ExcelProperty(value = "网址",order =14) + private String website; + + @ApiModelProperty(value = "履约评级-字典", dataType = "String") + private String grade; + + @ApiModelProperty(value = "公司规模", dataType = "String") + @DictCodeField(message = "公司规模描述不合法", cacheName = MeterDictCode.COMPANY_SCALE) + private String companySize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模", dataType = "String") + private String companySizeName; + + @ApiModelProperty(value = "业务规模-字典", dataType = "String") + @DictCodeField(message = "业务规模描述不合法", cacheName = MeterDictCode.BUSINESS_SCALE) + private String businessSize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模名称", dataType = "String") + private String businessSizeName; + + @ApiModelProperty(value = "整体评价", dataType = "String") + @DictCodeField(message = "公司整体评价不合法", cacheName = MeterDictCode.EVALUATION) + private String evaluation; + + @TableField(exist = false) + @ApiModelProperty(value = "整体评价", dataType = "String") + private String evaluationName; + + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @ExcelProperty(value = "详细地址",order =15) + private String fullAddress; + + @ApiModelProperty(value = "业务范围", dataType = "String") + @ExcelProperty(value = "业务范围",order =16) + private String businessScope; + + @ApiModelProperty(value = "创建时间", dataType = "String") + @ExcelProperty(value = "创建时间",order =17) + private String createTime; + + @ApiModelProperty(value = "最后更新时间", dataType = "String") + @ExcelProperty(value = "最后更新时间",order =18) + private String updateTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java index 0341f20..6c7e8b3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "样品超期状态", dataType = "String") + @ApiModelProperty(value = "样品超期状态(1/0)", dataType = "String") private String overtimeStatus; @ApiModelProperty(value = "检定开始时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java index 285c3ab..a7ededa 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方代码", dataType = "String") @ExcelProperty(value = "委托方代码", order = 4) - private String customerId; + private String customerNo; @TableField(exist = false) @ApiModelProperty(value = "样品状态", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java index f62ce7f..f751625 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java @@ -3,9 +3,11 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.model.customer.CustomerSampleInfo; import lombok.Data; import java.io.Serializable; +import java.util.List; /** *

@@ -150,5 +152,6 @@ @TableField("update_time") private String updateTime; - -} + @TableField(exist = false) + private List customerSampleInfoList; + } 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer sampleStatus; } 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 new file mode 100644 index 0000000..135b82c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceDispatchDTO { + + @ApiModelProperty(value = "样品编号", dataType = "String") + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + private String sampleName; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + private String orderNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerNo; + + @ApiModelProperty(value = "是否加急", dataType = "String") + private String isUrgent; + + @ApiModelProperty(value = "样品所属", dataType = "String") + private String sampleBelong; + + @ApiModelProperty(value = "样品状态", dataType = "String") + private String sampleStatus; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java new file mode 100644 index 0000000..e53d8c4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto.business.dispatch; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DeviceDispatchVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "样品编号", dataType = "String") + @ExcelProperty(value = "样品编号",order = 0) + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + @ExcelProperty(value = "样品名称",order = 1) + private String sampleName; + + @ApiModelProperty(value = "型号", dataType = "String") + @ExcelProperty(value = "型号",order = 2) + private String sampleModel; + + @ApiModelProperty(value = "出厂编号", dataType = "String") + @ExcelProperty(value = "出厂编号",order = 3) + private String manufacturingNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 4) + private String customerNo; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + @ExcelProperty(value = "委托书编号",order = 5) + private String orderCode; + + @ApiModelProperty(value = "委托书名称", dataType = "String") + @ExcelProperty(value = "委托书名称",order = 6) + private String customerName; + + @ApiModelProperty(value = "计划送达时间", dataType = "String") + @ExcelProperty(value = "计划送达时间",order = 7) + private String planDeliverTime; + + //数据库暂时没有字段 + @ApiModelProperty(value = "实际送达时间", dataType = "String") + @ExcelProperty(value = "实际送达时间",order = 8) + private String realDeliverTime; + + @ApiModelProperty(value = "样品所属", dataType = "String") + @ExcelProperty(value = "样品所属",order = 8) + private String sampleBelong; + + @ApiModelProperty(value = "当前检定环节", dataType = "String") + @ExcelProperty(value = "当前检定环节",order = 9) + private String measureNode; + + @ApiModelProperty(value = "已出具证书", dataType = "Integer") + @ExcelProperty(value = "已出具证书", order = 12) + private Integer alreadyCertifications; + + @ApiModelProperty(value = "应出具证书", dataType = "Integer") + @ExcelProperty(value = "应出具证书", order = 13) + private Integer requireCertifications; + // 终止、回退、收入、归还、催办按钮 + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java new file mode 100644 index 0000000..37cb067 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class InterchangeListRequest { + + @ApiModelProperty(value = "交接单编号", dataType = "String") + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + private String customerName; + + @ApiModelProperty(value = "交接人", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + private String deliverTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java new file mode 100644 index 0000000..5ecdc6f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java @@ -0,0 +1,54 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +@TableName +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class InterchangeListResponse { + + private Long id; + + @ApiModelProperty(value = "交接单编号", dataType = "String") + @ExcelProperty(value = "交接单编号",order = 0) + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 1) + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + @ExcelProperty(value = "委托方名称",order = 2) + private String customerName; + + @ApiModelProperty(value = "接收人", dataType = "String") + @ExcelProperty(value = "接收人",order = 3) + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + @ExcelProperty(value = "送检人",order = 4) + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + @ExcelProperty(value = "交接时间",order = 5) + private String deliverTime; + + @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注",order = 6) + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java index 7fdc869..ba919d3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java @@ -25,7 +25,7 @@ @ExcelIgnoreUnannotated public class OrderListReponse { - private final Long id; + private final Long id; @ApiModelProperty(value = "委托书编号", dataType = "String") @ExcelProperty(value = "委托书编号",order = 0) private String orderCode; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java new file mode 100644 index 0000000..a6930fd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java @@ -0,0 +1,136 @@ +package com.casic.missiles.dto.customer.Info; + + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("customer_info") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class CustomerInfoResponse implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "编号", dataType = "String") + @ExcelProperty(value = "编号",order = 0) + private String customerNo; + + @ApiModelProperty(value = "公司名称", dataType = "String") + @ExcelProperty(value = "公司名称",order = 1) + private String customerName; + + @ApiModelProperty(value = "公司简称", dataType = "String") + @ExcelProperty(value = "公司简称",order = 2) + private String briefName; + + @ApiModelProperty(value = "业务内容", dataType = "String") + @ExcelProperty(value = "业务内容",order = 3) + private String businessContent; + + @ApiModelProperty(value = "税号", dataType = "String") + @ExcelProperty(value = "税号",order = 4) + private String taxNumber; + + @ApiModelProperty(value = "银行账户名", dataType = "String") + @ExcelProperty(value = "银行账户名",order = 5) + private String bankAccount; + + @ApiModelProperty(value = "银行名称", dataType = "String") + @ExcelProperty(value = "银行名称",order = 6) + private String bankName; + + @ApiModelProperty(value = "银行账号", dataType = "String") + @ExcelProperty(value = "银行账号",order = 7) + private String bankAccountNumber; + + @ApiModelProperty(value = "邮编", dataType = "String") + @ExcelProperty(value = "邮编",order = 8) + private String postalCode; + + @ApiModelProperty(value = "负责人", dataType = "String") + @ExcelProperty(value = "负责人",order = 9) + private String director; + + @ApiModelProperty(value = "电话", dataType = "String") + @ExcelProperty(value = "电话",order = 10) + private String phone; + + @ApiModelProperty(value = "传真", dataType = "String") + @ExcelProperty(value = "电话",order = 11) + private String fax; + + @ApiModelProperty(value = "手机", dataType = "String") + @ExcelProperty(value = "手机",order = 12) + private String mobile; + + @ApiModelProperty(value = "邮箱", dataType = "String") + @ExcelProperty(value = "邮箱",order = 13) + private String email; + + @ApiModelProperty(value = "网址", dataType = "String") + @ExcelProperty(value = "网址",order =14) + private String website; + + @ApiModelProperty(value = "履约评级-字典", dataType = "String") + private String grade; + + @ApiModelProperty(value = "公司规模", dataType = "String") + @DictCodeField(message = "公司规模描述不合法", cacheName = MeterDictCode.COMPANY_SCALE) + private String companySize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模", dataType = "String") + private String companySizeName; + + @ApiModelProperty(value = "业务规模-字典", dataType = "String") + @DictCodeField(message = "业务规模描述不合法", cacheName = MeterDictCode.BUSINESS_SCALE) + private String businessSize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模名称", dataType = "String") + private String businessSizeName; + + @ApiModelProperty(value = "整体评价", dataType = "String") + @DictCodeField(message = "公司整体评价不合法", cacheName = MeterDictCode.EVALUATION) + private String evaluation; + + @TableField(exist = false) + @ApiModelProperty(value = "整体评价", dataType = "String") + private String evaluationName; + + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @ExcelProperty(value = "详细地址",order =15) + private String fullAddress; + + @ApiModelProperty(value = "业务范围", dataType = "String") + @ExcelProperty(value = "业务范围",order =16) + private String businessScope; + + @ApiModelProperty(value = "创建时间", dataType = "String") + @ExcelProperty(value = "创建时间",order =17) + private String createTime; + + @ApiModelProperty(value = "最后更新时间", dataType = "String") + @ExcelProperty(value = "最后更新时间",order =18) + private String updateTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java index 0341f20..6c7e8b3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "样品超期状态", dataType = "String") + @ApiModelProperty(value = "样品超期状态(1/0)", dataType = "String") private String overtimeStatus; @ApiModelProperty(value = "检定开始时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java index 285c3ab..a7ededa 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方代码", dataType = "String") @ExcelProperty(value = "委托方代码", order = 4) - private String customerId; + private String customerNo; @TableField(exist = false) @ApiModelProperty(value = "样品状态", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java index f62ce7f..f751625 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java @@ -3,9 +3,11 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.model.customer.CustomerSampleInfo; import lombok.Data; import java.io.Serializable; +import java.util.List; /** *

@@ -150,5 +152,6 @@ @TableField("update_time") private String updateTime; - -} + @TableField(exist = false) + private List customerSampleInfoList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java index 5a3d50f..455340b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java @@ -54,6 +54,17 @@ @TableField("measure_content") private String measureContent; + //检定方式 + @TableField("measure_type") + private String measureType; + + /** + * 样品检测设备实际到达时间 + */ + @TableField("real_deliver_time") + private String realDeliverTime; + + @TableField("create_time") private String createTime; 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer sampleStatus; } 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 new file mode 100644 index 0000000..135b82c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceDispatchDTO { + + @ApiModelProperty(value = "样品编号", dataType = "String") + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + private String sampleName; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + private String orderNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerNo; + + @ApiModelProperty(value = "是否加急", dataType = "String") + private String isUrgent; + + @ApiModelProperty(value = "样品所属", dataType = "String") + private String sampleBelong; + + @ApiModelProperty(value = "样品状态", dataType = "String") + private String sampleStatus; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java new file mode 100644 index 0000000..e53d8c4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto.business.dispatch; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DeviceDispatchVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "样品编号", dataType = "String") + @ExcelProperty(value = "样品编号",order = 0) + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + @ExcelProperty(value = "样品名称",order = 1) + private String sampleName; + + @ApiModelProperty(value = "型号", dataType = "String") + @ExcelProperty(value = "型号",order = 2) + private String sampleModel; + + @ApiModelProperty(value = "出厂编号", dataType = "String") + @ExcelProperty(value = "出厂编号",order = 3) + private String manufacturingNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 4) + private String customerNo; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + @ExcelProperty(value = "委托书编号",order = 5) + private String orderCode; + + @ApiModelProperty(value = "委托书名称", dataType = "String") + @ExcelProperty(value = "委托书名称",order = 6) + private String customerName; + + @ApiModelProperty(value = "计划送达时间", dataType = "String") + @ExcelProperty(value = "计划送达时间",order = 7) + private String planDeliverTime; + + //数据库暂时没有字段 + @ApiModelProperty(value = "实际送达时间", dataType = "String") + @ExcelProperty(value = "实际送达时间",order = 8) + private String realDeliverTime; + + @ApiModelProperty(value = "样品所属", dataType = "String") + @ExcelProperty(value = "样品所属",order = 8) + private String sampleBelong; + + @ApiModelProperty(value = "当前检定环节", dataType = "String") + @ExcelProperty(value = "当前检定环节",order = 9) + private String measureNode; + + @ApiModelProperty(value = "已出具证书", dataType = "Integer") + @ExcelProperty(value = "已出具证书", order = 12) + private Integer alreadyCertifications; + + @ApiModelProperty(value = "应出具证书", dataType = "Integer") + @ExcelProperty(value = "应出具证书", order = 13) + private Integer requireCertifications; + // 终止、回退、收入、归还、催办按钮 + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java new file mode 100644 index 0000000..37cb067 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class InterchangeListRequest { + + @ApiModelProperty(value = "交接单编号", dataType = "String") + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + private String customerName; + + @ApiModelProperty(value = "交接人", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + private String deliverTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java new file mode 100644 index 0000000..5ecdc6f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java @@ -0,0 +1,54 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +@TableName +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class InterchangeListResponse { + + private Long id; + + @ApiModelProperty(value = "交接单编号", dataType = "String") + @ExcelProperty(value = "交接单编号",order = 0) + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 1) + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + @ExcelProperty(value = "委托方名称",order = 2) + private String customerName; + + @ApiModelProperty(value = "接收人", dataType = "String") + @ExcelProperty(value = "接收人",order = 3) + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + @ExcelProperty(value = "送检人",order = 4) + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + @ExcelProperty(value = "交接时间",order = 5) + private String deliverTime; + + @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注",order = 6) + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java index 7fdc869..ba919d3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java @@ -25,7 +25,7 @@ @ExcelIgnoreUnannotated public class OrderListReponse { - private final Long id; + private final Long id; @ApiModelProperty(value = "委托书编号", dataType = "String") @ExcelProperty(value = "委托书编号",order = 0) private String orderCode; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java new file mode 100644 index 0000000..a6930fd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java @@ -0,0 +1,136 @@ +package com.casic.missiles.dto.customer.Info; + + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("customer_info") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class CustomerInfoResponse implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "编号", dataType = "String") + @ExcelProperty(value = "编号",order = 0) + private String customerNo; + + @ApiModelProperty(value = "公司名称", dataType = "String") + @ExcelProperty(value = "公司名称",order = 1) + private String customerName; + + @ApiModelProperty(value = "公司简称", dataType = "String") + @ExcelProperty(value = "公司简称",order = 2) + private String briefName; + + @ApiModelProperty(value = "业务内容", dataType = "String") + @ExcelProperty(value = "业务内容",order = 3) + private String businessContent; + + @ApiModelProperty(value = "税号", dataType = "String") + @ExcelProperty(value = "税号",order = 4) + private String taxNumber; + + @ApiModelProperty(value = "银行账户名", dataType = "String") + @ExcelProperty(value = "银行账户名",order = 5) + private String bankAccount; + + @ApiModelProperty(value = "银行名称", dataType = "String") + @ExcelProperty(value = "银行名称",order = 6) + private String bankName; + + @ApiModelProperty(value = "银行账号", dataType = "String") + @ExcelProperty(value = "银行账号",order = 7) + private String bankAccountNumber; + + @ApiModelProperty(value = "邮编", dataType = "String") + @ExcelProperty(value = "邮编",order = 8) + private String postalCode; + + @ApiModelProperty(value = "负责人", dataType = "String") + @ExcelProperty(value = "负责人",order = 9) + private String director; + + @ApiModelProperty(value = "电话", dataType = "String") + @ExcelProperty(value = "电话",order = 10) + private String phone; + + @ApiModelProperty(value = "传真", dataType = "String") + @ExcelProperty(value = "电话",order = 11) + private String fax; + + @ApiModelProperty(value = "手机", dataType = "String") + @ExcelProperty(value = "手机",order = 12) + private String mobile; + + @ApiModelProperty(value = "邮箱", dataType = "String") + @ExcelProperty(value = "邮箱",order = 13) + private String email; + + @ApiModelProperty(value = "网址", dataType = "String") + @ExcelProperty(value = "网址",order =14) + private String website; + + @ApiModelProperty(value = "履约评级-字典", dataType = "String") + private String grade; + + @ApiModelProperty(value = "公司规模", dataType = "String") + @DictCodeField(message = "公司规模描述不合法", cacheName = MeterDictCode.COMPANY_SCALE) + private String companySize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模", dataType = "String") + private String companySizeName; + + @ApiModelProperty(value = "业务规模-字典", dataType = "String") + @DictCodeField(message = "业务规模描述不合法", cacheName = MeterDictCode.BUSINESS_SCALE) + private String businessSize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模名称", dataType = "String") + private String businessSizeName; + + @ApiModelProperty(value = "整体评价", dataType = "String") + @DictCodeField(message = "公司整体评价不合法", cacheName = MeterDictCode.EVALUATION) + private String evaluation; + + @TableField(exist = false) + @ApiModelProperty(value = "整体评价", dataType = "String") + private String evaluationName; + + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @ExcelProperty(value = "详细地址",order =15) + private String fullAddress; + + @ApiModelProperty(value = "业务范围", dataType = "String") + @ExcelProperty(value = "业务范围",order =16) + private String businessScope; + + @ApiModelProperty(value = "创建时间", dataType = "String") + @ExcelProperty(value = "创建时间",order =17) + private String createTime; + + @ApiModelProperty(value = "最后更新时间", dataType = "String") + @ExcelProperty(value = "最后更新时间",order =18) + private String updateTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java index 0341f20..6c7e8b3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "样品超期状态", dataType = "String") + @ApiModelProperty(value = "样品超期状态(1/0)", dataType = "String") private String overtimeStatus; @ApiModelProperty(value = "检定开始时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java index 285c3ab..a7ededa 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方代码", dataType = "String") @ExcelProperty(value = "委托方代码", order = 4) - private String customerId; + private String customerNo; @TableField(exist = false) @ApiModelProperty(value = "样品状态", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java index f62ce7f..f751625 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java @@ -3,9 +3,11 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.model.customer.CustomerSampleInfo; import lombok.Data; import java.io.Serializable; +import java.util.List; /** *

@@ -150,5 +152,6 @@ @TableField("update_time") private String updateTime; - -} + @TableField(exist = false) + private List customerSampleInfoList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java index 5a3d50f..455340b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java @@ -54,6 +54,17 @@ @TableField("measure_content") private String measureContent; + //检定方式 + @TableField("measure_type") + private String measureType; + + /** + * 样品检测设备实际到达时间 + */ + @TableField("real_deliver_time") + private String realDeliverTime; + + @TableField("create_time") private String createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java index 068bf49..a482c09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java @@ -19,11 +19,6 @@ @Data @TableName("customer_info") -@ColumnWidth(30) -@HeadRowHeight(15) -@ContentRowHeight(20) -@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) -@ExcelIgnoreUnannotated public class CustomerInfo implements Serializable { private static final long serialVersionUID = 1L; @@ -31,63 +26,48 @@ private Long id; @ApiModelProperty(value = "编号", dataType = "String") - @ExcelProperty(value = "编号",order = 0) private String customerNo; @ApiModelProperty(value = "公司名称", dataType = "String") - @ExcelProperty(value = "公司名称",order = 1) private String customerName; @ApiModelProperty(value = "公司简称", dataType = "String") - @ExcelProperty(value = "公司简称",order = 2) private String briefName; @ApiModelProperty(value = "业务内容", dataType = "String") - @ExcelProperty(value = "业务内容",order = 3) private String businessContent; @ApiModelProperty(value = "税号", dataType = "String") - @ExcelProperty(value = "税号",order = 4) private String taxNumber; @ApiModelProperty(value = "银行账户名", dataType = "String") - @ExcelProperty(value = "银行账户名",order = 5) private String bankAccount; @ApiModelProperty(value = "银行名称", dataType = "String") - @ExcelProperty(value = "银行名称",order = 6) private String bankName; @ApiModelProperty(value = "银行账号", dataType = "String") - @ExcelProperty(value = "银行账号",order = 7) private String bankAccountNumber; @ApiModelProperty(value = "邮编", dataType = "String") - @ExcelProperty(value = "邮编",order = 8) private String postalCode; @ApiModelProperty(value = "负责人", dataType = "String") - @ExcelProperty(value = "负责人",order = 9) private String director; @ApiModelProperty(value = "电话", dataType = "String") - @ExcelProperty(value = "电话",order = 10) private String phone; @ApiModelProperty(value = "传真", dataType = "String") - @ExcelProperty(value = "电话",order = 11) private String fax; @ApiModelProperty(value = "手机", dataType = "String") - @ExcelProperty(value = "手机",order = 12) private String mobile; @ApiModelProperty(value = "邮箱", dataType = "String") - @ExcelProperty(value = "邮箱",order = 13) private String email; @ApiModelProperty(value = "网址", dataType = "String") - @ExcelProperty(value = "网址",order =14) private String website; @ApiModelProperty(value = "履约评级-字典", dataType = "String") @@ -130,7 +110,6 @@ private String addressArea; @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") - @ExcelProperty(value = "详细地址",order =15) private String fullAddress; @ApiModelProperty(value = "公司地址-国家名字", dataType = "String") @@ -173,7 +152,6 @@ private String invoiceAreaName; @ApiModelProperty(value = "业务范围", dataType = "String") - @ExcelProperty(value = "业务范围",order =16) private String businessScope; @ApiModelProperty(value = "minio存储文件名", dataType = "String") @@ -192,11 +170,9 @@ private Integer isDel; @ApiModelProperty(value = "创建时间", dataType = "String") - @ExcelProperty(value = "创建时间",order =17) private String createTime; @ApiModelProperty(value = "最后更新时间", dataType = "String") - @ExcelProperty(value = "最后更新时间",order =18) private String updateTime; @TableField(exist = false) 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer sampleStatus; } 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 new file mode 100644 index 0000000..135b82c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceDispatchDTO { + + @ApiModelProperty(value = "样品编号", dataType = "String") + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + private String sampleName; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + private String orderNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerNo; + + @ApiModelProperty(value = "是否加急", dataType = "String") + private String isUrgent; + + @ApiModelProperty(value = "样品所属", dataType = "String") + private String sampleBelong; + + @ApiModelProperty(value = "样品状态", dataType = "String") + private String sampleStatus; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java new file mode 100644 index 0000000..e53d8c4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto.business.dispatch; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DeviceDispatchVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "样品编号", dataType = "String") + @ExcelProperty(value = "样品编号",order = 0) + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + @ExcelProperty(value = "样品名称",order = 1) + private String sampleName; + + @ApiModelProperty(value = "型号", dataType = "String") + @ExcelProperty(value = "型号",order = 2) + private String sampleModel; + + @ApiModelProperty(value = "出厂编号", dataType = "String") + @ExcelProperty(value = "出厂编号",order = 3) + private String manufacturingNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 4) + private String customerNo; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + @ExcelProperty(value = "委托书编号",order = 5) + private String orderCode; + + @ApiModelProperty(value = "委托书名称", dataType = "String") + @ExcelProperty(value = "委托书名称",order = 6) + private String customerName; + + @ApiModelProperty(value = "计划送达时间", dataType = "String") + @ExcelProperty(value = "计划送达时间",order = 7) + private String planDeliverTime; + + //数据库暂时没有字段 + @ApiModelProperty(value = "实际送达时间", dataType = "String") + @ExcelProperty(value = "实际送达时间",order = 8) + private String realDeliverTime; + + @ApiModelProperty(value = "样品所属", dataType = "String") + @ExcelProperty(value = "样品所属",order = 8) + private String sampleBelong; + + @ApiModelProperty(value = "当前检定环节", dataType = "String") + @ExcelProperty(value = "当前检定环节",order = 9) + private String measureNode; + + @ApiModelProperty(value = "已出具证书", dataType = "Integer") + @ExcelProperty(value = "已出具证书", order = 12) + private Integer alreadyCertifications; + + @ApiModelProperty(value = "应出具证书", dataType = "Integer") + @ExcelProperty(value = "应出具证书", order = 13) + private Integer requireCertifications; + // 终止、回退、收入、归还、催办按钮 + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java new file mode 100644 index 0000000..37cb067 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class InterchangeListRequest { + + @ApiModelProperty(value = "交接单编号", dataType = "String") + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + private String customerName; + + @ApiModelProperty(value = "交接人", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + private String deliverTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java new file mode 100644 index 0000000..5ecdc6f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java @@ -0,0 +1,54 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +@TableName +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class InterchangeListResponse { + + private Long id; + + @ApiModelProperty(value = "交接单编号", dataType = "String") + @ExcelProperty(value = "交接单编号",order = 0) + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 1) + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + @ExcelProperty(value = "委托方名称",order = 2) + private String customerName; + + @ApiModelProperty(value = "接收人", dataType = "String") + @ExcelProperty(value = "接收人",order = 3) + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + @ExcelProperty(value = "送检人",order = 4) + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + @ExcelProperty(value = "交接时间",order = 5) + private String deliverTime; + + @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注",order = 6) + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java index 7fdc869..ba919d3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java @@ -25,7 +25,7 @@ @ExcelIgnoreUnannotated public class OrderListReponse { - private final Long id; + private final Long id; @ApiModelProperty(value = "委托书编号", dataType = "String") @ExcelProperty(value = "委托书编号",order = 0) private String orderCode; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java new file mode 100644 index 0000000..a6930fd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java @@ -0,0 +1,136 @@ +package com.casic.missiles.dto.customer.Info; + + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("customer_info") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class CustomerInfoResponse implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "编号", dataType = "String") + @ExcelProperty(value = "编号",order = 0) + private String customerNo; + + @ApiModelProperty(value = "公司名称", dataType = "String") + @ExcelProperty(value = "公司名称",order = 1) + private String customerName; + + @ApiModelProperty(value = "公司简称", dataType = "String") + @ExcelProperty(value = "公司简称",order = 2) + private String briefName; + + @ApiModelProperty(value = "业务内容", dataType = "String") + @ExcelProperty(value = "业务内容",order = 3) + private String businessContent; + + @ApiModelProperty(value = "税号", dataType = "String") + @ExcelProperty(value = "税号",order = 4) + private String taxNumber; + + @ApiModelProperty(value = "银行账户名", dataType = "String") + @ExcelProperty(value = "银行账户名",order = 5) + private String bankAccount; + + @ApiModelProperty(value = "银行名称", dataType = "String") + @ExcelProperty(value = "银行名称",order = 6) + private String bankName; + + @ApiModelProperty(value = "银行账号", dataType = "String") + @ExcelProperty(value = "银行账号",order = 7) + private String bankAccountNumber; + + @ApiModelProperty(value = "邮编", dataType = "String") + @ExcelProperty(value = "邮编",order = 8) + private String postalCode; + + @ApiModelProperty(value = "负责人", dataType = "String") + @ExcelProperty(value = "负责人",order = 9) + private String director; + + @ApiModelProperty(value = "电话", dataType = "String") + @ExcelProperty(value = "电话",order = 10) + private String phone; + + @ApiModelProperty(value = "传真", dataType = "String") + @ExcelProperty(value = "电话",order = 11) + private String fax; + + @ApiModelProperty(value = "手机", dataType = "String") + @ExcelProperty(value = "手机",order = 12) + private String mobile; + + @ApiModelProperty(value = "邮箱", dataType = "String") + @ExcelProperty(value = "邮箱",order = 13) + private String email; + + @ApiModelProperty(value = "网址", dataType = "String") + @ExcelProperty(value = "网址",order =14) + private String website; + + @ApiModelProperty(value = "履约评级-字典", dataType = "String") + private String grade; + + @ApiModelProperty(value = "公司规模", dataType = "String") + @DictCodeField(message = "公司规模描述不合法", cacheName = MeterDictCode.COMPANY_SCALE) + private String companySize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模", dataType = "String") + private String companySizeName; + + @ApiModelProperty(value = "业务规模-字典", dataType = "String") + @DictCodeField(message = "业务规模描述不合法", cacheName = MeterDictCode.BUSINESS_SCALE) + private String businessSize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模名称", dataType = "String") + private String businessSizeName; + + @ApiModelProperty(value = "整体评价", dataType = "String") + @DictCodeField(message = "公司整体评价不合法", cacheName = MeterDictCode.EVALUATION) + private String evaluation; + + @TableField(exist = false) + @ApiModelProperty(value = "整体评价", dataType = "String") + private String evaluationName; + + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @ExcelProperty(value = "详细地址",order =15) + private String fullAddress; + + @ApiModelProperty(value = "业务范围", dataType = "String") + @ExcelProperty(value = "业务范围",order =16) + private String businessScope; + + @ApiModelProperty(value = "创建时间", dataType = "String") + @ExcelProperty(value = "创建时间",order =17) + private String createTime; + + @ApiModelProperty(value = "最后更新时间", dataType = "String") + @ExcelProperty(value = "最后更新时间",order =18) + private String updateTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java index 0341f20..6c7e8b3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "样品超期状态", dataType = "String") + @ApiModelProperty(value = "样品超期状态(1/0)", dataType = "String") private String overtimeStatus; @ApiModelProperty(value = "检定开始时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java index 285c3ab..a7ededa 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方代码", dataType = "String") @ExcelProperty(value = "委托方代码", order = 4) - private String customerId; + private String customerNo; @TableField(exist = false) @ApiModelProperty(value = "样品状态", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java index f62ce7f..f751625 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java @@ -3,9 +3,11 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.model.customer.CustomerSampleInfo; import lombok.Data; import java.io.Serializable; +import java.util.List; /** *

@@ -150,5 +152,6 @@ @TableField("update_time") private String updateTime; - -} + @TableField(exist = false) + private List customerSampleInfoList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java index 5a3d50f..455340b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java @@ -54,6 +54,17 @@ @TableField("measure_content") private String measureContent; + //检定方式 + @TableField("measure_type") + private String measureType; + + /** + * 样品检测设备实际到达时间 + */ + @TableField("real_deliver_time") + private String realDeliverTime; + + @TableField("create_time") private String createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java index 068bf49..a482c09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java @@ -19,11 +19,6 @@ @Data @TableName("customer_info") -@ColumnWidth(30) -@HeadRowHeight(15) -@ContentRowHeight(20) -@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) -@ExcelIgnoreUnannotated public class CustomerInfo implements Serializable { private static final long serialVersionUID = 1L; @@ -31,63 +26,48 @@ private Long id; @ApiModelProperty(value = "编号", dataType = "String") - @ExcelProperty(value = "编号",order = 0) private String customerNo; @ApiModelProperty(value = "公司名称", dataType = "String") - @ExcelProperty(value = "公司名称",order = 1) private String customerName; @ApiModelProperty(value = "公司简称", dataType = "String") - @ExcelProperty(value = "公司简称",order = 2) private String briefName; @ApiModelProperty(value = "业务内容", dataType = "String") - @ExcelProperty(value = "业务内容",order = 3) private String businessContent; @ApiModelProperty(value = "税号", dataType = "String") - @ExcelProperty(value = "税号",order = 4) private String taxNumber; @ApiModelProperty(value = "银行账户名", dataType = "String") - @ExcelProperty(value = "银行账户名",order = 5) private String bankAccount; @ApiModelProperty(value = "银行名称", dataType = "String") - @ExcelProperty(value = "银行名称",order = 6) private String bankName; @ApiModelProperty(value = "银行账号", dataType = "String") - @ExcelProperty(value = "银行账号",order = 7) private String bankAccountNumber; @ApiModelProperty(value = "邮编", dataType = "String") - @ExcelProperty(value = "邮编",order = 8) private String postalCode; @ApiModelProperty(value = "负责人", dataType = "String") - @ExcelProperty(value = "负责人",order = 9) private String director; @ApiModelProperty(value = "电话", dataType = "String") - @ExcelProperty(value = "电话",order = 10) private String phone; @ApiModelProperty(value = "传真", dataType = "String") - @ExcelProperty(value = "电话",order = 11) private String fax; @ApiModelProperty(value = "手机", dataType = "String") - @ExcelProperty(value = "手机",order = 12) private String mobile; @ApiModelProperty(value = "邮箱", dataType = "String") - @ExcelProperty(value = "邮箱",order = 13) private String email; @ApiModelProperty(value = "网址", dataType = "String") - @ExcelProperty(value = "网址",order =14) private String website; @ApiModelProperty(value = "履约评级-字典", dataType = "String") @@ -130,7 +110,6 @@ private String addressArea; @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") - @ExcelProperty(value = "详细地址",order =15) private String fullAddress; @ApiModelProperty(value = "公司地址-国家名字", dataType = "String") @@ -173,7 +152,6 @@ private String invoiceAreaName; @ApiModelProperty(value = "业务范围", dataType = "String") - @ExcelProperty(value = "业务范围",order =16) private String businessScope; @ApiModelProperty(value = "minio存储文件名", dataType = "String") @@ -192,11 +170,9 @@ private Integer isDel; @ApiModelProperty(value = "创建时间", dataType = "String") - @ExcelProperty(value = "创建时间",order =17) private String createTime; @ApiModelProperty(value = "最后更新时间", dataType = "String") - @ExcelProperty(value = "最后更新时间",order =18) private String updateTime; @TableField(exist = false) diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java index 17fbf10..dfcc97b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java @@ -77,9 +77,6 @@ @ApiModelProperty(value = "检定周期(月)", dataType = "String") private String measurePeriod; - @ApiModelProperty(value = "检定方式-字典", dataType = "String") - private String measureType; - @ApiModelProperty(value = "有效期限", dataType = "String") private String validDeadline; 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer sampleStatus; } 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 new file mode 100644 index 0000000..135b82c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceDispatchDTO { + + @ApiModelProperty(value = "样品编号", dataType = "String") + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + private String sampleName; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + private String orderNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerNo; + + @ApiModelProperty(value = "是否加急", dataType = "String") + private String isUrgent; + + @ApiModelProperty(value = "样品所属", dataType = "String") + private String sampleBelong; + + @ApiModelProperty(value = "样品状态", dataType = "String") + private String sampleStatus; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java new file mode 100644 index 0000000..e53d8c4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto.business.dispatch; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DeviceDispatchVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "样品编号", dataType = "String") + @ExcelProperty(value = "样品编号",order = 0) + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + @ExcelProperty(value = "样品名称",order = 1) + private String sampleName; + + @ApiModelProperty(value = "型号", dataType = "String") + @ExcelProperty(value = "型号",order = 2) + private String sampleModel; + + @ApiModelProperty(value = "出厂编号", dataType = "String") + @ExcelProperty(value = "出厂编号",order = 3) + private String manufacturingNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 4) + private String customerNo; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + @ExcelProperty(value = "委托书编号",order = 5) + private String orderCode; + + @ApiModelProperty(value = "委托书名称", dataType = "String") + @ExcelProperty(value = "委托书名称",order = 6) + private String customerName; + + @ApiModelProperty(value = "计划送达时间", dataType = "String") + @ExcelProperty(value = "计划送达时间",order = 7) + private String planDeliverTime; + + //数据库暂时没有字段 + @ApiModelProperty(value = "实际送达时间", dataType = "String") + @ExcelProperty(value = "实际送达时间",order = 8) + private String realDeliverTime; + + @ApiModelProperty(value = "样品所属", dataType = "String") + @ExcelProperty(value = "样品所属",order = 8) + private String sampleBelong; + + @ApiModelProperty(value = "当前检定环节", dataType = "String") + @ExcelProperty(value = "当前检定环节",order = 9) + private String measureNode; + + @ApiModelProperty(value = "已出具证书", dataType = "Integer") + @ExcelProperty(value = "已出具证书", order = 12) + private Integer alreadyCertifications; + + @ApiModelProperty(value = "应出具证书", dataType = "Integer") + @ExcelProperty(value = "应出具证书", order = 13) + private Integer requireCertifications; + // 终止、回退、收入、归还、催办按钮 + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java new file mode 100644 index 0000000..37cb067 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class InterchangeListRequest { + + @ApiModelProperty(value = "交接单编号", dataType = "String") + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + private String customerName; + + @ApiModelProperty(value = "交接人", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + private String deliverTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java new file mode 100644 index 0000000..5ecdc6f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java @@ -0,0 +1,54 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +@TableName +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class InterchangeListResponse { + + private Long id; + + @ApiModelProperty(value = "交接单编号", dataType = "String") + @ExcelProperty(value = "交接单编号",order = 0) + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 1) + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + @ExcelProperty(value = "委托方名称",order = 2) + private String customerName; + + @ApiModelProperty(value = "接收人", dataType = "String") + @ExcelProperty(value = "接收人",order = 3) + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + @ExcelProperty(value = "送检人",order = 4) + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + @ExcelProperty(value = "交接时间",order = 5) + private String deliverTime; + + @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注",order = 6) + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java index 7fdc869..ba919d3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java @@ -25,7 +25,7 @@ @ExcelIgnoreUnannotated public class OrderListReponse { - private final Long id; + private final Long id; @ApiModelProperty(value = "委托书编号", dataType = "String") @ExcelProperty(value = "委托书编号",order = 0) private String orderCode; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java new file mode 100644 index 0000000..a6930fd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java @@ -0,0 +1,136 @@ +package com.casic.missiles.dto.customer.Info; + + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("customer_info") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class CustomerInfoResponse implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "编号", dataType = "String") + @ExcelProperty(value = "编号",order = 0) + private String customerNo; + + @ApiModelProperty(value = "公司名称", dataType = "String") + @ExcelProperty(value = "公司名称",order = 1) + private String customerName; + + @ApiModelProperty(value = "公司简称", dataType = "String") + @ExcelProperty(value = "公司简称",order = 2) + private String briefName; + + @ApiModelProperty(value = "业务内容", dataType = "String") + @ExcelProperty(value = "业务内容",order = 3) + private String businessContent; + + @ApiModelProperty(value = "税号", dataType = "String") + @ExcelProperty(value = "税号",order = 4) + private String taxNumber; + + @ApiModelProperty(value = "银行账户名", dataType = "String") + @ExcelProperty(value = "银行账户名",order = 5) + private String bankAccount; + + @ApiModelProperty(value = "银行名称", dataType = "String") + @ExcelProperty(value = "银行名称",order = 6) + private String bankName; + + @ApiModelProperty(value = "银行账号", dataType = "String") + @ExcelProperty(value = "银行账号",order = 7) + private String bankAccountNumber; + + @ApiModelProperty(value = "邮编", dataType = "String") + @ExcelProperty(value = "邮编",order = 8) + private String postalCode; + + @ApiModelProperty(value = "负责人", dataType = "String") + @ExcelProperty(value = "负责人",order = 9) + private String director; + + @ApiModelProperty(value = "电话", dataType = "String") + @ExcelProperty(value = "电话",order = 10) + private String phone; + + @ApiModelProperty(value = "传真", dataType = "String") + @ExcelProperty(value = "电话",order = 11) + private String fax; + + @ApiModelProperty(value = "手机", dataType = "String") + @ExcelProperty(value = "手机",order = 12) + private String mobile; + + @ApiModelProperty(value = "邮箱", dataType = "String") + @ExcelProperty(value = "邮箱",order = 13) + private String email; + + @ApiModelProperty(value = "网址", dataType = "String") + @ExcelProperty(value = "网址",order =14) + private String website; + + @ApiModelProperty(value = "履约评级-字典", dataType = "String") + private String grade; + + @ApiModelProperty(value = "公司规模", dataType = "String") + @DictCodeField(message = "公司规模描述不合法", cacheName = MeterDictCode.COMPANY_SCALE) + private String companySize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模", dataType = "String") + private String companySizeName; + + @ApiModelProperty(value = "业务规模-字典", dataType = "String") + @DictCodeField(message = "业务规模描述不合法", cacheName = MeterDictCode.BUSINESS_SCALE) + private String businessSize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模名称", dataType = "String") + private String businessSizeName; + + @ApiModelProperty(value = "整体评价", dataType = "String") + @DictCodeField(message = "公司整体评价不合法", cacheName = MeterDictCode.EVALUATION) + private String evaluation; + + @TableField(exist = false) + @ApiModelProperty(value = "整体评价", dataType = "String") + private String evaluationName; + + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @ExcelProperty(value = "详细地址",order =15) + private String fullAddress; + + @ApiModelProperty(value = "业务范围", dataType = "String") + @ExcelProperty(value = "业务范围",order =16) + private String businessScope; + + @ApiModelProperty(value = "创建时间", dataType = "String") + @ExcelProperty(value = "创建时间",order =17) + private String createTime; + + @ApiModelProperty(value = "最后更新时间", dataType = "String") + @ExcelProperty(value = "最后更新时间",order =18) + private String updateTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java index 0341f20..6c7e8b3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "样品超期状态", dataType = "String") + @ApiModelProperty(value = "样品超期状态(1/0)", dataType = "String") private String overtimeStatus; @ApiModelProperty(value = "检定开始时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java index 285c3ab..a7ededa 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方代码", dataType = "String") @ExcelProperty(value = "委托方代码", order = 4) - private String customerId; + private String customerNo; @TableField(exist = false) @ApiModelProperty(value = "样品状态", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java index f62ce7f..f751625 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java @@ -3,9 +3,11 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.model.customer.CustomerSampleInfo; import lombok.Data; import java.io.Serializable; +import java.util.List; /** *

@@ -150,5 +152,6 @@ @TableField("update_time") private String updateTime; - -} + @TableField(exist = false) + private List customerSampleInfoList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java index 5a3d50f..455340b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java @@ -54,6 +54,17 @@ @TableField("measure_content") private String measureContent; + //检定方式 + @TableField("measure_type") + private String measureType; + + /** + * 样品检测设备实际到达时间 + */ + @TableField("real_deliver_time") + private String realDeliverTime; + + @TableField("create_time") private String createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java index 068bf49..a482c09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java @@ -19,11 +19,6 @@ @Data @TableName("customer_info") -@ColumnWidth(30) -@HeadRowHeight(15) -@ContentRowHeight(20) -@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) -@ExcelIgnoreUnannotated public class CustomerInfo implements Serializable { private static final long serialVersionUID = 1L; @@ -31,63 +26,48 @@ private Long id; @ApiModelProperty(value = "编号", dataType = "String") - @ExcelProperty(value = "编号",order = 0) private String customerNo; @ApiModelProperty(value = "公司名称", dataType = "String") - @ExcelProperty(value = "公司名称",order = 1) private String customerName; @ApiModelProperty(value = "公司简称", dataType = "String") - @ExcelProperty(value = "公司简称",order = 2) private String briefName; @ApiModelProperty(value = "业务内容", dataType = "String") - @ExcelProperty(value = "业务内容",order = 3) private String businessContent; @ApiModelProperty(value = "税号", dataType = "String") - @ExcelProperty(value = "税号",order = 4) private String taxNumber; @ApiModelProperty(value = "银行账户名", dataType = "String") - @ExcelProperty(value = "银行账户名",order = 5) private String bankAccount; @ApiModelProperty(value = "银行名称", dataType = "String") - @ExcelProperty(value = "银行名称",order = 6) private String bankName; @ApiModelProperty(value = "银行账号", dataType = "String") - @ExcelProperty(value = "银行账号",order = 7) private String bankAccountNumber; @ApiModelProperty(value = "邮编", dataType = "String") - @ExcelProperty(value = "邮编",order = 8) private String postalCode; @ApiModelProperty(value = "负责人", dataType = "String") - @ExcelProperty(value = "负责人",order = 9) private String director; @ApiModelProperty(value = "电话", dataType = "String") - @ExcelProperty(value = "电话",order = 10) private String phone; @ApiModelProperty(value = "传真", dataType = "String") - @ExcelProperty(value = "电话",order = 11) private String fax; @ApiModelProperty(value = "手机", dataType = "String") - @ExcelProperty(value = "手机",order = 12) private String mobile; @ApiModelProperty(value = "邮箱", dataType = "String") - @ExcelProperty(value = "邮箱",order = 13) private String email; @ApiModelProperty(value = "网址", dataType = "String") - @ExcelProperty(value = "网址",order =14) private String website; @ApiModelProperty(value = "履约评级-字典", dataType = "String") @@ -130,7 +110,6 @@ private String addressArea; @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") - @ExcelProperty(value = "详细地址",order =15) private String fullAddress; @ApiModelProperty(value = "公司地址-国家名字", dataType = "String") @@ -173,7 +152,6 @@ private String invoiceAreaName; @ApiModelProperty(value = "业务范围", dataType = "String") - @ExcelProperty(value = "业务范围",order =16) private String businessScope; @ApiModelProperty(value = "minio存储文件名", dataType = "String") @@ -192,11 +170,9 @@ private Integer isDel; @ApiModelProperty(value = "创建时间", dataType = "String") - @ExcelProperty(value = "创建时间",order =17) private String createTime; @ApiModelProperty(value = "最后更新时间", dataType = "String") - @ExcelProperty(value = "最后更新时间",order =18) private String updateTime; @TableField(exist = false) diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java index 17fbf10..dfcc97b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java @@ -77,9 +77,6 @@ @ApiModelProperty(value = "检定周期(月)", dataType = "String") private String measurePeriod; - @ApiModelProperty(value = "检定方式-字典", dataType = "String") - private String measureType; - @ApiModelProperty(value = "有效期限", dataType = "String") private String validDeadline; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java index 5208fb4..ff9fd1c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java @@ -1,13 +1,5 @@ package com.casic.missiles.model.customer; -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import com.alibaba.excel.annotation.write.style.ColumnWidth; -import com.alibaba.excel.annotation.write.style.ContentRowHeight; -import com.alibaba.excel.annotation.write.style.ContentStyle; -import com.alibaba.excel.annotation.write.style.HeadRowHeight; -import com.alibaba.excel.enums.poi.BorderStyleEnum; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; import lombok.Data; 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer sampleStatus; } 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 new file mode 100644 index 0000000..135b82c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceDispatchDTO { + + @ApiModelProperty(value = "样品编号", dataType = "String") + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + private String sampleName; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + private String orderNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerNo; + + @ApiModelProperty(value = "是否加急", dataType = "String") + private String isUrgent; + + @ApiModelProperty(value = "样品所属", dataType = "String") + private String sampleBelong; + + @ApiModelProperty(value = "样品状态", dataType = "String") + private String sampleStatus; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java new file mode 100644 index 0000000..e53d8c4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto.business.dispatch; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DeviceDispatchVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "样品编号", dataType = "String") + @ExcelProperty(value = "样品编号",order = 0) + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + @ExcelProperty(value = "样品名称",order = 1) + private String sampleName; + + @ApiModelProperty(value = "型号", dataType = "String") + @ExcelProperty(value = "型号",order = 2) + private String sampleModel; + + @ApiModelProperty(value = "出厂编号", dataType = "String") + @ExcelProperty(value = "出厂编号",order = 3) + private String manufacturingNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 4) + private String customerNo; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + @ExcelProperty(value = "委托书编号",order = 5) + private String orderCode; + + @ApiModelProperty(value = "委托书名称", dataType = "String") + @ExcelProperty(value = "委托书名称",order = 6) + private String customerName; + + @ApiModelProperty(value = "计划送达时间", dataType = "String") + @ExcelProperty(value = "计划送达时间",order = 7) + private String planDeliverTime; + + //数据库暂时没有字段 + @ApiModelProperty(value = "实际送达时间", dataType = "String") + @ExcelProperty(value = "实际送达时间",order = 8) + private String realDeliverTime; + + @ApiModelProperty(value = "样品所属", dataType = "String") + @ExcelProperty(value = "样品所属",order = 8) + private String sampleBelong; + + @ApiModelProperty(value = "当前检定环节", dataType = "String") + @ExcelProperty(value = "当前检定环节",order = 9) + private String measureNode; + + @ApiModelProperty(value = "已出具证书", dataType = "Integer") + @ExcelProperty(value = "已出具证书", order = 12) + private Integer alreadyCertifications; + + @ApiModelProperty(value = "应出具证书", dataType = "Integer") + @ExcelProperty(value = "应出具证书", order = 13) + private Integer requireCertifications; + // 终止、回退、收入、归还、催办按钮 + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java new file mode 100644 index 0000000..37cb067 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class InterchangeListRequest { + + @ApiModelProperty(value = "交接单编号", dataType = "String") + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + private String customerName; + + @ApiModelProperty(value = "交接人", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + private String deliverTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java new file mode 100644 index 0000000..5ecdc6f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java @@ -0,0 +1,54 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +@TableName +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class InterchangeListResponse { + + private Long id; + + @ApiModelProperty(value = "交接单编号", dataType = "String") + @ExcelProperty(value = "交接单编号",order = 0) + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 1) + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + @ExcelProperty(value = "委托方名称",order = 2) + private String customerName; + + @ApiModelProperty(value = "接收人", dataType = "String") + @ExcelProperty(value = "接收人",order = 3) + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + @ExcelProperty(value = "送检人",order = 4) + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + @ExcelProperty(value = "交接时间",order = 5) + private String deliverTime; + + @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注",order = 6) + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java index 7fdc869..ba919d3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java @@ -25,7 +25,7 @@ @ExcelIgnoreUnannotated public class OrderListReponse { - private final Long id; + private final Long id; @ApiModelProperty(value = "委托书编号", dataType = "String") @ExcelProperty(value = "委托书编号",order = 0) private String orderCode; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java new file mode 100644 index 0000000..a6930fd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java @@ -0,0 +1,136 @@ +package com.casic.missiles.dto.customer.Info; + + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("customer_info") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class CustomerInfoResponse implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "编号", dataType = "String") + @ExcelProperty(value = "编号",order = 0) + private String customerNo; + + @ApiModelProperty(value = "公司名称", dataType = "String") + @ExcelProperty(value = "公司名称",order = 1) + private String customerName; + + @ApiModelProperty(value = "公司简称", dataType = "String") + @ExcelProperty(value = "公司简称",order = 2) + private String briefName; + + @ApiModelProperty(value = "业务内容", dataType = "String") + @ExcelProperty(value = "业务内容",order = 3) + private String businessContent; + + @ApiModelProperty(value = "税号", dataType = "String") + @ExcelProperty(value = "税号",order = 4) + private String taxNumber; + + @ApiModelProperty(value = "银行账户名", dataType = "String") + @ExcelProperty(value = "银行账户名",order = 5) + private String bankAccount; + + @ApiModelProperty(value = "银行名称", dataType = "String") + @ExcelProperty(value = "银行名称",order = 6) + private String bankName; + + @ApiModelProperty(value = "银行账号", dataType = "String") + @ExcelProperty(value = "银行账号",order = 7) + private String bankAccountNumber; + + @ApiModelProperty(value = "邮编", dataType = "String") + @ExcelProperty(value = "邮编",order = 8) + private String postalCode; + + @ApiModelProperty(value = "负责人", dataType = "String") + @ExcelProperty(value = "负责人",order = 9) + private String director; + + @ApiModelProperty(value = "电话", dataType = "String") + @ExcelProperty(value = "电话",order = 10) + private String phone; + + @ApiModelProperty(value = "传真", dataType = "String") + @ExcelProperty(value = "电话",order = 11) + private String fax; + + @ApiModelProperty(value = "手机", dataType = "String") + @ExcelProperty(value = "手机",order = 12) + private String mobile; + + @ApiModelProperty(value = "邮箱", dataType = "String") + @ExcelProperty(value = "邮箱",order = 13) + private String email; + + @ApiModelProperty(value = "网址", dataType = "String") + @ExcelProperty(value = "网址",order =14) + private String website; + + @ApiModelProperty(value = "履约评级-字典", dataType = "String") + private String grade; + + @ApiModelProperty(value = "公司规模", dataType = "String") + @DictCodeField(message = "公司规模描述不合法", cacheName = MeterDictCode.COMPANY_SCALE) + private String companySize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模", dataType = "String") + private String companySizeName; + + @ApiModelProperty(value = "业务规模-字典", dataType = "String") + @DictCodeField(message = "业务规模描述不合法", cacheName = MeterDictCode.BUSINESS_SCALE) + private String businessSize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模名称", dataType = "String") + private String businessSizeName; + + @ApiModelProperty(value = "整体评价", dataType = "String") + @DictCodeField(message = "公司整体评价不合法", cacheName = MeterDictCode.EVALUATION) + private String evaluation; + + @TableField(exist = false) + @ApiModelProperty(value = "整体评价", dataType = "String") + private String evaluationName; + + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @ExcelProperty(value = "详细地址",order =15) + private String fullAddress; + + @ApiModelProperty(value = "业务范围", dataType = "String") + @ExcelProperty(value = "业务范围",order =16) + private String businessScope; + + @ApiModelProperty(value = "创建时间", dataType = "String") + @ExcelProperty(value = "创建时间",order =17) + private String createTime; + + @ApiModelProperty(value = "最后更新时间", dataType = "String") + @ExcelProperty(value = "最后更新时间",order =18) + private String updateTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java index 0341f20..6c7e8b3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "样品超期状态", dataType = "String") + @ApiModelProperty(value = "样品超期状态(1/0)", dataType = "String") private String overtimeStatus; @ApiModelProperty(value = "检定开始时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java index 285c3ab..a7ededa 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方代码", dataType = "String") @ExcelProperty(value = "委托方代码", order = 4) - private String customerId; + private String customerNo; @TableField(exist = false) @ApiModelProperty(value = "样品状态", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java index f62ce7f..f751625 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java @@ -3,9 +3,11 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.model.customer.CustomerSampleInfo; import lombok.Data; import java.io.Serializable; +import java.util.List; /** *

@@ -150,5 +152,6 @@ @TableField("update_time") private String updateTime; - -} + @TableField(exist = false) + private List customerSampleInfoList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java index 5a3d50f..455340b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java @@ -54,6 +54,17 @@ @TableField("measure_content") private String measureContent; + //检定方式 + @TableField("measure_type") + private String measureType; + + /** + * 样品检测设备实际到达时间 + */ + @TableField("real_deliver_time") + private String realDeliverTime; + + @TableField("create_time") private String createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java index 068bf49..a482c09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java @@ -19,11 +19,6 @@ @Data @TableName("customer_info") -@ColumnWidth(30) -@HeadRowHeight(15) -@ContentRowHeight(20) -@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) -@ExcelIgnoreUnannotated public class CustomerInfo implements Serializable { private static final long serialVersionUID = 1L; @@ -31,63 +26,48 @@ private Long id; @ApiModelProperty(value = "编号", dataType = "String") - @ExcelProperty(value = "编号",order = 0) private String customerNo; @ApiModelProperty(value = "公司名称", dataType = "String") - @ExcelProperty(value = "公司名称",order = 1) private String customerName; @ApiModelProperty(value = "公司简称", dataType = "String") - @ExcelProperty(value = "公司简称",order = 2) private String briefName; @ApiModelProperty(value = "业务内容", dataType = "String") - @ExcelProperty(value = "业务内容",order = 3) private String businessContent; @ApiModelProperty(value = "税号", dataType = "String") - @ExcelProperty(value = "税号",order = 4) private String taxNumber; @ApiModelProperty(value = "银行账户名", dataType = "String") - @ExcelProperty(value = "银行账户名",order = 5) private String bankAccount; @ApiModelProperty(value = "银行名称", dataType = "String") - @ExcelProperty(value = "银行名称",order = 6) private String bankName; @ApiModelProperty(value = "银行账号", dataType = "String") - @ExcelProperty(value = "银行账号",order = 7) private String bankAccountNumber; @ApiModelProperty(value = "邮编", dataType = "String") - @ExcelProperty(value = "邮编",order = 8) private String postalCode; @ApiModelProperty(value = "负责人", dataType = "String") - @ExcelProperty(value = "负责人",order = 9) private String director; @ApiModelProperty(value = "电话", dataType = "String") - @ExcelProperty(value = "电话",order = 10) private String phone; @ApiModelProperty(value = "传真", dataType = "String") - @ExcelProperty(value = "电话",order = 11) private String fax; @ApiModelProperty(value = "手机", dataType = "String") - @ExcelProperty(value = "手机",order = 12) private String mobile; @ApiModelProperty(value = "邮箱", dataType = "String") - @ExcelProperty(value = "邮箱",order = 13) private String email; @ApiModelProperty(value = "网址", dataType = "String") - @ExcelProperty(value = "网址",order =14) private String website; @ApiModelProperty(value = "履约评级-字典", dataType = "String") @@ -130,7 +110,6 @@ private String addressArea; @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") - @ExcelProperty(value = "详细地址",order =15) private String fullAddress; @ApiModelProperty(value = "公司地址-国家名字", dataType = "String") @@ -173,7 +152,6 @@ private String invoiceAreaName; @ApiModelProperty(value = "业务范围", dataType = "String") - @ExcelProperty(value = "业务范围",order =16) private String businessScope; @ApiModelProperty(value = "minio存储文件名", dataType = "String") @@ -192,11 +170,9 @@ private Integer isDel; @ApiModelProperty(value = "创建时间", dataType = "String") - @ExcelProperty(value = "创建时间",order =17) private String createTime; @ApiModelProperty(value = "最后更新时间", dataType = "String") - @ExcelProperty(value = "最后更新时间",order =18) private String updateTime; @TableField(exist = false) diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java index 17fbf10..dfcc97b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java @@ -77,9 +77,6 @@ @ApiModelProperty(value = "检定周期(月)", dataType = "String") private String measurePeriod; - @ApiModelProperty(value = "检定方式-字典", dataType = "String") - private String measureType; - @ApiModelProperty(value = "有效期限", dataType = "String") private String validDeadline; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java index 5208fb4..ff9fd1c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java @@ -1,13 +1,5 @@ package com.casic.missiles.model.customer; -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import com.alibaba.excel.annotation.write.style.ColumnWidth; -import com.alibaba.excel.annotation.write.style.ContentRowHeight; -import com.alibaba.excel.annotation.write.style.ContentStyle; -import com.alibaba.excel.annotation.write.style.HeadRowHeight; -import com.alibaba.excel.enums.poi.BorderStyleEnum; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java index 94d46e1..ea245a5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java @@ -1,11 +1,35 @@ package com.casic.missiles.service.Impl.business; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessInterchangeMapper; +import com.casic.missiles.mapper.business.BusinessOrderSampleRelationMapper; import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrderSampleRelation; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.service.business.IBusinessInterchangeService; +import com.casic.missiles.service.customer.CustomerSampleService; +import com.casic.missiles.utils.NumberGeneratorUtil; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; + /** *

* 业务管理-设备交接单 服务实现类 @@ -15,6 +39,111 @@ * @since 2023-02-02 */ @Service +@AllArgsConstructor public class BusinessInterchangeServiceImpl extends ServiceImpl implements IBusinessInterchangeService { + private final IBaseExportService iBaseExportService; + private final CustomerSampleService customerSampleService; + private final BusinessOrderSampleRelationMapper sampleRelationMapper; + + //** 送检人查询条件不在设备交接单中,需要联查才可以实现 + @Override + public Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception { + List resultPage = this.baseMapper.selectInterchangeListPage(page, request); + page.setRecords(resultPage); + return page; + } + + @Override + public BusinessInterchange exchangeDetail(Long id) { + BusinessInterchange businessExchange = this.baseMapper.selectById(id); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("order_id", businessExchange.getOrderId()); + List orderSampleList = sampleRelationMapper.selectList(queryWrapper); + List customerSampleList = new ArrayList<>(); + for (BusinessOrderSampleRelation orderSample : orderSampleList) { + CustomerSampleInfo customerSampleInfo = customerSampleService.sampleDetail(orderSample.getSampleId()); + customerSampleInfo.setIsExistSample("1"); + customerSampleList.add(customerSampleInfo); + } + businessExchange.setCustomerSampleInfoList(customerSampleList); + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO deleteExchange(Long id) { + BusinessInterchange businessInterchange = this.baseMapper.selectById(id); + Integer deleteFlag = this.baseMapper.deleteById(id); + Boolean sampleUpdateFlag = sampleStatusDeletor(businessInterchange.getOrderId(), "1") > 0; + if (deleteFlag > 0 && sampleUpdateFlag) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO updateExchange(BusinessInterchange businessInterchange) { + Integer updateFlag = this.baseMapper.updateById(businessInterchange); + if (updateFlag > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO addExchange(BusinessInterchange businessInterchange) { + populationExchange(businessInterchange); + Integer addFlag = this.baseMapper.insert(businessInterchange); + Boolean sampleAddFlag = true; + for (CustomerSampleInfo sampleInfo : businessInterchange.getCustomerSampleInfoList()) { + sampleAddFlag = sampleAddFlag && sampleStatusCreator(businessInterchange.getOrderId(), sampleInfo.getId(), "2") > 0; + } + if (addFlag > 0 && sampleAddFlag) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public void exportExchange(InterchangeListRequest request, HttpServletResponse response) { + try { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + List resultPage = this.baseMapper.selectInterchangeListPage(page, request); + iBaseExportService.exportExcel(response, InterchangeListResponse.class, resultPage, ExportEnum.EXCHANGE_DATA.getSheetName()); + } catch (Exception e) { + log.error("样品导出出现异常,异常信息为{}", e); + } + } + + private void populationExchange(BusinessInterchange businessInterchange){ + Long maxNo = this.baseMapper.selectMaxExchangeNo(); + String orderNo = NumberGeneratorUtil.getContactNo("jjdh", maxNo); + AuthUser authUser = ShiroKit.getUser(); + businessInterchange.setCreateUser(authUser.getId()); + businessInterchange.setInterchangeCode(orderNo); + } + + private Integer sampleStatusCreator(Long orderId, Long sampleId, String status) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("order_id", orderId); + queryWrapper.eq(ObjectUtil.isEmpty(sampleId), "sample_id", sampleId); + BusinessOrderSampleRelation sampleStatusPopulation = new BusinessOrderSampleRelation(); + sampleStatusPopulation.setSampleStatus(status); + Integer sampleStatus = this.sampleRelationMapper.update(sampleStatusPopulation, queryWrapper); + return sampleStatus; + } + + private Integer sampleStatusDeletor(Long orderId, String status) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isEmpty(orderId), "order_id", orderId); + queryWrapper.eq("status", "2"); + BusinessOrderSampleRelation sampleStatusPopulation = new BusinessOrderSampleRelation(); + sampleStatusPopulation.setSampleStatus(status); + Integer sampleStatus = this.sampleRelationMapper.update(sampleStatusPopulation, queryWrapper); + return 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer sampleStatus; } 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 new file mode 100644 index 0000000..135b82c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceDispatchDTO { + + @ApiModelProperty(value = "样品编号", dataType = "String") + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + private String sampleName; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + private String orderNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerNo; + + @ApiModelProperty(value = "是否加急", dataType = "String") + private String isUrgent; + + @ApiModelProperty(value = "样品所属", dataType = "String") + private String sampleBelong; + + @ApiModelProperty(value = "样品状态", dataType = "String") + private String sampleStatus; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java new file mode 100644 index 0000000..e53d8c4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto.business.dispatch; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DeviceDispatchVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "样品编号", dataType = "String") + @ExcelProperty(value = "样品编号",order = 0) + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + @ExcelProperty(value = "样品名称",order = 1) + private String sampleName; + + @ApiModelProperty(value = "型号", dataType = "String") + @ExcelProperty(value = "型号",order = 2) + private String sampleModel; + + @ApiModelProperty(value = "出厂编号", dataType = "String") + @ExcelProperty(value = "出厂编号",order = 3) + private String manufacturingNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 4) + private String customerNo; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + @ExcelProperty(value = "委托书编号",order = 5) + private String orderCode; + + @ApiModelProperty(value = "委托书名称", dataType = "String") + @ExcelProperty(value = "委托书名称",order = 6) + private String customerName; + + @ApiModelProperty(value = "计划送达时间", dataType = "String") + @ExcelProperty(value = "计划送达时间",order = 7) + private String planDeliverTime; + + //数据库暂时没有字段 + @ApiModelProperty(value = "实际送达时间", dataType = "String") + @ExcelProperty(value = "实际送达时间",order = 8) + private String realDeliverTime; + + @ApiModelProperty(value = "样品所属", dataType = "String") + @ExcelProperty(value = "样品所属",order = 8) + private String sampleBelong; + + @ApiModelProperty(value = "当前检定环节", dataType = "String") + @ExcelProperty(value = "当前检定环节",order = 9) + private String measureNode; + + @ApiModelProperty(value = "已出具证书", dataType = "Integer") + @ExcelProperty(value = "已出具证书", order = 12) + private Integer alreadyCertifications; + + @ApiModelProperty(value = "应出具证书", dataType = "Integer") + @ExcelProperty(value = "应出具证书", order = 13) + private Integer requireCertifications; + // 终止、回退、收入、归还、催办按钮 + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java new file mode 100644 index 0000000..37cb067 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class InterchangeListRequest { + + @ApiModelProperty(value = "交接单编号", dataType = "String") + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + private String customerName; + + @ApiModelProperty(value = "交接人", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + private String deliverTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java new file mode 100644 index 0000000..5ecdc6f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java @@ -0,0 +1,54 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +@TableName +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class InterchangeListResponse { + + private Long id; + + @ApiModelProperty(value = "交接单编号", dataType = "String") + @ExcelProperty(value = "交接单编号",order = 0) + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 1) + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + @ExcelProperty(value = "委托方名称",order = 2) + private String customerName; + + @ApiModelProperty(value = "接收人", dataType = "String") + @ExcelProperty(value = "接收人",order = 3) + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + @ExcelProperty(value = "送检人",order = 4) + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + @ExcelProperty(value = "交接时间",order = 5) + private String deliverTime; + + @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注",order = 6) + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java index 7fdc869..ba919d3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java @@ -25,7 +25,7 @@ @ExcelIgnoreUnannotated public class OrderListReponse { - private final Long id; + private final Long id; @ApiModelProperty(value = "委托书编号", dataType = "String") @ExcelProperty(value = "委托书编号",order = 0) private String orderCode; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java new file mode 100644 index 0000000..a6930fd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java @@ -0,0 +1,136 @@ +package com.casic.missiles.dto.customer.Info; + + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("customer_info") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class CustomerInfoResponse implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "编号", dataType = "String") + @ExcelProperty(value = "编号",order = 0) + private String customerNo; + + @ApiModelProperty(value = "公司名称", dataType = "String") + @ExcelProperty(value = "公司名称",order = 1) + private String customerName; + + @ApiModelProperty(value = "公司简称", dataType = "String") + @ExcelProperty(value = "公司简称",order = 2) + private String briefName; + + @ApiModelProperty(value = "业务内容", dataType = "String") + @ExcelProperty(value = "业务内容",order = 3) + private String businessContent; + + @ApiModelProperty(value = "税号", dataType = "String") + @ExcelProperty(value = "税号",order = 4) + private String taxNumber; + + @ApiModelProperty(value = "银行账户名", dataType = "String") + @ExcelProperty(value = "银行账户名",order = 5) + private String bankAccount; + + @ApiModelProperty(value = "银行名称", dataType = "String") + @ExcelProperty(value = "银行名称",order = 6) + private String bankName; + + @ApiModelProperty(value = "银行账号", dataType = "String") + @ExcelProperty(value = "银行账号",order = 7) + private String bankAccountNumber; + + @ApiModelProperty(value = "邮编", dataType = "String") + @ExcelProperty(value = "邮编",order = 8) + private String postalCode; + + @ApiModelProperty(value = "负责人", dataType = "String") + @ExcelProperty(value = "负责人",order = 9) + private String director; + + @ApiModelProperty(value = "电话", dataType = "String") + @ExcelProperty(value = "电话",order = 10) + private String phone; + + @ApiModelProperty(value = "传真", dataType = "String") + @ExcelProperty(value = "电话",order = 11) + private String fax; + + @ApiModelProperty(value = "手机", dataType = "String") + @ExcelProperty(value = "手机",order = 12) + private String mobile; + + @ApiModelProperty(value = "邮箱", dataType = "String") + @ExcelProperty(value = "邮箱",order = 13) + private String email; + + @ApiModelProperty(value = "网址", dataType = "String") + @ExcelProperty(value = "网址",order =14) + private String website; + + @ApiModelProperty(value = "履约评级-字典", dataType = "String") + private String grade; + + @ApiModelProperty(value = "公司规模", dataType = "String") + @DictCodeField(message = "公司规模描述不合法", cacheName = MeterDictCode.COMPANY_SCALE) + private String companySize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模", dataType = "String") + private String companySizeName; + + @ApiModelProperty(value = "业务规模-字典", dataType = "String") + @DictCodeField(message = "业务规模描述不合法", cacheName = MeterDictCode.BUSINESS_SCALE) + private String businessSize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模名称", dataType = "String") + private String businessSizeName; + + @ApiModelProperty(value = "整体评价", dataType = "String") + @DictCodeField(message = "公司整体评价不合法", cacheName = MeterDictCode.EVALUATION) + private String evaluation; + + @TableField(exist = false) + @ApiModelProperty(value = "整体评价", dataType = "String") + private String evaluationName; + + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @ExcelProperty(value = "详细地址",order =15) + private String fullAddress; + + @ApiModelProperty(value = "业务范围", dataType = "String") + @ExcelProperty(value = "业务范围",order =16) + private String businessScope; + + @ApiModelProperty(value = "创建时间", dataType = "String") + @ExcelProperty(value = "创建时间",order =17) + private String createTime; + + @ApiModelProperty(value = "最后更新时间", dataType = "String") + @ExcelProperty(value = "最后更新时间",order =18) + private String updateTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java index 0341f20..6c7e8b3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "样品超期状态", dataType = "String") + @ApiModelProperty(value = "样品超期状态(1/0)", dataType = "String") private String overtimeStatus; @ApiModelProperty(value = "检定开始时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java index 285c3ab..a7ededa 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方代码", dataType = "String") @ExcelProperty(value = "委托方代码", order = 4) - private String customerId; + private String customerNo; @TableField(exist = false) @ApiModelProperty(value = "样品状态", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java index f62ce7f..f751625 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java @@ -3,9 +3,11 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.model.customer.CustomerSampleInfo; import lombok.Data; import java.io.Serializable; +import java.util.List; /** *

@@ -150,5 +152,6 @@ @TableField("update_time") private String updateTime; - -} + @TableField(exist = false) + private List customerSampleInfoList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java index 5a3d50f..455340b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java @@ -54,6 +54,17 @@ @TableField("measure_content") private String measureContent; + //检定方式 + @TableField("measure_type") + private String measureType; + + /** + * 样品检测设备实际到达时间 + */ + @TableField("real_deliver_time") + private String realDeliverTime; + + @TableField("create_time") private String createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java index 068bf49..a482c09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java @@ -19,11 +19,6 @@ @Data @TableName("customer_info") -@ColumnWidth(30) -@HeadRowHeight(15) -@ContentRowHeight(20) -@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) -@ExcelIgnoreUnannotated public class CustomerInfo implements Serializable { private static final long serialVersionUID = 1L; @@ -31,63 +26,48 @@ private Long id; @ApiModelProperty(value = "编号", dataType = "String") - @ExcelProperty(value = "编号",order = 0) private String customerNo; @ApiModelProperty(value = "公司名称", dataType = "String") - @ExcelProperty(value = "公司名称",order = 1) private String customerName; @ApiModelProperty(value = "公司简称", dataType = "String") - @ExcelProperty(value = "公司简称",order = 2) private String briefName; @ApiModelProperty(value = "业务内容", dataType = "String") - @ExcelProperty(value = "业务内容",order = 3) private String businessContent; @ApiModelProperty(value = "税号", dataType = "String") - @ExcelProperty(value = "税号",order = 4) private String taxNumber; @ApiModelProperty(value = "银行账户名", dataType = "String") - @ExcelProperty(value = "银行账户名",order = 5) private String bankAccount; @ApiModelProperty(value = "银行名称", dataType = "String") - @ExcelProperty(value = "银行名称",order = 6) private String bankName; @ApiModelProperty(value = "银行账号", dataType = "String") - @ExcelProperty(value = "银行账号",order = 7) private String bankAccountNumber; @ApiModelProperty(value = "邮编", dataType = "String") - @ExcelProperty(value = "邮编",order = 8) private String postalCode; @ApiModelProperty(value = "负责人", dataType = "String") - @ExcelProperty(value = "负责人",order = 9) private String director; @ApiModelProperty(value = "电话", dataType = "String") - @ExcelProperty(value = "电话",order = 10) private String phone; @ApiModelProperty(value = "传真", dataType = "String") - @ExcelProperty(value = "电话",order = 11) private String fax; @ApiModelProperty(value = "手机", dataType = "String") - @ExcelProperty(value = "手机",order = 12) private String mobile; @ApiModelProperty(value = "邮箱", dataType = "String") - @ExcelProperty(value = "邮箱",order = 13) private String email; @ApiModelProperty(value = "网址", dataType = "String") - @ExcelProperty(value = "网址",order =14) private String website; @ApiModelProperty(value = "履约评级-字典", dataType = "String") @@ -130,7 +110,6 @@ private String addressArea; @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") - @ExcelProperty(value = "详细地址",order =15) private String fullAddress; @ApiModelProperty(value = "公司地址-国家名字", dataType = "String") @@ -173,7 +152,6 @@ private String invoiceAreaName; @ApiModelProperty(value = "业务范围", dataType = "String") - @ExcelProperty(value = "业务范围",order =16) private String businessScope; @ApiModelProperty(value = "minio存储文件名", dataType = "String") @@ -192,11 +170,9 @@ private Integer isDel; @ApiModelProperty(value = "创建时间", dataType = "String") - @ExcelProperty(value = "创建时间",order =17) private String createTime; @ApiModelProperty(value = "最后更新时间", dataType = "String") - @ExcelProperty(value = "最后更新时间",order =18) private String updateTime; @TableField(exist = false) diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java index 17fbf10..dfcc97b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java @@ -77,9 +77,6 @@ @ApiModelProperty(value = "检定周期(月)", dataType = "String") private String measurePeriod; - @ApiModelProperty(value = "检定方式-字典", dataType = "String") - private String measureType; - @ApiModelProperty(value = "有效期限", dataType = "String") private String validDeadline; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java index 5208fb4..ff9fd1c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java @@ -1,13 +1,5 @@ package com.casic.missiles.model.customer; -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import com.alibaba.excel.annotation.write.style.ColumnWidth; -import com.alibaba.excel.annotation.write.style.ContentRowHeight; -import com.alibaba.excel.annotation.write.style.ContentStyle; -import com.alibaba.excel.annotation.write.style.HeadRowHeight; -import com.alibaba.excel.enums.poi.BorderStyleEnum; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java index 94d46e1..ea245a5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java @@ -1,11 +1,35 @@ package com.casic.missiles.service.Impl.business; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessInterchangeMapper; +import com.casic.missiles.mapper.business.BusinessOrderSampleRelationMapper; import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrderSampleRelation; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.service.business.IBusinessInterchangeService; +import com.casic.missiles.service.customer.CustomerSampleService; +import com.casic.missiles.utils.NumberGeneratorUtil; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; + /** *

* 业务管理-设备交接单 服务实现类 @@ -15,6 +39,111 @@ * @since 2023-02-02 */ @Service +@AllArgsConstructor public class BusinessInterchangeServiceImpl extends ServiceImpl implements IBusinessInterchangeService { + private final IBaseExportService iBaseExportService; + private final CustomerSampleService customerSampleService; + private final BusinessOrderSampleRelationMapper sampleRelationMapper; + + //** 送检人查询条件不在设备交接单中,需要联查才可以实现 + @Override + public Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception { + List resultPage = this.baseMapper.selectInterchangeListPage(page, request); + page.setRecords(resultPage); + return page; + } + + @Override + public BusinessInterchange exchangeDetail(Long id) { + BusinessInterchange businessExchange = this.baseMapper.selectById(id); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("order_id", businessExchange.getOrderId()); + List orderSampleList = sampleRelationMapper.selectList(queryWrapper); + List customerSampleList = new ArrayList<>(); + for (BusinessOrderSampleRelation orderSample : orderSampleList) { + CustomerSampleInfo customerSampleInfo = customerSampleService.sampleDetail(orderSample.getSampleId()); + customerSampleInfo.setIsExistSample("1"); + customerSampleList.add(customerSampleInfo); + } + businessExchange.setCustomerSampleInfoList(customerSampleList); + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO deleteExchange(Long id) { + BusinessInterchange businessInterchange = this.baseMapper.selectById(id); + Integer deleteFlag = this.baseMapper.deleteById(id); + Boolean sampleUpdateFlag = sampleStatusDeletor(businessInterchange.getOrderId(), "1") > 0; + if (deleteFlag > 0 && sampleUpdateFlag) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO updateExchange(BusinessInterchange businessInterchange) { + Integer updateFlag = this.baseMapper.updateById(businessInterchange); + if (updateFlag > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO addExchange(BusinessInterchange businessInterchange) { + populationExchange(businessInterchange); + Integer addFlag = this.baseMapper.insert(businessInterchange); + Boolean sampleAddFlag = true; + for (CustomerSampleInfo sampleInfo : businessInterchange.getCustomerSampleInfoList()) { + sampleAddFlag = sampleAddFlag && sampleStatusCreator(businessInterchange.getOrderId(), sampleInfo.getId(), "2") > 0; + } + if (addFlag > 0 && sampleAddFlag) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public void exportExchange(InterchangeListRequest request, HttpServletResponse response) { + try { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + List resultPage = this.baseMapper.selectInterchangeListPage(page, request); + iBaseExportService.exportExcel(response, InterchangeListResponse.class, resultPage, ExportEnum.EXCHANGE_DATA.getSheetName()); + } catch (Exception e) { + log.error("样品导出出现异常,异常信息为{}", e); + } + } + + private void populationExchange(BusinessInterchange businessInterchange){ + Long maxNo = this.baseMapper.selectMaxExchangeNo(); + String orderNo = NumberGeneratorUtil.getContactNo("jjdh", maxNo); + AuthUser authUser = ShiroKit.getUser(); + businessInterchange.setCreateUser(authUser.getId()); + businessInterchange.setInterchangeCode(orderNo); + } + + private Integer sampleStatusCreator(Long orderId, Long sampleId, String status) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("order_id", orderId); + queryWrapper.eq(ObjectUtil.isEmpty(sampleId), "sample_id", sampleId); + BusinessOrderSampleRelation sampleStatusPopulation = new BusinessOrderSampleRelation(); + sampleStatusPopulation.setSampleStatus(status); + Integer sampleStatus = this.sampleRelationMapper.update(sampleStatusPopulation, queryWrapper); + return sampleStatus; + } + + private Integer sampleStatusDeletor(Long orderId, String status) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isEmpty(orderId), "order_id", orderId); + queryWrapper.eq("status", "2"); + BusinessOrderSampleRelation sampleStatusPopulation = new BusinessOrderSampleRelation(); + sampleStatusPopulation.setSampleStatus(status); + Integer sampleStatus = this.sampleRelationMapper.update(sampleStatusPopulation, queryWrapper); + return sampleStatus; + } + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 87ebeeb..9848a3b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -33,7 +33,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.stream.Collector; import java.util.stream.Collectors; /** @@ -133,7 +132,7 @@ ReturnDTO returnDTO = customerSampleService.addSample(sampleInfo); sampleAddFlag = sampleAddFlag && returnDTO.getCode() == 200; } - sampleAddFlag = sampleAddFlag && sampleStatusCreator(sampleInfo.getOrderId(), sampleInfo.getId(), "0") > 0; + sampleAddFlag = sampleAddFlag && sampleStatusCreator(sampleInfo.getOrderId(), sampleInfo.getId(), "1") > 0; } if (addFlag > 0 && sampleAddFlag) { return ReturnUtil.success(); @@ -191,7 +190,7 @@ queryWrapper.like(StringUtils.isNotBlank(request.getCustomerName()), "customer_name", request.getCustomerName()); queryWrapper.like(StringUtils.isNotBlank(request.getDeliverer()), "deliverer", request.getDeliverer()); queryWrapper.like(StringUtils.isNotBlank(request.getOrderCode()), "order_code", request.getOrderCode()); - queryWrapper.like(ObjectUtil.isNotEmpty(request.getIsUrgent()), "is_urgent", request.getIsUrgent()); + queryWrapper.like(ObjectUtil.isNotEmpty(request.getIsUrgent()) && request.getIsUrgent() != 0, "is_urgent", request.getIsUrgent()); queryWrapper.like(StringUtils.isNotBlank(request.getCustomerNo()), "customer_no", request.getCustomerNo()); queryWrapper.like(ObjectUtil.isNotEmpty(request.getStatus()) && request.getStatus() != 0, "status", request.getStatus()); queryWrapper.apply(StringUtils.isNotBlank(request.getStartTime()), @@ -214,6 +213,7 @@ sampleStatusPopulation.setOrderId(orderId); sampleStatusPopulation.setSampleId(sampleId); sampleStatusPopulation.setSampleStatus(status); + sampleStatusPopulation.setMeasureType("1"); Integer sampleStatus = this.sampleRelationMapper.insert(sampleStatusPopulation); return 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer sampleStatus; } 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 new file mode 100644 index 0000000..135b82c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceDispatchDTO { + + @ApiModelProperty(value = "样品编号", dataType = "String") + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + private String sampleName; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + private String orderNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerNo; + + @ApiModelProperty(value = "是否加急", dataType = "String") + private String isUrgent; + + @ApiModelProperty(value = "样品所属", dataType = "String") + private String sampleBelong; + + @ApiModelProperty(value = "样品状态", dataType = "String") + private String sampleStatus; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java new file mode 100644 index 0000000..e53d8c4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto.business.dispatch; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DeviceDispatchVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "样品编号", dataType = "String") + @ExcelProperty(value = "样品编号",order = 0) + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + @ExcelProperty(value = "样品名称",order = 1) + private String sampleName; + + @ApiModelProperty(value = "型号", dataType = "String") + @ExcelProperty(value = "型号",order = 2) + private String sampleModel; + + @ApiModelProperty(value = "出厂编号", dataType = "String") + @ExcelProperty(value = "出厂编号",order = 3) + private String manufacturingNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 4) + private String customerNo; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + @ExcelProperty(value = "委托书编号",order = 5) + private String orderCode; + + @ApiModelProperty(value = "委托书名称", dataType = "String") + @ExcelProperty(value = "委托书名称",order = 6) + private String customerName; + + @ApiModelProperty(value = "计划送达时间", dataType = "String") + @ExcelProperty(value = "计划送达时间",order = 7) + private String planDeliverTime; + + //数据库暂时没有字段 + @ApiModelProperty(value = "实际送达时间", dataType = "String") + @ExcelProperty(value = "实际送达时间",order = 8) + private String realDeliverTime; + + @ApiModelProperty(value = "样品所属", dataType = "String") + @ExcelProperty(value = "样品所属",order = 8) + private String sampleBelong; + + @ApiModelProperty(value = "当前检定环节", dataType = "String") + @ExcelProperty(value = "当前检定环节",order = 9) + private String measureNode; + + @ApiModelProperty(value = "已出具证书", dataType = "Integer") + @ExcelProperty(value = "已出具证书", order = 12) + private Integer alreadyCertifications; + + @ApiModelProperty(value = "应出具证书", dataType = "Integer") + @ExcelProperty(value = "应出具证书", order = 13) + private Integer requireCertifications; + // 终止、回退、收入、归还、催办按钮 + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java new file mode 100644 index 0000000..37cb067 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class InterchangeListRequest { + + @ApiModelProperty(value = "交接单编号", dataType = "String") + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + private String customerName; + + @ApiModelProperty(value = "交接人", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + private String deliverTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java new file mode 100644 index 0000000..5ecdc6f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java @@ -0,0 +1,54 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +@TableName +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class InterchangeListResponse { + + private Long id; + + @ApiModelProperty(value = "交接单编号", dataType = "String") + @ExcelProperty(value = "交接单编号",order = 0) + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 1) + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + @ExcelProperty(value = "委托方名称",order = 2) + private String customerName; + + @ApiModelProperty(value = "接收人", dataType = "String") + @ExcelProperty(value = "接收人",order = 3) + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + @ExcelProperty(value = "送检人",order = 4) + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + @ExcelProperty(value = "交接时间",order = 5) + private String deliverTime; + + @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注",order = 6) + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java index 7fdc869..ba919d3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java @@ -25,7 +25,7 @@ @ExcelIgnoreUnannotated public class OrderListReponse { - private final Long id; + private final Long id; @ApiModelProperty(value = "委托书编号", dataType = "String") @ExcelProperty(value = "委托书编号",order = 0) private String orderCode; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java new file mode 100644 index 0000000..a6930fd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java @@ -0,0 +1,136 @@ +package com.casic.missiles.dto.customer.Info; + + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("customer_info") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class CustomerInfoResponse implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "编号", dataType = "String") + @ExcelProperty(value = "编号",order = 0) + private String customerNo; + + @ApiModelProperty(value = "公司名称", dataType = "String") + @ExcelProperty(value = "公司名称",order = 1) + private String customerName; + + @ApiModelProperty(value = "公司简称", dataType = "String") + @ExcelProperty(value = "公司简称",order = 2) + private String briefName; + + @ApiModelProperty(value = "业务内容", dataType = "String") + @ExcelProperty(value = "业务内容",order = 3) + private String businessContent; + + @ApiModelProperty(value = "税号", dataType = "String") + @ExcelProperty(value = "税号",order = 4) + private String taxNumber; + + @ApiModelProperty(value = "银行账户名", dataType = "String") + @ExcelProperty(value = "银行账户名",order = 5) + private String bankAccount; + + @ApiModelProperty(value = "银行名称", dataType = "String") + @ExcelProperty(value = "银行名称",order = 6) + private String bankName; + + @ApiModelProperty(value = "银行账号", dataType = "String") + @ExcelProperty(value = "银行账号",order = 7) + private String bankAccountNumber; + + @ApiModelProperty(value = "邮编", dataType = "String") + @ExcelProperty(value = "邮编",order = 8) + private String postalCode; + + @ApiModelProperty(value = "负责人", dataType = "String") + @ExcelProperty(value = "负责人",order = 9) + private String director; + + @ApiModelProperty(value = "电话", dataType = "String") + @ExcelProperty(value = "电话",order = 10) + private String phone; + + @ApiModelProperty(value = "传真", dataType = "String") + @ExcelProperty(value = "电话",order = 11) + private String fax; + + @ApiModelProperty(value = "手机", dataType = "String") + @ExcelProperty(value = "手机",order = 12) + private String mobile; + + @ApiModelProperty(value = "邮箱", dataType = "String") + @ExcelProperty(value = "邮箱",order = 13) + private String email; + + @ApiModelProperty(value = "网址", dataType = "String") + @ExcelProperty(value = "网址",order =14) + private String website; + + @ApiModelProperty(value = "履约评级-字典", dataType = "String") + private String grade; + + @ApiModelProperty(value = "公司规模", dataType = "String") + @DictCodeField(message = "公司规模描述不合法", cacheName = MeterDictCode.COMPANY_SCALE) + private String companySize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模", dataType = "String") + private String companySizeName; + + @ApiModelProperty(value = "业务规模-字典", dataType = "String") + @DictCodeField(message = "业务规模描述不合法", cacheName = MeterDictCode.BUSINESS_SCALE) + private String businessSize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模名称", dataType = "String") + private String businessSizeName; + + @ApiModelProperty(value = "整体评价", dataType = "String") + @DictCodeField(message = "公司整体评价不合法", cacheName = MeterDictCode.EVALUATION) + private String evaluation; + + @TableField(exist = false) + @ApiModelProperty(value = "整体评价", dataType = "String") + private String evaluationName; + + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @ExcelProperty(value = "详细地址",order =15) + private String fullAddress; + + @ApiModelProperty(value = "业务范围", dataType = "String") + @ExcelProperty(value = "业务范围",order =16) + private String businessScope; + + @ApiModelProperty(value = "创建时间", dataType = "String") + @ExcelProperty(value = "创建时间",order =17) + private String createTime; + + @ApiModelProperty(value = "最后更新时间", dataType = "String") + @ExcelProperty(value = "最后更新时间",order =18) + private String updateTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java index 0341f20..6c7e8b3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "样品超期状态", dataType = "String") + @ApiModelProperty(value = "样品超期状态(1/0)", dataType = "String") private String overtimeStatus; @ApiModelProperty(value = "检定开始时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java index 285c3ab..a7ededa 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方代码", dataType = "String") @ExcelProperty(value = "委托方代码", order = 4) - private String customerId; + private String customerNo; @TableField(exist = false) @ApiModelProperty(value = "样品状态", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java index f62ce7f..f751625 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java @@ -3,9 +3,11 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.model.customer.CustomerSampleInfo; import lombok.Data; import java.io.Serializable; +import java.util.List; /** *

@@ -150,5 +152,6 @@ @TableField("update_time") private String updateTime; - -} + @TableField(exist = false) + private List customerSampleInfoList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java index 5a3d50f..455340b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java @@ -54,6 +54,17 @@ @TableField("measure_content") private String measureContent; + //检定方式 + @TableField("measure_type") + private String measureType; + + /** + * 样品检测设备实际到达时间 + */ + @TableField("real_deliver_time") + private String realDeliverTime; + + @TableField("create_time") private String createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java index 068bf49..a482c09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java @@ -19,11 +19,6 @@ @Data @TableName("customer_info") -@ColumnWidth(30) -@HeadRowHeight(15) -@ContentRowHeight(20) -@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) -@ExcelIgnoreUnannotated public class CustomerInfo implements Serializable { private static final long serialVersionUID = 1L; @@ -31,63 +26,48 @@ private Long id; @ApiModelProperty(value = "编号", dataType = "String") - @ExcelProperty(value = "编号",order = 0) private String customerNo; @ApiModelProperty(value = "公司名称", dataType = "String") - @ExcelProperty(value = "公司名称",order = 1) private String customerName; @ApiModelProperty(value = "公司简称", dataType = "String") - @ExcelProperty(value = "公司简称",order = 2) private String briefName; @ApiModelProperty(value = "业务内容", dataType = "String") - @ExcelProperty(value = "业务内容",order = 3) private String businessContent; @ApiModelProperty(value = "税号", dataType = "String") - @ExcelProperty(value = "税号",order = 4) private String taxNumber; @ApiModelProperty(value = "银行账户名", dataType = "String") - @ExcelProperty(value = "银行账户名",order = 5) private String bankAccount; @ApiModelProperty(value = "银行名称", dataType = "String") - @ExcelProperty(value = "银行名称",order = 6) private String bankName; @ApiModelProperty(value = "银行账号", dataType = "String") - @ExcelProperty(value = "银行账号",order = 7) private String bankAccountNumber; @ApiModelProperty(value = "邮编", dataType = "String") - @ExcelProperty(value = "邮编",order = 8) private String postalCode; @ApiModelProperty(value = "负责人", dataType = "String") - @ExcelProperty(value = "负责人",order = 9) private String director; @ApiModelProperty(value = "电话", dataType = "String") - @ExcelProperty(value = "电话",order = 10) private String phone; @ApiModelProperty(value = "传真", dataType = "String") - @ExcelProperty(value = "电话",order = 11) private String fax; @ApiModelProperty(value = "手机", dataType = "String") - @ExcelProperty(value = "手机",order = 12) private String mobile; @ApiModelProperty(value = "邮箱", dataType = "String") - @ExcelProperty(value = "邮箱",order = 13) private String email; @ApiModelProperty(value = "网址", dataType = "String") - @ExcelProperty(value = "网址",order =14) private String website; @ApiModelProperty(value = "履约评级-字典", dataType = "String") @@ -130,7 +110,6 @@ private String addressArea; @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") - @ExcelProperty(value = "详细地址",order =15) private String fullAddress; @ApiModelProperty(value = "公司地址-国家名字", dataType = "String") @@ -173,7 +152,6 @@ private String invoiceAreaName; @ApiModelProperty(value = "业务范围", dataType = "String") - @ExcelProperty(value = "业务范围",order =16) private String businessScope; @ApiModelProperty(value = "minio存储文件名", dataType = "String") @@ -192,11 +170,9 @@ private Integer isDel; @ApiModelProperty(value = "创建时间", dataType = "String") - @ExcelProperty(value = "创建时间",order =17) private String createTime; @ApiModelProperty(value = "最后更新时间", dataType = "String") - @ExcelProperty(value = "最后更新时间",order =18) private String updateTime; @TableField(exist = false) diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java index 17fbf10..dfcc97b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java @@ -77,9 +77,6 @@ @ApiModelProperty(value = "检定周期(月)", dataType = "String") private String measurePeriod; - @ApiModelProperty(value = "检定方式-字典", dataType = "String") - private String measureType; - @ApiModelProperty(value = "有效期限", dataType = "String") private String validDeadline; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java index 5208fb4..ff9fd1c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java @@ -1,13 +1,5 @@ package com.casic.missiles.model.customer; -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import com.alibaba.excel.annotation.write.style.ColumnWidth; -import com.alibaba.excel.annotation.write.style.ContentRowHeight; -import com.alibaba.excel.annotation.write.style.ContentStyle; -import com.alibaba.excel.annotation.write.style.HeadRowHeight; -import com.alibaba.excel.enums.poi.BorderStyleEnum; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java index 94d46e1..ea245a5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java @@ -1,11 +1,35 @@ package com.casic.missiles.service.Impl.business; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessInterchangeMapper; +import com.casic.missiles.mapper.business.BusinessOrderSampleRelationMapper; import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrderSampleRelation; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.service.business.IBusinessInterchangeService; +import com.casic.missiles.service.customer.CustomerSampleService; +import com.casic.missiles.utils.NumberGeneratorUtil; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; + /** *

* 业务管理-设备交接单 服务实现类 @@ -15,6 +39,111 @@ * @since 2023-02-02 */ @Service +@AllArgsConstructor public class BusinessInterchangeServiceImpl extends ServiceImpl implements IBusinessInterchangeService { + private final IBaseExportService iBaseExportService; + private final CustomerSampleService customerSampleService; + private final BusinessOrderSampleRelationMapper sampleRelationMapper; + + //** 送检人查询条件不在设备交接单中,需要联查才可以实现 + @Override + public Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception { + List resultPage = this.baseMapper.selectInterchangeListPage(page, request); + page.setRecords(resultPage); + return page; + } + + @Override + public BusinessInterchange exchangeDetail(Long id) { + BusinessInterchange businessExchange = this.baseMapper.selectById(id); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("order_id", businessExchange.getOrderId()); + List orderSampleList = sampleRelationMapper.selectList(queryWrapper); + List customerSampleList = new ArrayList<>(); + for (BusinessOrderSampleRelation orderSample : orderSampleList) { + CustomerSampleInfo customerSampleInfo = customerSampleService.sampleDetail(orderSample.getSampleId()); + customerSampleInfo.setIsExistSample("1"); + customerSampleList.add(customerSampleInfo); + } + businessExchange.setCustomerSampleInfoList(customerSampleList); + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO deleteExchange(Long id) { + BusinessInterchange businessInterchange = this.baseMapper.selectById(id); + Integer deleteFlag = this.baseMapper.deleteById(id); + Boolean sampleUpdateFlag = sampleStatusDeletor(businessInterchange.getOrderId(), "1") > 0; + if (deleteFlag > 0 && sampleUpdateFlag) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO updateExchange(BusinessInterchange businessInterchange) { + Integer updateFlag = this.baseMapper.updateById(businessInterchange); + if (updateFlag > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO addExchange(BusinessInterchange businessInterchange) { + populationExchange(businessInterchange); + Integer addFlag = this.baseMapper.insert(businessInterchange); + Boolean sampleAddFlag = true; + for (CustomerSampleInfo sampleInfo : businessInterchange.getCustomerSampleInfoList()) { + sampleAddFlag = sampleAddFlag && sampleStatusCreator(businessInterchange.getOrderId(), sampleInfo.getId(), "2") > 0; + } + if (addFlag > 0 && sampleAddFlag) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public void exportExchange(InterchangeListRequest request, HttpServletResponse response) { + try { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + List resultPage = this.baseMapper.selectInterchangeListPage(page, request); + iBaseExportService.exportExcel(response, InterchangeListResponse.class, resultPage, ExportEnum.EXCHANGE_DATA.getSheetName()); + } catch (Exception e) { + log.error("样品导出出现异常,异常信息为{}", e); + } + } + + private void populationExchange(BusinessInterchange businessInterchange){ + Long maxNo = this.baseMapper.selectMaxExchangeNo(); + String orderNo = NumberGeneratorUtil.getContactNo("jjdh", maxNo); + AuthUser authUser = ShiroKit.getUser(); + businessInterchange.setCreateUser(authUser.getId()); + businessInterchange.setInterchangeCode(orderNo); + } + + private Integer sampleStatusCreator(Long orderId, Long sampleId, String status) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("order_id", orderId); + queryWrapper.eq(ObjectUtil.isEmpty(sampleId), "sample_id", sampleId); + BusinessOrderSampleRelation sampleStatusPopulation = new BusinessOrderSampleRelation(); + sampleStatusPopulation.setSampleStatus(status); + Integer sampleStatus = this.sampleRelationMapper.update(sampleStatusPopulation, queryWrapper); + return sampleStatus; + } + + private Integer sampleStatusDeletor(Long orderId, String status) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isEmpty(orderId), "order_id", orderId); + queryWrapper.eq("status", "2"); + BusinessOrderSampleRelation sampleStatusPopulation = new BusinessOrderSampleRelation(); + sampleStatusPopulation.setSampleStatus(status); + Integer sampleStatus = this.sampleRelationMapper.update(sampleStatusPopulation, queryWrapper); + return sampleStatus; + } + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 87ebeeb..9848a3b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -33,7 +33,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.stream.Collector; import java.util.stream.Collectors; /** @@ -133,7 +132,7 @@ ReturnDTO returnDTO = customerSampleService.addSample(sampleInfo); sampleAddFlag = sampleAddFlag && returnDTO.getCode() == 200; } - sampleAddFlag = sampleAddFlag && sampleStatusCreator(sampleInfo.getOrderId(), sampleInfo.getId(), "0") > 0; + sampleAddFlag = sampleAddFlag && sampleStatusCreator(sampleInfo.getOrderId(), sampleInfo.getId(), "1") > 0; } if (addFlag > 0 && sampleAddFlag) { return ReturnUtil.success(); @@ -191,7 +190,7 @@ queryWrapper.like(StringUtils.isNotBlank(request.getCustomerName()), "customer_name", request.getCustomerName()); queryWrapper.like(StringUtils.isNotBlank(request.getDeliverer()), "deliverer", request.getDeliverer()); queryWrapper.like(StringUtils.isNotBlank(request.getOrderCode()), "order_code", request.getOrderCode()); - queryWrapper.like(ObjectUtil.isNotEmpty(request.getIsUrgent()), "is_urgent", request.getIsUrgent()); + queryWrapper.like(ObjectUtil.isNotEmpty(request.getIsUrgent()) && request.getIsUrgent() != 0, "is_urgent", request.getIsUrgent()); queryWrapper.like(StringUtils.isNotBlank(request.getCustomerNo()), "customer_no", request.getCustomerNo()); queryWrapper.like(ObjectUtil.isNotEmpty(request.getStatus()) && request.getStatus() != 0, "status", request.getStatus()); queryWrapper.apply(StringUtils.isNotBlank(request.getStartTime()), @@ -214,6 +213,7 @@ sampleStatusPopulation.setOrderId(orderId); sampleStatusPopulation.setSampleId(sampleId); sampleStatusPopulation.setSampleStatus(status); + sampleStatusPopulation.setMeasureType("1"); Integer sampleStatus = this.sampleRelationMapper.insert(sampleStatusPopulation); return sampleStatus; } 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 new file mode 100644 index 0000000..66a414b --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -0,0 +1,87 @@ +package com.casic.missiles.service.Impl.business; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.SampleHandOutListResponse; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.business.BusinessOrderMapper; +import com.casic.missiles.mapper.business.BusinessOrderSampleRelationMapper; +import com.casic.missiles.model.business.BusinessLabExecutiveInfo; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.business.BusinessOrderSampleRelation; +import com.casic.missiles.service.business.IBusinessDispatchService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Service +@Slf4j +@AllArgsConstructor +public class IBusinessDispatchServiceImpl extends ServiceImpl implements IBusinessDispatchService { + + + //终止、回退、收入、归还、催办按钮 + @Override + public Page listPage(Page page, DeviceDispatchDTO request) { +// Page deviceDispatchVOPage=P +// //查询委托书和样品关联表中的各状态的样品 +// Page handOutList = orderSampleRelationMapper.selectSampleListByStatus(page, handOutListRequest); +// log.info("任务分发-当前查询样品状态为:{}", request.getSampleStatus()); +// List records = handOutList.getRecords(); +// if(CollectionUtils.isEmpty(records)){ +// return new Page<>(); +// } + return page; + } + + @Override + public void exportSampleDispatchList(DeviceDispatchDTO request, HttpServletResponse response) { + + } + + @Override + public ReturnDTO receiveDevice(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO backDevice(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO forcedTerminate(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO rushDoProcess(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } +} 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer sampleStatus; } 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 new file mode 100644 index 0000000..135b82c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceDispatchDTO { + + @ApiModelProperty(value = "样品编号", dataType = "String") + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + private String sampleName; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + private String orderNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerNo; + + @ApiModelProperty(value = "是否加急", dataType = "String") + private String isUrgent; + + @ApiModelProperty(value = "样品所属", dataType = "String") + private String sampleBelong; + + @ApiModelProperty(value = "样品状态", dataType = "String") + private String sampleStatus; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java new file mode 100644 index 0000000..e53d8c4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto.business.dispatch; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DeviceDispatchVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "样品编号", dataType = "String") + @ExcelProperty(value = "样品编号",order = 0) + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + @ExcelProperty(value = "样品名称",order = 1) + private String sampleName; + + @ApiModelProperty(value = "型号", dataType = "String") + @ExcelProperty(value = "型号",order = 2) + private String sampleModel; + + @ApiModelProperty(value = "出厂编号", dataType = "String") + @ExcelProperty(value = "出厂编号",order = 3) + private String manufacturingNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 4) + private String customerNo; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + @ExcelProperty(value = "委托书编号",order = 5) + private String orderCode; + + @ApiModelProperty(value = "委托书名称", dataType = "String") + @ExcelProperty(value = "委托书名称",order = 6) + private String customerName; + + @ApiModelProperty(value = "计划送达时间", dataType = "String") + @ExcelProperty(value = "计划送达时间",order = 7) + private String planDeliverTime; + + //数据库暂时没有字段 + @ApiModelProperty(value = "实际送达时间", dataType = "String") + @ExcelProperty(value = "实际送达时间",order = 8) + private String realDeliverTime; + + @ApiModelProperty(value = "样品所属", dataType = "String") + @ExcelProperty(value = "样品所属",order = 8) + private String sampleBelong; + + @ApiModelProperty(value = "当前检定环节", dataType = "String") + @ExcelProperty(value = "当前检定环节",order = 9) + private String measureNode; + + @ApiModelProperty(value = "已出具证书", dataType = "Integer") + @ExcelProperty(value = "已出具证书", order = 12) + private Integer alreadyCertifications; + + @ApiModelProperty(value = "应出具证书", dataType = "Integer") + @ExcelProperty(value = "应出具证书", order = 13) + private Integer requireCertifications; + // 终止、回退、收入、归还、催办按钮 + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java new file mode 100644 index 0000000..37cb067 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class InterchangeListRequest { + + @ApiModelProperty(value = "交接单编号", dataType = "String") + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + private String customerName; + + @ApiModelProperty(value = "交接人", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + private String deliverTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java new file mode 100644 index 0000000..5ecdc6f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java @@ -0,0 +1,54 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +@TableName +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class InterchangeListResponse { + + private Long id; + + @ApiModelProperty(value = "交接单编号", dataType = "String") + @ExcelProperty(value = "交接单编号",order = 0) + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 1) + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + @ExcelProperty(value = "委托方名称",order = 2) + private String customerName; + + @ApiModelProperty(value = "接收人", dataType = "String") + @ExcelProperty(value = "接收人",order = 3) + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + @ExcelProperty(value = "送检人",order = 4) + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + @ExcelProperty(value = "交接时间",order = 5) + private String deliverTime; + + @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注",order = 6) + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java index 7fdc869..ba919d3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java @@ -25,7 +25,7 @@ @ExcelIgnoreUnannotated public class OrderListReponse { - private final Long id; + private final Long id; @ApiModelProperty(value = "委托书编号", dataType = "String") @ExcelProperty(value = "委托书编号",order = 0) private String orderCode; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java new file mode 100644 index 0000000..a6930fd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java @@ -0,0 +1,136 @@ +package com.casic.missiles.dto.customer.Info; + + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("customer_info") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class CustomerInfoResponse implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "编号", dataType = "String") + @ExcelProperty(value = "编号",order = 0) + private String customerNo; + + @ApiModelProperty(value = "公司名称", dataType = "String") + @ExcelProperty(value = "公司名称",order = 1) + private String customerName; + + @ApiModelProperty(value = "公司简称", dataType = "String") + @ExcelProperty(value = "公司简称",order = 2) + private String briefName; + + @ApiModelProperty(value = "业务内容", dataType = "String") + @ExcelProperty(value = "业务内容",order = 3) + private String businessContent; + + @ApiModelProperty(value = "税号", dataType = "String") + @ExcelProperty(value = "税号",order = 4) + private String taxNumber; + + @ApiModelProperty(value = "银行账户名", dataType = "String") + @ExcelProperty(value = "银行账户名",order = 5) + private String bankAccount; + + @ApiModelProperty(value = "银行名称", dataType = "String") + @ExcelProperty(value = "银行名称",order = 6) + private String bankName; + + @ApiModelProperty(value = "银行账号", dataType = "String") + @ExcelProperty(value = "银行账号",order = 7) + private String bankAccountNumber; + + @ApiModelProperty(value = "邮编", dataType = "String") + @ExcelProperty(value = "邮编",order = 8) + private String postalCode; + + @ApiModelProperty(value = "负责人", dataType = "String") + @ExcelProperty(value = "负责人",order = 9) + private String director; + + @ApiModelProperty(value = "电话", dataType = "String") + @ExcelProperty(value = "电话",order = 10) + private String phone; + + @ApiModelProperty(value = "传真", dataType = "String") + @ExcelProperty(value = "电话",order = 11) + private String fax; + + @ApiModelProperty(value = "手机", dataType = "String") + @ExcelProperty(value = "手机",order = 12) + private String mobile; + + @ApiModelProperty(value = "邮箱", dataType = "String") + @ExcelProperty(value = "邮箱",order = 13) + private String email; + + @ApiModelProperty(value = "网址", dataType = "String") + @ExcelProperty(value = "网址",order =14) + private String website; + + @ApiModelProperty(value = "履约评级-字典", dataType = "String") + private String grade; + + @ApiModelProperty(value = "公司规模", dataType = "String") + @DictCodeField(message = "公司规模描述不合法", cacheName = MeterDictCode.COMPANY_SCALE) + private String companySize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模", dataType = "String") + private String companySizeName; + + @ApiModelProperty(value = "业务规模-字典", dataType = "String") + @DictCodeField(message = "业务规模描述不合法", cacheName = MeterDictCode.BUSINESS_SCALE) + private String businessSize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模名称", dataType = "String") + private String businessSizeName; + + @ApiModelProperty(value = "整体评价", dataType = "String") + @DictCodeField(message = "公司整体评价不合法", cacheName = MeterDictCode.EVALUATION) + private String evaluation; + + @TableField(exist = false) + @ApiModelProperty(value = "整体评价", dataType = "String") + private String evaluationName; + + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @ExcelProperty(value = "详细地址",order =15) + private String fullAddress; + + @ApiModelProperty(value = "业务范围", dataType = "String") + @ExcelProperty(value = "业务范围",order =16) + private String businessScope; + + @ApiModelProperty(value = "创建时间", dataType = "String") + @ExcelProperty(value = "创建时间",order =17) + private String createTime; + + @ApiModelProperty(value = "最后更新时间", dataType = "String") + @ExcelProperty(value = "最后更新时间",order =18) + private String updateTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java index 0341f20..6c7e8b3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "样品超期状态", dataType = "String") + @ApiModelProperty(value = "样品超期状态(1/0)", dataType = "String") private String overtimeStatus; @ApiModelProperty(value = "检定开始时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java index 285c3ab..a7ededa 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方代码", dataType = "String") @ExcelProperty(value = "委托方代码", order = 4) - private String customerId; + private String customerNo; @TableField(exist = false) @ApiModelProperty(value = "样品状态", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java index f62ce7f..f751625 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java @@ -3,9 +3,11 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.model.customer.CustomerSampleInfo; import lombok.Data; import java.io.Serializable; +import java.util.List; /** *

@@ -150,5 +152,6 @@ @TableField("update_time") private String updateTime; - -} + @TableField(exist = false) + private List customerSampleInfoList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java index 5a3d50f..455340b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java @@ -54,6 +54,17 @@ @TableField("measure_content") private String measureContent; + //检定方式 + @TableField("measure_type") + private String measureType; + + /** + * 样品检测设备实际到达时间 + */ + @TableField("real_deliver_time") + private String realDeliverTime; + + @TableField("create_time") private String createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java index 068bf49..a482c09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java @@ -19,11 +19,6 @@ @Data @TableName("customer_info") -@ColumnWidth(30) -@HeadRowHeight(15) -@ContentRowHeight(20) -@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) -@ExcelIgnoreUnannotated public class CustomerInfo implements Serializable { private static final long serialVersionUID = 1L; @@ -31,63 +26,48 @@ private Long id; @ApiModelProperty(value = "编号", dataType = "String") - @ExcelProperty(value = "编号",order = 0) private String customerNo; @ApiModelProperty(value = "公司名称", dataType = "String") - @ExcelProperty(value = "公司名称",order = 1) private String customerName; @ApiModelProperty(value = "公司简称", dataType = "String") - @ExcelProperty(value = "公司简称",order = 2) private String briefName; @ApiModelProperty(value = "业务内容", dataType = "String") - @ExcelProperty(value = "业务内容",order = 3) private String businessContent; @ApiModelProperty(value = "税号", dataType = "String") - @ExcelProperty(value = "税号",order = 4) private String taxNumber; @ApiModelProperty(value = "银行账户名", dataType = "String") - @ExcelProperty(value = "银行账户名",order = 5) private String bankAccount; @ApiModelProperty(value = "银行名称", dataType = "String") - @ExcelProperty(value = "银行名称",order = 6) private String bankName; @ApiModelProperty(value = "银行账号", dataType = "String") - @ExcelProperty(value = "银行账号",order = 7) private String bankAccountNumber; @ApiModelProperty(value = "邮编", dataType = "String") - @ExcelProperty(value = "邮编",order = 8) private String postalCode; @ApiModelProperty(value = "负责人", dataType = "String") - @ExcelProperty(value = "负责人",order = 9) private String director; @ApiModelProperty(value = "电话", dataType = "String") - @ExcelProperty(value = "电话",order = 10) private String phone; @ApiModelProperty(value = "传真", dataType = "String") - @ExcelProperty(value = "电话",order = 11) private String fax; @ApiModelProperty(value = "手机", dataType = "String") - @ExcelProperty(value = "手机",order = 12) private String mobile; @ApiModelProperty(value = "邮箱", dataType = "String") - @ExcelProperty(value = "邮箱",order = 13) private String email; @ApiModelProperty(value = "网址", dataType = "String") - @ExcelProperty(value = "网址",order =14) private String website; @ApiModelProperty(value = "履约评级-字典", dataType = "String") @@ -130,7 +110,6 @@ private String addressArea; @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") - @ExcelProperty(value = "详细地址",order =15) private String fullAddress; @ApiModelProperty(value = "公司地址-国家名字", dataType = "String") @@ -173,7 +152,6 @@ private String invoiceAreaName; @ApiModelProperty(value = "业务范围", dataType = "String") - @ExcelProperty(value = "业务范围",order =16) private String businessScope; @ApiModelProperty(value = "minio存储文件名", dataType = "String") @@ -192,11 +170,9 @@ private Integer isDel; @ApiModelProperty(value = "创建时间", dataType = "String") - @ExcelProperty(value = "创建时间",order =17) private String createTime; @ApiModelProperty(value = "最后更新时间", dataType = "String") - @ExcelProperty(value = "最后更新时间",order =18) private String updateTime; @TableField(exist = false) diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java index 17fbf10..dfcc97b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java @@ -77,9 +77,6 @@ @ApiModelProperty(value = "检定周期(月)", dataType = "String") private String measurePeriod; - @ApiModelProperty(value = "检定方式-字典", dataType = "String") - private String measureType; - @ApiModelProperty(value = "有效期限", dataType = "String") private String validDeadline; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java index 5208fb4..ff9fd1c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java @@ -1,13 +1,5 @@ package com.casic.missiles.model.customer; -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import com.alibaba.excel.annotation.write.style.ColumnWidth; -import com.alibaba.excel.annotation.write.style.ContentRowHeight; -import com.alibaba.excel.annotation.write.style.ContentStyle; -import com.alibaba.excel.annotation.write.style.HeadRowHeight; -import com.alibaba.excel.enums.poi.BorderStyleEnum; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java index 94d46e1..ea245a5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java @@ -1,11 +1,35 @@ package com.casic.missiles.service.Impl.business; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessInterchangeMapper; +import com.casic.missiles.mapper.business.BusinessOrderSampleRelationMapper; import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrderSampleRelation; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.service.business.IBusinessInterchangeService; +import com.casic.missiles.service.customer.CustomerSampleService; +import com.casic.missiles.utils.NumberGeneratorUtil; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; + /** *

* 业务管理-设备交接单 服务实现类 @@ -15,6 +39,111 @@ * @since 2023-02-02 */ @Service +@AllArgsConstructor public class BusinessInterchangeServiceImpl extends ServiceImpl implements IBusinessInterchangeService { + private final IBaseExportService iBaseExportService; + private final CustomerSampleService customerSampleService; + private final BusinessOrderSampleRelationMapper sampleRelationMapper; + + //** 送检人查询条件不在设备交接单中,需要联查才可以实现 + @Override + public Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception { + List resultPage = this.baseMapper.selectInterchangeListPage(page, request); + page.setRecords(resultPage); + return page; + } + + @Override + public BusinessInterchange exchangeDetail(Long id) { + BusinessInterchange businessExchange = this.baseMapper.selectById(id); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("order_id", businessExchange.getOrderId()); + List orderSampleList = sampleRelationMapper.selectList(queryWrapper); + List customerSampleList = new ArrayList<>(); + for (BusinessOrderSampleRelation orderSample : orderSampleList) { + CustomerSampleInfo customerSampleInfo = customerSampleService.sampleDetail(orderSample.getSampleId()); + customerSampleInfo.setIsExistSample("1"); + customerSampleList.add(customerSampleInfo); + } + businessExchange.setCustomerSampleInfoList(customerSampleList); + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO deleteExchange(Long id) { + BusinessInterchange businessInterchange = this.baseMapper.selectById(id); + Integer deleteFlag = this.baseMapper.deleteById(id); + Boolean sampleUpdateFlag = sampleStatusDeletor(businessInterchange.getOrderId(), "1") > 0; + if (deleteFlag > 0 && sampleUpdateFlag) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO updateExchange(BusinessInterchange businessInterchange) { + Integer updateFlag = this.baseMapper.updateById(businessInterchange); + if (updateFlag > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO addExchange(BusinessInterchange businessInterchange) { + populationExchange(businessInterchange); + Integer addFlag = this.baseMapper.insert(businessInterchange); + Boolean sampleAddFlag = true; + for (CustomerSampleInfo sampleInfo : businessInterchange.getCustomerSampleInfoList()) { + sampleAddFlag = sampleAddFlag && sampleStatusCreator(businessInterchange.getOrderId(), sampleInfo.getId(), "2") > 0; + } + if (addFlag > 0 && sampleAddFlag) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public void exportExchange(InterchangeListRequest request, HttpServletResponse response) { + try { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + List resultPage = this.baseMapper.selectInterchangeListPage(page, request); + iBaseExportService.exportExcel(response, InterchangeListResponse.class, resultPage, ExportEnum.EXCHANGE_DATA.getSheetName()); + } catch (Exception e) { + log.error("样品导出出现异常,异常信息为{}", e); + } + } + + private void populationExchange(BusinessInterchange businessInterchange){ + Long maxNo = this.baseMapper.selectMaxExchangeNo(); + String orderNo = NumberGeneratorUtil.getContactNo("jjdh", maxNo); + AuthUser authUser = ShiroKit.getUser(); + businessInterchange.setCreateUser(authUser.getId()); + businessInterchange.setInterchangeCode(orderNo); + } + + private Integer sampleStatusCreator(Long orderId, Long sampleId, String status) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("order_id", orderId); + queryWrapper.eq(ObjectUtil.isEmpty(sampleId), "sample_id", sampleId); + BusinessOrderSampleRelation sampleStatusPopulation = new BusinessOrderSampleRelation(); + sampleStatusPopulation.setSampleStatus(status); + Integer sampleStatus = this.sampleRelationMapper.update(sampleStatusPopulation, queryWrapper); + return sampleStatus; + } + + private Integer sampleStatusDeletor(Long orderId, String status) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isEmpty(orderId), "order_id", orderId); + queryWrapper.eq("status", "2"); + BusinessOrderSampleRelation sampleStatusPopulation = new BusinessOrderSampleRelation(); + sampleStatusPopulation.setSampleStatus(status); + Integer sampleStatus = this.sampleRelationMapper.update(sampleStatusPopulation, queryWrapper); + return sampleStatus; + } + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 87ebeeb..9848a3b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -33,7 +33,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.stream.Collector; import java.util.stream.Collectors; /** @@ -133,7 +132,7 @@ ReturnDTO returnDTO = customerSampleService.addSample(sampleInfo); sampleAddFlag = sampleAddFlag && returnDTO.getCode() == 200; } - sampleAddFlag = sampleAddFlag && sampleStatusCreator(sampleInfo.getOrderId(), sampleInfo.getId(), "0") > 0; + sampleAddFlag = sampleAddFlag && sampleStatusCreator(sampleInfo.getOrderId(), sampleInfo.getId(), "1") > 0; } if (addFlag > 0 && sampleAddFlag) { return ReturnUtil.success(); @@ -191,7 +190,7 @@ queryWrapper.like(StringUtils.isNotBlank(request.getCustomerName()), "customer_name", request.getCustomerName()); queryWrapper.like(StringUtils.isNotBlank(request.getDeliverer()), "deliverer", request.getDeliverer()); queryWrapper.like(StringUtils.isNotBlank(request.getOrderCode()), "order_code", request.getOrderCode()); - queryWrapper.like(ObjectUtil.isNotEmpty(request.getIsUrgent()), "is_urgent", request.getIsUrgent()); + queryWrapper.like(ObjectUtil.isNotEmpty(request.getIsUrgent()) && request.getIsUrgent() != 0, "is_urgent", request.getIsUrgent()); queryWrapper.like(StringUtils.isNotBlank(request.getCustomerNo()), "customer_no", request.getCustomerNo()); queryWrapper.like(ObjectUtil.isNotEmpty(request.getStatus()) && request.getStatus() != 0, "status", request.getStatus()); queryWrapper.apply(StringUtils.isNotBlank(request.getStartTime()), @@ -214,6 +213,7 @@ sampleStatusPopulation.setOrderId(orderId); sampleStatusPopulation.setSampleId(sampleId); sampleStatusPopulation.setSampleStatus(status); + sampleStatusPopulation.setMeasureType("1"); Integer sampleStatus = this.sampleRelationMapper.insert(sampleStatusPopulation); return sampleStatus; } 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 new file mode 100644 index 0000000..66a414b --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -0,0 +1,87 @@ +package com.casic.missiles.service.Impl.business; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.SampleHandOutListResponse; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.business.BusinessOrderMapper; +import com.casic.missiles.mapper.business.BusinessOrderSampleRelationMapper; +import com.casic.missiles.model.business.BusinessLabExecutiveInfo; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.business.BusinessOrderSampleRelation; +import com.casic.missiles.service.business.IBusinessDispatchService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Service +@Slf4j +@AllArgsConstructor +public class IBusinessDispatchServiceImpl extends ServiceImpl implements IBusinessDispatchService { + + + //终止、回退、收入、归还、催办按钮 + @Override + public Page listPage(Page page, DeviceDispatchDTO request) { +// Page deviceDispatchVOPage=P +// //查询委托书和样品关联表中的各状态的样品 +// Page handOutList = orderSampleRelationMapper.selectSampleListByStatus(page, handOutListRequest); +// log.info("任务分发-当前查询样品状态为:{}", request.getSampleStatus()); +// List records = handOutList.getRecords(); +// if(CollectionUtils.isEmpty(records)){ +// return new Page<>(); +// } + return page; + } + + @Override + public void exportSampleDispatchList(DeviceDispatchDTO request, HttpServletResponse response) { + + } + + @Override + public ReturnDTO receiveDevice(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO backDevice(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO forcedTerminate(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO rushDoProcess(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java index eb0012d..dec41f1 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java @@ -53,8 +53,11 @@ QueryWrapper wrapper = listParamWrapper(request); Page customerSamplePage = customerSampleListResponseMapper.selectPage(page, wrapper); customerSamplePage.getRecords().stream() - .filter(customerSample -> !ObjectUtils.isEmpty(customerSample.getOrderId())) - .forEach(customerSample -> customerSample.setSampleSatus(this.getSampleStatusById(customerSample.getOrderId(), customerSample.getId()))); + .forEach(customerSample ->{ + BusinessOrderSampleRelation businessOrderSampleRelation=this.getSampleStatusById(customerSample.getId()); + customerSample.setOrderId(businessOrderSampleRelation.getOrderId()); + customerSample.setSampleSatus(businessOrderSampleRelation.getSampleStatus()); + }); for (CustomerSampleListResponse customerSampleListResponse : customerSamplePage.getRecords()) { if (!StringUtils.isEmpty(customerSampleListResponse.getSampleSatus())) { DictCodeUtils.convertDictCodeToName(customerSampleListResponse); @@ -92,7 +95,6 @@ @Override public CustomerSampleInfo sampleDetail(Long id) { CustomerSampleInfo customerSampleInfo = this.baseMapper.selectById(id); -// customerSampleInfo.setOrderId(orderBuilder(customerSampleInfo.getId())); return customerSampleInfo; } @@ -153,14 +155,13 @@ return certificateResponsePage; } - private String getSampleStatusById(Long orderId, Long sampleId) { + private BusinessOrderSampleRelation getSampleStatusById(Long sampleId) { QueryWrapper wrapper = new QueryWrapper() - .eq("order_id", orderId) - .eq("sample_id", sampleId); + .eq("sample_id", sampleId) + .orderByDesc("create_time"); List orderSampleList = sampleRelationMapper.selectList(wrapper); Optional orderSampleOptional = orderSampleList.stream().findFirst(); - return orderSampleOptional.isPresent() ? orderSampleOptional.get().getSampleStatus() : null; - + return orderSampleOptional.isPresent() ? orderSampleOptional.get(): null; } private void initSample(CustomerSampleInfo customerSampleInfo) { 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer sampleStatus; } 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 new file mode 100644 index 0000000..135b82c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceDispatchDTO { + + @ApiModelProperty(value = "样品编号", dataType = "String") + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + private String sampleName; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + private String orderNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerNo; + + @ApiModelProperty(value = "是否加急", dataType = "String") + private String isUrgent; + + @ApiModelProperty(value = "样品所属", dataType = "String") + private String sampleBelong; + + @ApiModelProperty(value = "样品状态", dataType = "String") + private String sampleStatus; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java new file mode 100644 index 0000000..e53d8c4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto.business.dispatch; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DeviceDispatchVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "样品编号", dataType = "String") + @ExcelProperty(value = "样品编号",order = 0) + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + @ExcelProperty(value = "样品名称",order = 1) + private String sampleName; + + @ApiModelProperty(value = "型号", dataType = "String") + @ExcelProperty(value = "型号",order = 2) + private String sampleModel; + + @ApiModelProperty(value = "出厂编号", dataType = "String") + @ExcelProperty(value = "出厂编号",order = 3) + private String manufacturingNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 4) + private String customerNo; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + @ExcelProperty(value = "委托书编号",order = 5) + private String orderCode; + + @ApiModelProperty(value = "委托书名称", dataType = "String") + @ExcelProperty(value = "委托书名称",order = 6) + private String customerName; + + @ApiModelProperty(value = "计划送达时间", dataType = "String") + @ExcelProperty(value = "计划送达时间",order = 7) + private String planDeliverTime; + + //数据库暂时没有字段 + @ApiModelProperty(value = "实际送达时间", dataType = "String") + @ExcelProperty(value = "实际送达时间",order = 8) + private String realDeliverTime; + + @ApiModelProperty(value = "样品所属", dataType = "String") + @ExcelProperty(value = "样品所属",order = 8) + private String sampleBelong; + + @ApiModelProperty(value = "当前检定环节", dataType = "String") + @ExcelProperty(value = "当前检定环节",order = 9) + private String measureNode; + + @ApiModelProperty(value = "已出具证书", dataType = "Integer") + @ExcelProperty(value = "已出具证书", order = 12) + private Integer alreadyCertifications; + + @ApiModelProperty(value = "应出具证书", dataType = "Integer") + @ExcelProperty(value = "应出具证书", order = 13) + private Integer requireCertifications; + // 终止、回退、收入、归还、催办按钮 + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java new file mode 100644 index 0000000..37cb067 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class InterchangeListRequest { + + @ApiModelProperty(value = "交接单编号", dataType = "String") + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + private String customerName; + + @ApiModelProperty(value = "交接人", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + private String deliverTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java new file mode 100644 index 0000000..5ecdc6f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java @@ -0,0 +1,54 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +@TableName +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class InterchangeListResponse { + + private Long id; + + @ApiModelProperty(value = "交接单编号", dataType = "String") + @ExcelProperty(value = "交接单编号",order = 0) + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 1) + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + @ExcelProperty(value = "委托方名称",order = 2) + private String customerName; + + @ApiModelProperty(value = "接收人", dataType = "String") + @ExcelProperty(value = "接收人",order = 3) + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + @ExcelProperty(value = "送检人",order = 4) + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + @ExcelProperty(value = "交接时间",order = 5) + private String deliverTime; + + @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注",order = 6) + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java index 7fdc869..ba919d3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java @@ -25,7 +25,7 @@ @ExcelIgnoreUnannotated public class OrderListReponse { - private final Long id; + private final Long id; @ApiModelProperty(value = "委托书编号", dataType = "String") @ExcelProperty(value = "委托书编号",order = 0) private String orderCode; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java new file mode 100644 index 0000000..a6930fd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java @@ -0,0 +1,136 @@ +package com.casic.missiles.dto.customer.Info; + + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("customer_info") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class CustomerInfoResponse implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "编号", dataType = "String") + @ExcelProperty(value = "编号",order = 0) + private String customerNo; + + @ApiModelProperty(value = "公司名称", dataType = "String") + @ExcelProperty(value = "公司名称",order = 1) + private String customerName; + + @ApiModelProperty(value = "公司简称", dataType = "String") + @ExcelProperty(value = "公司简称",order = 2) + private String briefName; + + @ApiModelProperty(value = "业务内容", dataType = "String") + @ExcelProperty(value = "业务内容",order = 3) + private String businessContent; + + @ApiModelProperty(value = "税号", dataType = "String") + @ExcelProperty(value = "税号",order = 4) + private String taxNumber; + + @ApiModelProperty(value = "银行账户名", dataType = "String") + @ExcelProperty(value = "银行账户名",order = 5) + private String bankAccount; + + @ApiModelProperty(value = "银行名称", dataType = "String") + @ExcelProperty(value = "银行名称",order = 6) + private String bankName; + + @ApiModelProperty(value = "银行账号", dataType = "String") + @ExcelProperty(value = "银行账号",order = 7) + private String bankAccountNumber; + + @ApiModelProperty(value = "邮编", dataType = "String") + @ExcelProperty(value = "邮编",order = 8) + private String postalCode; + + @ApiModelProperty(value = "负责人", dataType = "String") + @ExcelProperty(value = "负责人",order = 9) + private String director; + + @ApiModelProperty(value = "电话", dataType = "String") + @ExcelProperty(value = "电话",order = 10) + private String phone; + + @ApiModelProperty(value = "传真", dataType = "String") + @ExcelProperty(value = "电话",order = 11) + private String fax; + + @ApiModelProperty(value = "手机", dataType = "String") + @ExcelProperty(value = "手机",order = 12) + private String mobile; + + @ApiModelProperty(value = "邮箱", dataType = "String") + @ExcelProperty(value = "邮箱",order = 13) + private String email; + + @ApiModelProperty(value = "网址", dataType = "String") + @ExcelProperty(value = "网址",order =14) + private String website; + + @ApiModelProperty(value = "履约评级-字典", dataType = "String") + private String grade; + + @ApiModelProperty(value = "公司规模", dataType = "String") + @DictCodeField(message = "公司规模描述不合法", cacheName = MeterDictCode.COMPANY_SCALE) + private String companySize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模", dataType = "String") + private String companySizeName; + + @ApiModelProperty(value = "业务规模-字典", dataType = "String") + @DictCodeField(message = "业务规模描述不合法", cacheName = MeterDictCode.BUSINESS_SCALE) + private String businessSize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模名称", dataType = "String") + private String businessSizeName; + + @ApiModelProperty(value = "整体评价", dataType = "String") + @DictCodeField(message = "公司整体评价不合法", cacheName = MeterDictCode.EVALUATION) + private String evaluation; + + @TableField(exist = false) + @ApiModelProperty(value = "整体评价", dataType = "String") + private String evaluationName; + + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @ExcelProperty(value = "详细地址",order =15) + private String fullAddress; + + @ApiModelProperty(value = "业务范围", dataType = "String") + @ExcelProperty(value = "业务范围",order =16) + private String businessScope; + + @ApiModelProperty(value = "创建时间", dataType = "String") + @ExcelProperty(value = "创建时间",order =17) + private String createTime; + + @ApiModelProperty(value = "最后更新时间", dataType = "String") + @ExcelProperty(value = "最后更新时间",order =18) + private String updateTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java index 0341f20..6c7e8b3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "样品超期状态", dataType = "String") + @ApiModelProperty(value = "样品超期状态(1/0)", dataType = "String") private String overtimeStatus; @ApiModelProperty(value = "检定开始时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java index 285c3ab..a7ededa 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方代码", dataType = "String") @ExcelProperty(value = "委托方代码", order = 4) - private String customerId; + private String customerNo; @TableField(exist = false) @ApiModelProperty(value = "样品状态", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java index f62ce7f..f751625 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java @@ -3,9 +3,11 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.model.customer.CustomerSampleInfo; import lombok.Data; import java.io.Serializable; +import java.util.List; /** *

@@ -150,5 +152,6 @@ @TableField("update_time") private String updateTime; - -} + @TableField(exist = false) + private List customerSampleInfoList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java index 5a3d50f..455340b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java @@ -54,6 +54,17 @@ @TableField("measure_content") private String measureContent; + //检定方式 + @TableField("measure_type") + private String measureType; + + /** + * 样品检测设备实际到达时间 + */ + @TableField("real_deliver_time") + private String realDeliverTime; + + @TableField("create_time") private String createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java index 068bf49..a482c09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java @@ -19,11 +19,6 @@ @Data @TableName("customer_info") -@ColumnWidth(30) -@HeadRowHeight(15) -@ContentRowHeight(20) -@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) -@ExcelIgnoreUnannotated public class CustomerInfo implements Serializable { private static final long serialVersionUID = 1L; @@ -31,63 +26,48 @@ private Long id; @ApiModelProperty(value = "编号", dataType = "String") - @ExcelProperty(value = "编号",order = 0) private String customerNo; @ApiModelProperty(value = "公司名称", dataType = "String") - @ExcelProperty(value = "公司名称",order = 1) private String customerName; @ApiModelProperty(value = "公司简称", dataType = "String") - @ExcelProperty(value = "公司简称",order = 2) private String briefName; @ApiModelProperty(value = "业务内容", dataType = "String") - @ExcelProperty(value = "业务内容",order = 3) private String businessContent; @ApiModelProperty(value = "税号", dataType = "String") - @ExcelProperty(value = "税号",order = 4) private String taxNumber; @ApiModelProperty(value = "银行账户名", dataType = "String") - @ExcelProperty(value = "银行账户名",order = 5) private String bankAccount; @ApiModelProperty(value = "银行名称", dataType = "String") - @ExcelProperty(value = "银行名称",order = 6) private String bankName; @ApiModelProperty(value = "银行账号", dataType = "String") - @ExcelProperty(value = "银行账号",order = 7) private String bankAccountNumber; @ApiModelProperty(value = "邮编", dataType = "String") - @ExcelProperty(value = "邮编",order = 8) private String postalCode; @ApiModelProperty(value = "负责人", dataType = "String") - @ExcelProperty(value = "负责人",order = 9) private String director; @ApiModelProperty(value = "电话", dataType = "String") - @ExcelProperty(value = "电话",order = 10) private String phone; @ApiModelProperty(value = "传真", dataType = "String") - @ExcelProperty(value = "电话",order = 11) private String fax; @ApiModelProperty(value = "手机", dataType = "String") - @ExcelProperty(value = "手机",order = 12) private String mobile; @ApiModelProperty(value = "邮箱", dataType = "String") - @ExcelProperty(value = "邮箱",order = 13) private String email; @ApiModelProperty(value = "网址", dataType = "String") - @ExcelProperty(value = "网址",order =14) private String website; @ApiModelProperty(value = "履约评级-字典", dataType = "String") @@ -130,7 +110,6 @@ private String addressArea; @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") - @ExcelProperty(value = "详细地址",order =15) private String fullAddress; @ApiModelProperty(value = "公司地址-国家名字", dataType = "String") @@ -173,7 +152,6 @@ private String invoiceAreaName; @ApiModelProperty(value = "业务范围", dataType = "String") - @ExcelProperty(value = "业务范围",order =16) private String businessScope; @ApiModelProperty(value = "minio存储文件名", dataType = "String") @@ -192,11 +170,9 @@ private Integer isDel; @ApiModelProperty(value = "创建时间", dataType = "String") - @ExcelProperty(value = "创建时间",order =17) private String createTime; @ApiModelProperty(value = "最后更新时间", dataType = "String") - @ExcelProperty(value = "最后更新时间",order =18) private String updateTime; @TableField(exist = false) diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java index 17fbf10..dfcc97b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java @@ -77,9 +77,6 @@ @ApiModelProperty(value = "检定周期(月)", dataType = "String") private String measurePeriod; - @ApiModelProperty(value = "检定方式-字典", dataType = "String") - private String measureType; - @ApiModelProperty(value = "有效期限", dataType = "String") private String validDeadline; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java index 5208fb4..ff9fd1c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java @@ -1,13 +1,5 @@ package com.casic.missiles.model.customer; -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import com.alibaba.excel.annotation.write.style.ColumnWidth; -import com.alibaba.excel.annotation.write.style.ContentRowHeight; -import com.alibaba.excel.annotation.write.style.ContentStyle; -import com.alibaba.excel.annotation.write.style.HeadRowHeight; -import com.alibaba.excel.enums.poi.BorderStyleEnum; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java index 94d46e1..ea245a5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java @@ -1,11 +1,35 @@ package com.casic.missiles.service.Impl.business; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessInterchangeMapper; +import com.casic.missiles.mapper.business.BusinessOrderSampleRelationMapper; import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrderSampleRelation; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.service.business.IBusinessInterchangeService; +import com.casic.missiles.service.customer.CustomerSampleService; +import com.casic.missiles.utils.NumberGeneratorUtil; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; + /** *

* 业务管理-设备交接单 服务实现类 @@ -15,6 +39,111 @@ * @since 2023-02-02 */ @Service +@AllArgsConstructor public class BusinessInterchangeServiceImpl extends ServiceImpl implements IBusinessInterchangeService { + private final IBaseExportService iBaseExportService; + private final CustomerSampleService customerSampleService; + private final BusinessOrderSampleRelationMapper sampleRelationMapper; + + //** 送检人查询条件不在设备交接单中,需要联查才可以实现 + @Override + public Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception { + List resultPage = this.baseMapper.selectInterchangeListPage(page, request); + page.setRecords(resultPage); + return page; + } + + @Override + public BusinessInterchange exchangeDetail(Long id) { + BusinessInterchange businessExchange = this.baseMapper.selectById(id); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("order_id", businessExchange.getOrderId()); + List orderSampleList = sampleRelationMapper.selectList(queryWrapper); + List customerSampleList = new ArrayList<>(); + for (BusinessOrderSampleRelation orderSample : orderSampleList) { + CustomerSampleInfo customerSampleInfo = customerSampleService.sampleDetail(orderSample.getSampleId()); + customerSampleInfo.setIsExistSample("1"); + customerSampleList.add(customerSampleInfo); + } + businessExchange.setCustomerSampleInfoList(customerSampleList); + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO deleteExchange(Long id) { + BusinessInterchange businessInterchange = this.baseMapper.selectById(id); + Integer deleteFlag = this.baseMapper.deleteById(id); + Boolean sampleUpdateFlag = sampleStatusDeletor(businessInterchange.getOrderId(), "1") > 0; + if (deleteFlag > 0 && sampleUpdateFlag) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO updateExchange(BusinessInterchange businessInterchange) { + Integer updateFlag = this.baseMapper.updateById(businessInterchange); + if (updateFlag > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO addExchange(BusinessInterchange businessInterchange) { + populationExchange(businessInterchange); + Integer addFlag = this.baseMapper.insert(businessInterchange); + Boolean sampleAddFlag = true; + for (CustomerSampleInfo sampleInfo : businessInterchange.getCustomerSampleInfoList()) { + sampleAddFlag = sampleAddFlag && sampleStatusCreator(businessInterchange.getOrderId(), sampleInfo.getId(), "2") > 0; + } + if (addFlag > 0 && sampleAddFlag) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public void exportExchange(InterchangeListRequest request, HttpServletResponse response) { + try { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + List resultPage = this.baseMapper.selectInterchangeListPage(page, request); + iBaseExportService.exportExcel(response, InterchangeListResponse.class, resultPage, ExportEnum.EXCHANGE_DATA.getSheetName()); + } catch (Exception e) { + log.error("样品导出出现异常,异常信息为{}", e); + } + } + + private void populationExchange(BusinessInterchange businessInterchange){ + Long maxNo = this.baseMapper.selectMaxExchangeNo(); + String orderNo = NumberGeneratorUtil.getContactNo("jjdh", maxNo); + AuthUser authUser = ShiroKit.getUser(); + businessInterchange.setCreateUser(authUser.getId()); + businessInterchange.setInterchangeCode(orderNo); + } + + private Integer sampleStatusCreator(Long orderId, Long sampleId, String status) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("order_id", orderId); + queryWrapper.eq(ObjectUtil.isEmpty(sampleId), "sample_id", sampleId); + BusinessOrderSampleRelation sampleStatusPopulation = new BusinessOrderSampleRelation(); + sampleStatusPopulation.setSampleStatus(status); + Integer sampleStatus = this.sampleRelationMapper.update(sampleStatusPopulation, queryWrapper); + return sampleStatus; + } + + private Integer sampleStatusDeletor(Long orderId, String status) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isEmpty(orderId), "order_id", orderId); + queryWrapper.eq("status", "2"); + BusinessOrderSampleRelation sampleStatusPopulation = new BusinessOrderSampleRelation(); + sampleStatusPopulation.setSampleStatus(status); + Integer sampleStatus = this.sampleRelationMapper.update(sampleStatusPopulation, queryWrapper); + return sampleStatus; + } + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 87ebeeb..9848a3b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -33,7 +33,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.stream.Collector; import java.util.stream.Collectors; /** @@ -133,7 +132,7 @@ ReturnDTO returnDTO = customerSampleService.addSample(sampleInfo); sampleAddFlag = sampleAddFlag && returnDTO.getCode() == 200; } - sampleAddFlag = sampleAddFlag && sampleStatusCreator(sampleInfo.getOrderId(), sampleInfo.getId(), "0") > 0; + sampleAddFlag = sampleAddFlag && sampleStatusCreator(sampleInfo.getOrderId(), sampleInfo.getId(), "1") > 0; } if (addFlag > 0 && sampleAddFlag) { return ReturnUtil.success(); @@ -191,7 +190,7 @@ queryWrapper.like(StringUtils.isNotBlank(request.getCustomerName()), "customer_name", request.getCustomerName()); queryWrapper.like(StringUtils.isNotBlank(request.getDeliverer()), "deliverer", request.getDeliverer()); queryWrapper.like(StringUtils.isNotBlank(request.getOrderCode()), "order_code", request.getOrderCode()); - queryWrapper.like(ObjectUtil.isNotEmpty(request.getIsUrgent()), "is_urgent", request.getIsUrgent()); + queryWrapper.like(ObjectUtil.isNotEmpty(request.getIsUrgent()) && request.getIsUrgent() != 0, "is_urgent", request.getIsUrgent()); queryWrapper.like(StringUtils.isNotBlank(request.getCustomerNo()), "customer_no", request.getCustomerNo()); queryWrapper.like(ObjectUtil.isNotEmpty(request.getStatus()) && request.getStatus() != 0, "status", request.getStatus()); queryWrapper.apply(StringUtils.isNotBlank(request.getStartTime()), @@ -214,6 +213,7 @@ sampleStatusPopulation.setOrderId(orderId); sampleStatusPopulation.setSampleId(sampleId); sampleStatusPopulation.setSampleStatus(status); + sampleStatusPopulation.setMeasureType("1"); Integer sampleStatus = this.sampleRelationMapper.insert(sampleStatusPopulation); return sampleStatus; } 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 new file mode 100644 index 0000000..66a414b --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -0,0 +1,87 @@ +package com.casic.missiles.service.Impl.business; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.SampleHandOutListResponse; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.business.BusinessOrderMapper; +import com.casic.missiles.mapper.business.BusinessOrderSampleRelationMapper; +import com.casic.missiles.model.business.BusinessLabExecutiveInfo; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.business.BusinessOrderSampleRelation; +import com.casic.missiles.service.business.IBusinessDispatchService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Service +@Slf4j +@AllArgsConstructor +public class IBusinessDispatchServiceImpl extends ServiceImpl implements IBusinessDispatchService { + + + //终止、回退、收入、归还、催办按钮 + @Override + public Page listPage(Page page, DeviceDispatchDTO request) { +// Page deviceDispatchVOPage=P +// //查询委托书和样品关联表中的各状态的样品 +// Page handOutList = orderSampleRelationMapper.selectSampleListByStatus(page, handOutListRequest); +// log.info("任务分发-当前查询样品状态为:{}", request.getSampleStatus()); +// List records = handOutList.getRecords(); +// if(CollectionUtils.isEmpty(records)){ +// return new Page<>(); +// } + return page; + } + + @Override + public void exportSampleDispatchList(DeviceDispatchDTO request, HttpServletResponse response) { + + } + + @Override + public ReturnDTO receiveDevice(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO backDevice(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO forcedTerminate(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO rushDoProcess(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java index eb0012d..dec41f1 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java @@ -53,8 +53,11 @@ QueryWrapper wrapper = listParamWrapper(request); Page customerSamplePage = customerSampleListResponseMapper.selectPage(page, wrapper); customerSamplePage.getRecords().stream() - .filter(customerSample -> !ObjectUtils.isEmpty(customerSample.getOrderId())) - .forEach(customerSample -> customerSample.setSampleSatus(this.getSampleStatusById(customerSample.getOrderId(), customerSample.getId()))); + .forEach(customerSample ->{ + BusinessOrderSampleRelation businessOrderSampleRelation=this.getSampleStatusById(customerSample.getId()); + customerSample.setOrderId(businessOrderSampleRelation.getOrderId()); + customerSample.setSampleSatus(businessOrderSampleRelation.getSampleStatus()); + }); for (CustomerSampleListResponse customerSampleListResponse : customerSamplePage.getRecords()) { if (!StringUtils.isEmpty(customerSampleListResponse.getSampleSatus())) { DictCodeUtils.convertDictCodeToName(customerSampleListResponse); @@ -92,7 +95,6 @@ @Override public CustomerSampleInfo sampleDetail(Long id) { CustomerSampleInfo customerSampleInfo = this.baseMapper.selectById(id); -// customerSampleInfo.setOrderId(orderBuilder(customerSampleInfo.getId())); return customerSampleInfo; } @@ -153,14 +155,13 @@ return certificateResponsePage; } - private String getSampleStatusById(Long orderId, Long sampleId) { + private BusinessOrderSampleRelation getSampleStatusById(Long sampleId) { QueryWrapper wrapper = new QueryWrapper() - .eq("order_id", orderId) - .eq("sample_id", sampleId); + .eq("sample_id", sampleId) + .orderByDesc("create_time"); List orderSampleList = sampleRelationMapper.selectList(wrapper); Optional orderSampleOptional = orderSampleList.stream().findFirst(); - return orderSampleOptional.isPresent() ? orderSampleOptional.get().getSampleStatus() : null; - + return orderSampleOptional.isPresent() ? orderSampleOptional.get(): null; } private void initSample(CustomerSampleInfo customerSampleInfo) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java index b82f087..6b05b67 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java @@ -18,6 +18,7 @@ import com.casic.missiles.mapper.customer.CustomerMapper; import com.casic.missiles.mapper.customer.CustomerUserMapper; import com.casic.missiles.mapper.customer.customize.CertificationResponseMapper; +import com.casic.missiles.mapper.customer.customize.CustomerInfoResponseMapper; import com.casic.missiles.mapper.customer.customize.SampleRecordsResponseMapper; import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.customer.CustomerUserInfo; @@ -42,12 +43,13 @@ private final CustomerUserMapper customerUserMapper; private final CertificationResponseMapper certificationMapper; private final IBaseExportService iBaseExportService; + private final CustomerInfoResponseMapper customerInfoResponseMapper; @Override - public Page listPage(Page page, CustomerListRequest request) throws Exception { - QueryWrapper wrapper = listParamWrapper(request); - Page resultPage = this.baseMapper.selectPage(page, wrapper); - for (CustomerInfo customerInfo : resultPage.getRecords()) { + public Page listPage(Page page, CustomerListRequest request) throws Exception { + QueryWrapper wrapper = listParamWrapper(request); + Page resultPage = customerInfoResponseMapper.selectPage(page, wrapper); + for (CustomerInfoResponse customerInfo : resultPage.getRecords()) { DictCodeUtils.convertDictCodeToName(customerInfo); } return resultPage; @@ -131,19 +133,19 @@ @Override public void customerExport(CustomerListRequest request, HttpServletResponse response) { try { - QueryWrapper wrapper = listParamWrapper(request); - List customerInfoList = this.baseMapper.selectList(wrapper); - for (CustomerInfo customerInfo : customerInfoList) { + QueryWrapper wrapper = listParamWrapper(request); + List customerInfoList =customerInfoResponseMapper.selectList(wrapper); + for (CustomerInfoResponse customerInfo : customerInfoList) { DictCodeUtils.convertDictCodeToName(customerInfo); } - iBaseExportService.exportExcel(response, CustomerInfo.class, customerInfoList, ExportEnum.CUSTOMER_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, CustomerInfoResponse.class, customerInfoList, ExportEnum.CUSTOMER_EXPORT.getSheetName()); } catch (Exception e) { log.error("客户导出出现异常,异常信息为{}", e); } } - private QueryWrapper listParamWrapper(CustomerListRequest request) { - QueryWrapper queryWrapper = new QueryWrapper<>(); + private QueryWrapper listParamWrapper(CustomerListRequest request) { + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(StringUtils.isNotBlank(request.getCustomerNo()), "customer_no", request.getCustomerNo()); queryWrapper.like(StringUtils.isNotBlank(request.getCustomerName()), "customer_name", request.getCustomerName()); queryWrapper.like(StringUtils.isNotBlank(request.getBussinessSize()), "bussiness_size", request.getBussinessSize()); 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer sampleStatus; } 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 new file mode 100644 index 0000000..135b82c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceDispatchDTO { + + @ApiModelProperty(value = "样品编号", dataType = "String") + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + private String sampleName; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + private String orderNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerNo; + + @ApiModelProperty(value = "是否加急", dataType = "String") + private String isUrgent; + + @ApiModelProperty(value = "样品所属", dataType = "String") + private String sampleBelong; + + @ApiModelProperty(value = "样品状态", dataType = "String") + private String sampleStatus; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java new file mode 100644 index 0000000..e53d8c4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto.business.dispatch; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DeviceDispatchVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "样品编号", dataType = "String") + @ExcelProperty(value = "样品编号",order = 0) + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + @ExcelProperty(value = "样品名称",order = 1) + private String sampleName; + + @ApiModelProperty(value = "型号", dataType = "String") + @ExcelProperty(value = "型号",order = 2) + private String sampleModel; + + @ApiModelProperty(value = "出厂编号", dataType = "String") + @ExcelProperty(value = "出厂编号",order = 3) + private String manufacturingNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 4) + private String customerNo; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + @ExcelProperty(value = "委托书编号",order = 5) + private String orderCode; + + @ApiModelProperty(value = "委托书名称", dataType = "String") + @ExcelProperty(value = "委托书名称",order = 6) + private String customerName; + + @ApiModelProperty(value = "计划送达时间", dataType = "String") + @ExcelProperty(value = "计划送达时间",order = 7) + private String planDeliverTime; + + //数据库暂时没有字段 + @ApiModelProperty(value = "实际送达时间", dataType = "String") + @ExcelProperty(value = "实际送达时间",order = 8) + private String realDeliverTime; + + @ApiModelProperty(value = "样品所属", dataType = "String") + @ExcelProperty(value = "样品所属",order = 8) + private String sampleBelong; + + @ApiModelProperty(value = "当前检定环节", dataType = "String") + @ExcelProperty(value = "当前检定环节",order = 9) + private String measureNode; + + @ApiModelProperty(value = "已出具证书", dataType = "Integer") + @ExcelProperty(value = "已出具证书", order = 12) + private Integer alreadyCertifications; + + @ApiModelProperty(value = "应出具证书", dataType = "Integer") + @ExcelProperty(value = "应出具证书", order = 13) + private Integer requireCertifications; + // 终止、回退、收入、归还、催办按钮 + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java new file mode 100644 index 0000000..37cb067 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class InterchangeListRequest { + + @ApiModelProperty(value = "交接单编号", dataType = "String") + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + private String customerName; + + @ApiModelProperty(value = "交接人", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + private String deliverTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java new file mode 100644 index 0000000..5ecdc6f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java @@ -0,0 +1,54 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +@TableName +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class InterchangeListResponse { + + private Long id; + + @ApiModelProperty(value = "交接单编号", dataType = "String") + @ExcelProperty(value = "交接单编号",order = 0) + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 1) + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + @ExcelProperty(value = "委托方名称",order = 2) + private String customerName; + + @ApiModelProperty(value = "接收人", dataType = "String") + @ExcelProperty(value = "接收人",order = 3) + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + @ExcelProperty(value = "送检人",order = 4) + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + @ExcelProperty(value = "交接时间",order = 5) + private String deliverTime; + + @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注",order = 6) + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java index 7fdc869..ba919d3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java @@ -25,7 +25,7 @@ @ExcelIgnoreUnannotated public class OrderListReponse { - private final Long id; + private final Long id; @ApiModelProperty(value = "委托书编号", dataType = "String") @ExcelProperty(value = "委托书编号",order = 0) private String orderCode; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java new file mode 100644 index 0000000..a6930fd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java @@ -0,0 +1,136 @@ +package com.casic.missiles.dto.customer.Info; + + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("customer_info") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class CustomerInfoResponse implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "编号", dataType = "String") + @ExcelProperty(value = "编号",order = 0) + private String customerNo; + + @ApiModelProperty(value = "公司名称", dataType = "String") + @ExcelProperty(value = "公司名称",order = 1) + private String customerName; + + @ApiModelProperty(value = "公司简称", dataType = "String") + @ExcelProperty(value = "公司简称",order = 2) + private String briefName; + + @ApiModelProperty(value = "业务内容", dataType = "String") + @ExcelProperty(value = "业务内容",order = 3) + private String businessContent; + + @ApiModelProperty(value = "税号", dataType = "String") + @ExcelProperty(value = "税号",order = 4) + private String taxNumber; + + @ApiModelProperty(value = "银行账户名", dataType = "String") + @ExcelProperty(value = "银行账户名",order = 5) + private String bankAccount; + + @ApiModelProperty(value = "银行名称", dataType = "String") + @ExcelProperty(value = "银行名称",order = 6) + private String bankName; + + @ApiModelProperty(value = "银行账号", dataType = "String") + @ExcelProperty(value = "银行账号",order = 7) + private String bankAccountNumber; + + @ApiModelProperty(value = "邮编", dataType = "String") + @ExcelProperty(value = "邮编",order = 8) + private String postalCode; + + @ApiModelProperty(value = "负责人", dataType = "String") + @ExcelProperty(value = "负责人",order = 9) + private String director; + + @ApiModelProperty(value = "电话", dataType = "String") + @ExcelProperty(value = "电话",order = 10) + private String phone; + + @ApiModelProperty(value = "传真", dataType = "String") + @ExcelProperty(value = "电话",order = 11) + private String fax; + + @ApiModelProperty(value = "手机", dataType = "String") + @ExcelProperty(value = "手机",order = 12) + private String mobile; + + @ApiModelProperty(value = "邮箱", dataType = "String") + @ExcelProperty(value = "邮箱",order = 13) + private String email; + + @ApiModelProperty(value = "网址", dataType = "String") + @ExcelProperty(value = "网址",order =14) + private String website; + + @ApiModelProperty(value = "履约评级-字典", dataType = "String") + private String grade; + + @ApiModelProperty(value = "公司规模", dataType = "String") + @DictCodeField(message = "公司规模描述不合法", cacheName = MeterDictCode.COMPANY_SCALE) + private String companySize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模", dataType = "String") + private String companySizeName; + + @ApiModelProperty(value = "业务规模-字典", dataType = "String") + @DictCodeField(message = "业务规模描述不合法", cacheName = MeterDictCode.BUSINESS_SCALE) + private String businessSize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模名称", dataType = "String") + private String businessSizeName; + + @ApiModelProperty(value = "整体评价", dataType = "String") + @DictCodeField(message = "公司整体评价不合法", cacheName = MeterDictCode.EVALUATION) + private String evaluation; + + @TableField(exist = false) + @ApiModelProperty(value = "整体评价", dataType = "String") + private String evaluationName; + + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @ExcelProperty(value = "详细地址",order =15) + private String fullAddress; + + @ApiModelProperty(value = "业务范围", dataType = "String") + @ExcelProperty(value = "业务范围",order =16) + private String businessScope; + + @ApiModelProperty(value = "创建时间", dataType = "String") + @ExcelProperty(value = "创建时间",order =17) + private String createTime; + + @ApiModelProperty(value = "最后更新时间", dataType = "String") + @ExcelProperty(value = "最后更新时间",order =18) + private String updateTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java index 0341f20..6c7e8b3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "样品超期状态", dataType = "String") + @ApiModelProperty(value = "样品超期状态(1/0)", dataType = "String") private String overtimeStatus; @ApiModelProperty(value = "检定开始时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java index 285c3ab..a7ededa 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方代码", dataType = "String") @ExcelProperty(value = "委托方代码", order = 4) - private String customerId; + private String customerNo; @TableField(exist = false) @ApiModelProperty(value = "样品状态", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java index f62ce7f..f751625 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java @@ -3,9 +3,11 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.model.customer.CustomerSampleInfo; import lombok.Data; import java.io.Serializable; +import java.util.List; /** *

@@ -150,5 +152,6 @@ @TableField("update_time") private String updateTime; - -} + @TableField(exist = false) + private List customerSampleInfoList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java index 5a3d50f..455340b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java @@ -54,6 +54,17 @@ @TableField("measure_content") private String measureContent; + //检定方式 + @TableField("measure_type") + private String measureType; + + /** + * 样品检测设备实际到达时间 + */ + @TableField("real_deliver_time") + private String realDeliverTime; + + @TableField("create_time") private String createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java index 068bf49..a482c09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java @@ -19,11 +19,6 @@ @Data @TableName("customer_info") -@ColumnWidth(30) -@HeadRowHeight(15) -@ContentRowHeight(20) -@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) -@ExcelIgnoreUnannotated public class CustomerInfo implements Serializable { private static final long serialVersionUID = 1L; @@ -31,63 +26,48 @@ private Long id; @ApiModelProperty(value = "编号", dataType = "String") - @ExcelProperty(value = "编号",order = 0) private String customerNo; @ApiModelProperty(value = "公司名称", dataType = "String") - @ExcelProperty(value = "公司名称",order = 1) private String customerName; @ApiModelProperty(value = "公司简称", dataType = "String") - @ExcelProperty(value = "公司简称",order = 2) private String briefName; @ApiModelProperty(value = "业务内容", dataType = "String") - @ExcelProperty(value = "业务内容",order = 3) private String businessContent; @ApiModelProperty(value = "税号", dataType = "String") - @ExcelProperty(value = "税号",order = 4) private String taxNumber; @ApiModelProperty(value = "银行账户名", dataType = "String") - @ExcelProperty(value = "银行账户名",order = 5) private String bankAccount; @ApiModelProperty(value = "银行名称", dataType = "String") - @ExcelProperty(value = "银行名称",order = 6) private String bankName; @ApiModelProperty(value = "银行账号", dataType = "String") - @ExcelProperty(value = "银行账号",order = 7) private String bankAccountNumber; @ApiModelProperty(value = "邮编", dataType = "String") - @ExcelProperty(value = "邮编",order = 8) private String postalCode; @ApiModelProperty(value = "负责人", dataType = "String") - @ExcelProperty(value = "负责人",order = 9) private String director; @ApiModelProperty(value = "电话", dataType = "String") - @ExcelProperty(value = "电话",order = 10) private String phone; @ApiModelProperty(value = "传真", dataType = "String") - @ExcelProperty(value = "电话",order = 11) private String fax; @ApiModelProperty(value = "手机", dataType = "String") - @ExcelProperty(value = "手机",order = 12) private String mobile; @ApiModelProperty(value = "邮箱", dataType = "String") - @ExcelProperty(value = "邮箱",order = 13) private String email; @ApiModelProperty(value = "网址", dataType = "String") - @ExcelProperty(value = "网址",order =14) private String website; @ApiModelProperty(value = "履约评级-字典", dataType = "String") @@ -130,7 +110,6 @@ private String addressArea; @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") - @ExcelProperty(value = "详细地址",order =15) private String fullAddress; @ApiModelProperty(value = "公司地址-国家名字", dataType = "String") @@ -173,7 +152,6 @@ private String invoiceAreaName; @ApiModelProperty(value = "业务范围", dataType = "String") - @ExcelProperty(value = "业务范围",order =16) private String businessScope; @ApiModelProperty(value = "minio存储文件名", dataType = "String") @@ -192,11 +170,9 @@ private Integer isDel; @ApiModelProperty(value = "创建时间", dataType = "String") - @ExcelProperty(value = "创建时间",order =17) private String createTime; @ApiModelProperty(value = "最后更新时间", dataType = "String") - @ExcelProperty(value = "最后更新时间",order =18) private String updateTime; @TableField(exist = false) diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java index 17fbf10..dfcc97b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java @@ -77,9 +77,6 @@ @ApiModelProperty(value = "检定周期(月)", dataType = "String") private String measurePeriod; - @ApiModelProperty(value = "检定方式-字典", dataType = "String") - private String measureType; - @ApiModelProperty(value = "有效期限", dataType = "String") private String validDeadline; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java index 5208fb4..ff9fd1c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java @@ -1,13 +1,5 @@ package com.casic.missiles.model.customer; -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import com.alibaba.excel.annotation.write.style.ColumnWidth; -import com.alibaba.excel.annotation.write.style.ContentRowHeight; -import com.alibaba.excel.annotation.write.style.ContentStyle; -import com.alibaba.excel.annotation.write.style.HeadRowHeight; -import com.alibaba.excel.enums.poi.BorderStyleEnum; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java index 94d46e1..ea245a5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java @@ -1,11 +1,35 @@ package com.casic.missiles.service.Impl.business; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessInterchangeMapper; +import com.casic.missiles.mapper.business.BusinessOrderSampleRelationMapper; import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrderSampleRelation; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.service.business.IBusinessInterchangeService; +import com.casic.missiles.service.customer.CustomerSampleService; +import com.casic.missiles.utils.NumberGeneratorUtil; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; + /** *

* 业务管理-设备交接单 服务实现类 @@ -15,6 +39,111 @@ * @since 2023-02-02 */ @Service +@AllArgsConstructor public class BusinessInterchangeServiceImpl extends ServiceImpl implements IBusinessInterchangeService { + private final IBaseExportService iBaseExportService; + private final CustomerSampleService customerSampleService; + private final BusinessOrderSampleRelationMapper sampleRelationMapper; + + //** 送检人查询条件不在设备交接单中,需要联查才可以实现 + @Override + public Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception { + List resultPage = this.baseMapper.selectInterchangeListPage(page, request); + page.setRecords(resultPage); + return page; + } + + @Override + public BusinessInterchange exchangeDetail(Long id) { + BusinessInterchange businessExchange = this.baseMapper.selectById(id); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("order_id", businessExchange.getOrderId()); + List orderSampleList = sampleRelationMapper.selectList(queryWrapper); + List customerSampleList = new ArrayList<>(); + for (BusinessOrderSampleRelation orderSample : orderSampleList) { + CustomerSampleInfo customerSampleInfo = customerSampleService.sampleDetail(orderSample.getSampleId()); + customerSampleInfo.setIsExistSample("1"); + customerSampleList.add(customerSampleInfo); + } + businessExchange.setCustomerSampleInfoList(customerSampleList); + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO deleteExchange(Long id) { + BusinessInterchange businessInterchange = this.baseMapper.selectById(id); + Integer deleteFlag = this.baseMapper.deleteById(id); + Boolean sampleUpdateFlag = sampleStatusDeletor(businessInterchange.getOrderId(), "1") > 0; + if (deleteFlag > 0 && sampleUpdateFlag) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO updateExchange(BusinessInterchange businessInterchange) { + Integer updateFlag = this.baseMapper.updateById(businessInterchange); + if (updateFlag > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO addExchange(BusinessInterchange businessInterchange) { + populationExchange(businessInterchange); + Integer addFlag = this.baseMapper.insert(businessInterchange); + Boolean sampleAddFlag = true; + for (CustomerSampleInfo sampleInfo : businessInterchange.getCustomerSampleInfoList()) { + sampleAddFlag = sampleAddFlag && sampleStatusCreator(businessInterchange.getOrderId(), sampleInfo.getId(), "2") > 0; + } + if (addFlag > 0 && sampleAddFlag) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public void exportExchange(InterchangeListRequest request, HttpServletResponse response) { + try { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + List resultPage = this.baseMapper.selectInterchangeListPage(page, request); + iBaseExportService.exportExcel(response, InterchangeListResponse.class, resultPage, ExportEnum.EXCHANGE_DATA.getSheetName()); + } catch (Exception e) { + log.error("样品导出出现异常,异常信息为{}", e); + } + } + + private void populationExchange(BusinessInterchange businessInterchange){ + Long maxNo = this.baseMapper.selectMaxExchangeNo(); + String orderNo = NumberGeneratorUtil.getContactNo("jjdh", maxNo); + AuthUser authUser = ShiroKit.getUser(); + businessInterchange.setCreateUser(authUser.getId()); + businessInterchange.setInterchangeCode(orderNo); + } + + private Integer sampleStatusCreator(Long orderId, Long sampleId, String status) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("order_id", orderId); + queryWrapper.eq(ObjectUtil.isEmpty(sampleId), "sample_id", sampleId); + BusinessOrderSampleRelation sampleStatusPopulation = new BusinessOrderSampleRelation(); + sampleStatusPopulation.setSampleStatus(status); + Integer sampleStatus = this.sampleRelationMapper.update(sampleStatusPopulation, queryWrapper); + return sampleStatus; + } + + private Integer sampleStatusDeletor(Long orderId, String status) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isEmpty(orderId), "order_id", orderId); + queryWrapper.eq("status", "2"); + BusinessOrderSampleRelation sampleStatusPopulation = new BusinessOrderSampleRelation(); + sampleStatusPopulation.setSampleStatus(status); + Integer sampleStatus = this.sampleRelationMapper.update(sampleStatusPopulation, queryWrapper); + return sampleStatus; + } + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 87ebeeb..9848a3b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -33,7 +33,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.stream.Collector; import java.util.stream.Collectors; /** @@ -133,7 +132,7 @@ ReturnDTO returnDTO = customerSampleService.addSample(sampleInfo); sampleAddFlag = sampleAddFlag && returnDTO.getCode() == 200; } - sampleAddFlag = sampleAddFlag && sampleStatusCreator(sampleInfo.getOrderId(), sampleInfo.getId(), "0") > 0; + sampleAddFlag = sampleAddFlag && sampleStatusCreator(sampleInfo.getOrderId(), sampleInfo.getId(), "1") > 0; } if (addFlag > 0 && sampleAddFlag) { return ReturnUtil.success(); @@ -191,7 +190,7 @@ queryWrapper.like(StringUtils.isNotBlank(request.getCustomerName()), "customer_name", request.getCustomerName()); queryWrapper.like(StringUtils.isNotBlank(request.getDeliverer()), "deliverer", request.getDeliverer()); queryWrapper.like(StringUtils.isNotBlank(request.getOrderCode()), "order_code", request.getOrderCode()); - queryWrapper.like(ObjectUtil.isNotEmpty(request.getIsUrgent()), "is_urgent", request.getIsUrgent()); + queryWrapper.like(ObjectUtil.isNotEmpty(request.getIsUrgent()) && request.getIsUrgent() != 0, "is_urgent", request.getIsUrgent()); queryWrapper.like(StringUtils.isNotBlank(request.getCustomerNo()), "customer_no", request.getCustomerNo()); queryWrapper.like(ObjectUtil.isNotEmpty(request.getStatus()) && request.getStatus() != 0, "status", request.getStatus()); queryWrapper.apply(StringUtils.isNotBlank(request.getStartTime()), @@ -214,6 +213,7 @@ sampleStatusPopulation.setOrderId(orderId); sampleStatusPopulation.setSampleId(sampleId); sampleStatusPopulation.setSampleStatus(status); + sampleStatusPopulation.setMeasureType("1"); Integer sampleStatus = this.sampleRelationMapper.insert(sampleStatusPopulation); return sampleStatus; } 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 new file mode 100644 index 0000000..66a414b --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -0,0 +1,87 @@ +package com.casic.missiles.service.Impl.business; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.SampleHandOutListResponse; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.business.BusinessOrderMapper; +import com.casic.missiles.mapper.business.BusinessOrderSampleRelationMapper; +import com.casic.missiles.model.business.BusinessLabExecutiveInfo; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.business.BusinessOrderSampleRelation; +import com.casic.missiles.service.business.IBusinessDispatchService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Service +@Slf4j +@AllArgsConstructor +public class IBusinessDispatchServiceImpl extends ServiceImpl implements IBusinessDispatchService { + + + //终止、回退、收入、归还、催办按钮 + @Override + public Page listPage(Page page, DeviceDispatchDTO request) { +// Page deviceDispatchVOPage=P +// //查询委托书和样品关联表中的各状态的样品 +// Page handOutList = orderSampleRelationMapper.selectSampleListByStatus(page, handOutListRequest); +// log.info("任务分发-当前查询样品状态为:{}", request.getSampleStatus()); +// List records = handOutList.getRecords(); +// if(CollectionUtils.isEmpty(records)){ +// return new Page<>(); +// } + return page; + } + + @Override + public void exportSampleDispatchList(DeviceDispatchDTO request, HttpServletResponse response) { + + } + + @Override + public ReturnDTO receiveDevice(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO backDevice(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO forcedTerminate(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO rushDoProcess(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java index eb0012d..dec41f1 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java @@ -53,8 +53,11 @@ QueryWrapper wrapper = listParamWrapper(request); Page customerSamplePage = customerSampleListResponseMapper.selectPage(page, wrapper); customerSamplePage.getRecords().stream() - .filter(customerSample -> !ObjectUtils.isEmpty(customerSample.getOrderId())) - .forEach(customerSample -> customerSample.setSampleSatus(this.getSampleStatusById(customerSample.getOrderId(), customerSample.getId()))); + .forEach(customerSample ->{ + BusinessOrderSampleRelation businessOrderSampleRelation=this.getSampleStatusById(customerSample.getId()); + customerSample.setOrderId(businessOrderSampleRelation.getOrderId()); + customerSample.setSampleSatus(businessOrderSampleRelation.getSampleStatus()); + }); for (CustomerSampleListResponse customerSampleListResponse : customerSamplePage.getRecords()) { if (!StringUtils.isEmpty(customerSampleListResponse.getSampleSatus())) { DictCodeUtils.convertDictCodeToName(customerSampleListResponse); @@ -92,7 +95,6 @@ @Override public CustomerSampleInfo sampleDetail(Long id) { CustomerSampleInfo customerSampleInfo = this.baseMapper.selectById(id); -// customerSampleInfo.setOrderId(orderBuilder(customerSampleInfo.getId())); return customerSampleInfo; } @@ -153,14 +155,13 @@ return certificateResponsePage; } - private String getSampleStatusById(Long orderId, Long sampleId) { + private BusinessOrderSampleRelation getSampleStatusById(Long sampleId) { QueryWrapper wrapper = new QueryWrapper() - .eq("order_id", orderId) - .eq("sample_id", sampleId); + .eq("sample_id", sampleId) + .orderByDesc("create_time"); List orderSampleList = sampleRelationMapper.selectList(wrapper); Optional orderSampleOptional = orderSampleList.stream().findFirst(); - return orderSampleOptional.isPresent() ? orderSampleOptional.get().getSampleStatus() : null; - + return orderSampleOptional.isPresent() ? orderSampleOptional.get(): null; } private void initSample(CustomerSampleInfo customerSampleInfo) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java index b82f087..6b05b67 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java @@ -18,6 +18,7 @@ import com.casic.missiles.mapper.customer.CustomerMapper; import com.casic.missiles.mapper.customer.CustomerUserMapper; import com.casic.missiles.mapper.customer.customize.CertificationResponseMapper; +import com.casic.missiles.mapper.customer.customize.CustomerInfoResponseMapper; import com.casic.missiles.mapper.customer.customize.SampleRecordsResponseMapper; import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.customer.CustomerUserInfo; @@ -42,12 +43,13 @@ private final CustomerUserMapper customerUserMapper; private final CertificationResponseMapper certificationMapper; private final IBaseExportService iBaseExportService; + private final CustomerInfoResponseMapper customerInfoResponseMapper; @Override - public Page listPage(Page page, CustomerListRequest request) throws Exception { - QueryWrapper wrapper = listParamWrapper(request); - Page resultPage = this.baseMapper.selectPage(page, wrapper); - for (CustomerInfo customerInfo : resultPage.getRecords()) { + public Page listPage(Page page, CustomerListRequest request) throws Exception { + QueryWrapper wrapper = listParamWrapper(request); + Page resultPage = customerInfoResponseMapper.selectPage(page, wrapper); + for (CustomerInfoResponse customerInfo : resultPage.getRecords()) { DictCodeUtils.convertDictCodeToName(customerInfo); } return resultPage; @@ -131,19 +133,19 @@ @Override public void customerExport(CustomerListRequest request, HttpServletResponse response) { try { - QueryWrapper wrapper = listParamWrapper(request); - List customerInfoList = this.baseMapper.selectList(wrapper); - for (CustomerInfo customerInfo : customerInfoList) { + QueryWrapper wrapper = listParamWrapper(request); + List customerInfoList =customerInfoResponseMapper.selectList(wrapper); + for (CustomerInfoResponse customerInfo : customerInfoList) { DictCodeUtils.convertDictCodeToName(customerInfo); } - iBaseExportService.exportExcel(response, CustomerInfo.class, customerInfoList, ExportEnum.CUSTOMER_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, CustomerInfoResponse.class, customerInfoList, ExportEnum.CUSTOMER_EXPORT.getSheetName()); } catch (Exception e) { log.error("客户导出出现异常,异常信息为{}", e); } } - private QueryWrapper listParamWrapper(CustomerListRequest request) { - QueryWrapper queryWrapper = new QueryWrapper<>(); + private QueryWrapper listParamWrapper(CustomerListRequest request) { + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(StringUtils.isNotBlank(request.getCustomerNo()), "customer_no", request.getCustomerNo()); queryWrapper.like(StringUtils.isNotBlank(request.getCustomerName()), "customer_name", request.getCustomerName()); queryWrapper.like(StringUtils.isNotBlank(request.getBussinessSize()), "bussiness_size", request.getBussinessSize()); 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 new file mode 100644 index 0000000..6ae3aa2 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.service.business; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; + +import javax.servlet.http.HttpServletResponse; + +public interface IBusinessDispatchService { + + Page listPage(Page page, DeviceDispatchDTO request); + + void exportSampleDispatchList(DeviceDispatchDTO request, HttpServletResponse response); + + ReturnDTO receiveDevice(Long id); + + ReturnDTO backDevice(Long id); + + ReturnDTO forcedTerminate(Long id); + + ReturnDTO rushDoProcess(Long 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer sampleStatus; } 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 new file mode 100644 index 0000000..135b82c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceDispatchDTO { + + @ApiModelProperty(value = "样品编号", dataType = "String") + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + private String sampleName; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + private String orderNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerNo; + + @ApiModelProperty(value = "是否加急", dataType = "String") + private String isUrgent; + + @ApiModelProperty(value = "样品所属", dataType = "String") + private String sampleBelong; + + @ApiModelProperty(value = "样品状态", dataType = "String") + private String sampleStatus; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java new file mode 100644 index 0000000..e53d8c4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto.business.dispatch; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DeviceDispatchVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "样品编号", dataType = "String") + @ExcelProperty(value = "样品编号",order = 0) + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + @ExcelProperty(value = "样品名称",order = 1) + private String sampleName; + + @ApiModelProperty(value = "型号", dataType = "String") + @ExcelProperty(value = "型号",order = 2) + private String sampleModel; + + @ApiModelProperty(value = "出厂编号", dataType = "String") + @ExcelProperty(value = "出厂编号",order = 3) + private String manufacturingNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 4) + private String customerNo; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + @ExcelProperty(value = "委托书编号",order = 5) + private String orderCode; + + @ApiModelProperty(value = "委托书名称", dataType = "String") + @ExcelProperty(value = "委托书名称",order = 6) + private String customerName; + + @ApiModelProperty(value = "计划送达时间", dataType = "String") + @ExcelProperty(value = "计划送达时间",order = 7) + private String planDeliverTime; + + //数据库暂时没有字段 + @ApiModelProperty(value = "实际送达时间", dataType = "String") + @ExcelProperty(value = "实际送达时间",order = 8) + private String realDeliverTime; + + @ApiModelProperty(value = "样品所属", dataType = "String") + @ExcelProperty(value = "样品所属",order = 8) + private String sampleBelong; + + @ApiModelProperty(value = "当前检定环节", dataType = "String") + @ExcelProperty(value = "当前检定环节",order = 9) + private String measureNode; + + @ApiModelProperty(value = "已出具证书", dataType = "Integer") + @ExcelProperty(value = "已出具证书", order = 12) + private Integer alreadyCertifications; + + @ApiModelProperty(value = "应出具证书", dataType = "Integer") + @ExcelProperty(value = "应出具证书", order = 13) + private Integer requireCertifications; + // 终止、回退、收入、归还、催办按钮 + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java new file mode 100644 index 0000000..37cb067 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class InterchangeListRequest { + + @ApiModelProperty(value = "交接单编号", dataType = "String") + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + private String customerName; + + @ApiModelProperty(value = "交接人", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + private String deliverTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java new file mode 100644 index 0000000..5ecdc6f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java @@ -0,0 +1,54 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +@TableName +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class InterchangeListResponse { + + private Long id; + + @ApiModelProperty(value = "交接单编号", dataType = "String") + @ExcelProperty(value = "交接单编号",order = 0) + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 1) + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + @ExcelProperty(value = "委托方名称",order = 2) + private String customerName; + + @ApiModelProperty(value = "接收人", dataType = "String") + @ExcelProperty(value = "接收人",order = 3) + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + @ExcelProperty(value = "送检人",order = 4) + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + @ExcelProperty(value = "交接时间",order = 5) + private String deliverTime; + + @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注",order = 6) + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java index 7fdc869..ba919d3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java @@ -25,7 +25,7 @@ @ExcelIgnoreUnannotated public class OrderListReponse { - private final Long id; + private final Long id; @ApiModelProperty(value = "委托书编号", dataType = "String") @ExcelProperty(value = "委托书编号",order = 0) private String orderCode; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java new file mode 100644 index 0000000..a6930fd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java @@ -0,0 +1,136 @@ +package com.casic.missiles.dto.customer.Info; + + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("customer_info") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class CustomerInfoResponse implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "编号", dataType = "String") + @ExcelProperty(value = "编号",order = 0) + private String customerNo; + + @ApiModelProperty(value = "公司名称", dataType = "String") + @ExcelProperty(value = "公司名称",order = 1) + private String customerName; + + @ApiModelProperty(value = "公司简称", dataType = "String") + @ExcelProperty(value = "公司简称",order = 2) + private String briefName; + + @ApiModelProperty(value = "业务内容", dataType = "String") + @ExcelProperty(value = "业务内容",order = 3) + private String businessContent; + + @ApiModelProperty(value = "税号", dataType = "String") + @ExcelProperty(value = "税号",order = 4) + private String taxNumber; + + @ApiModelProperty(value = "银行账户名", dataType = "String") + @ExcelProperty(value = "银行账户名",order = 5) + private String bankAccount; + + @ApiModelProperty(value = "银行名称", dataType = "String") + @ExcelProperty(value = "银行名称",order = 6) + private String bankName; + + @ApiModelProperty(value = "银行账号", dataType = "String") + @ExcelProperty(value = "银行账号",order = 7) + private String bankAccountNumber; + + @ApiModelProperty(value = "邮编", dataType = "String") + @ExcelProperty(value = "邮编",order = 8) + private String postalCode; + + @ApiModelProperty(value = "负责人", dataType = "String") + @ExcelProperty(value = "负责人",order = 9) + private String director; + + @ApiModelProperty(value = "电话", dataType = "String") + @ExcelProperty(value = "电话",order = 10) + private String phone; + + @ApiModelProperty(value = "传真", dataType = "String") + @ExcelProperty(value = "电话",order = 11) + private String fax; + + @ApiModelProperty(value = "手机", dataType = "String") + @ExcelProperty(value = "手机",order = 12) + private String mobile; + + @ApiModelProperty(value = "邮箱", dataType = "String") + @ExcelProperty(value = "邮箱",order = 13) + private String email; + + @ApiModelProperty(value = "网址", dataType = "String") + @ExcelProperty(value = "网址",order =14) + private String website; + + @ApiModelProperty(value = "履约评级-字典", dataType = "String") + private String grade; + + @ApiModelProperty(value = "公司规模", dataType = "String") + @DictCodeField(message = "公司规模描述不合法", cacheName = MeterDictCode.COMPANY_SCALE) + private String companySize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模", dataType = "String") + private String companySizeName; + + @ApiModelProperty(value = "业务规模-字典", dataType = "String") + @DictCodeField(message = "业务规模描述不合法", cacheName = MeterDictCode.BUSINESS_SCALE) + private String businessSize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模名称", dataType = "String") + private String businessSizeName; + + @ApiModelProperty(value = "整体评价", dataType = "String") + @DictCodeField(message = "公司整体评价不合法", cacheName = MeterDictCode.EVALUATION) + private String evaluation; + + @TableField(exist = false) + @ApiModelProperty(value = "整体评价", dataType = "String") + private String evaluationName; + + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @ExcelProperty(value = "详细地址",order =15) + private String fullAddress; + + @ApiModelProperty(value = "业务范围", dataType = "String") + @ExcelProperty(value = "业务范围",order =16) + private String businessScope; + + @ApiModelProperty(value = "创建时间", dataType = "String") + @ExcelProperty(value = "创建时间",order =17) + private String createTime; + + @ApiModelProperty(value = "最后更新时间", dataType = "String") + @ExcelProperty(value = "最后更新时间",order =18) + private String updateTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java index 0341f20..6c7e8b3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "样品超期状态", dataType = "String") + @ApiModelProperty(value = "样品超期状态(1/0)", dataType = "String") private String overtimeStatus; @ApiModelProperty(value = "检定开始时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java index 285c3ab..a7ededa 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方代码", dataType = "String") @ExcelProperty(value = "委托方代码", order = 4) - private String customerId; + private String customerNo; @TableField(exist = false) @ApiModelProperty(value = "样品状态", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java index f62ce7f..f751625 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java @@ -3,9 +3,11 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.model.customer.CustomerSampleInfo; import lombok.Data; import java.io.Serializable; +import java.util.List; /** *

@@ -150,5 +152,6 @@ @TableField("update_time") private String updateTime; - -} + @TableField(exist = false) + private List customerSampleInfoList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java index 5a3d50f..455340b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java @@ -54,6 +54,17 @@ @TableField("measure_content") private String measureContent; + //检定方式 + @TableField("measure_type") + private String measureType; + + /** + * 样品检测设备实际到达时间 + */ + @TableField("real_deliver_time") + private String realDeliverTime; + + @TableField("create_time") private String createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java index 068bf49..a482c09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java @@ -19,11 +19,6 @@ @Data @TableName("customer_info") -@ColumnWidth(30) -@HeadRowHeight(15) -@ContentRowHeight(20) -@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) -@ExcelIgnoreUnannotated public class CustomerInfo implements Serializable { private static final long serialVersionUID = 1L; @@ -31,63 +26,48 @@ private Long id; @ApiModelProperty(value = "编号", dataType = "String") - @ExcelProperty(value = "编号",order = 0) private String customerNo; @ApiModelProperty(value = "公司名称", dataType = "String") - @ExcelProperty(value = "公司名称",order = 1) private String customerName; @ApiModelProperty(value = "公司简称", dataType = "String") - @ExcelProperty(value = "公司简称",order = 2) private String briefName; @ApiModelProperty(value = "业务内容", dataType = "String") - @ExcelProperty(value = "业务内容",order = 3) private String businessContent; @ApiModelProperty(value = "税号", dataType = "String") - @ExcelProperty(value = "税号",order = 4) private String taxNumber; @ApiModelProperty(value = "银行账户名", dataType = "String") - @ExcelProperty(value = "银行账户名",order = 5) private String bankAccount; @ApiModelProperty(value = "银行名称", dataType = "String") - @ExcelProperty(value = "银行名称",order = 6) private String bankName; @ApiModelProperty(value = "银行账号", dataType = "String") - @ExcelProperty(value = "银行账号",order = 7) private String bankAccountNumber; @ApiModelProperty(value = "邮编", dataType = "String") - @ExcelProperty(value = "邮编",order = 8) private String postalCode; @ApiModelProperty(value = "负责人", dataType = "String") - @ExcelProperty(value = "负责人",order = 9) private String director; @ApiModelProperty(value = "电话", dataType = "String") - @ExcelProperty(value = "电话",order = 10) private String phone; @ApiModelProperty(value = "传真", dataType = "String") - @ExcelProperty(value = "电话",order = 11) private String fax; @ApiModelProperty(value = "手机", dataType = "String") - @ExcelProperty(value = "手机",order = 12) private String mobile; @ApiModelProperty(value = "邮箱", dataType = "String") - @ExcelProperty(value = "邮箱",order = 13) private String email; @ApiModelProperty(value = "网址", dataType = "String") - @ExcelProperty(value = "网址",order =14) private String website; @ApiModelProperty(value = "履约评级-字典", dataType = "String") @@ -130,7 +110,6 @@ private String addressArea; @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") - @ExcelProperty(value = "详细地址",order =15) private String fullAddress; @ApiModelProperty(value = "公司地址-国家名字", dataType = "String") @@ -173,7 +152,6 @@ private String invoiceAreaName; @ApiModelProperty(value = "业务范围", dataType = "String") - @ExcelProperty(value = "业务范围",order =16) private String businessScope; @ApiModelProperty(value = "minio存储文件名", dataType = "String") @@ -192,11 +170,9 @@ private Integer isDel; @ApiModelProperty(value = "创建时间", dataType = "String") - @ExcelProperty(value = "创建时间",order =17) private String createTime; @ApiModelProperty(value = "最后更新时间", dataType = "String") - @ExcelProperty(value = "最后更新时间",order =18) private String updateTime; @TableField(exist = false) diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java index 17fbf10..dfcc97b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java @@ -77,9 +77,6 @@ @ApiModelProperty(value = "检定周期(月)", dataType = "String") private String measurePeriod; - @ApiModelProperty(value = "检定方式-字典", dataType = "String") - private String measureType; - @ApiModelProperty(value = "有效期限", dataType = "String") private String validDeadline; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java index 5208fb4..ff9fd1c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java @@ -1,13 +1,5 @@ package com.casic.missiles.model.customer; -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import com.alibaba.excel.annotation.write.style.ColumnWidth; -import com.alibaba.excel.annotation.write.style.ContentRowHeight; -import com.alibaba.excel.annotation.write.style.ContentStyle; -import com.alibaba.excel.annotation.write.style.HeadRowHeight; -import com.alibaba.excel.enums.poi.BorderStyleEnum; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java index 94d46e1..ea245a5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java @@ -1,11 +1,35 @@ package com.casic.missiles.service.Impl.business; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessInterchangeMapper; +import com.casic.missiles.mapper.business.BusinessOrderSampleRelationMapper; import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrderSampleRelation; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.service.business.IBusinessInterchangeService; +import com.casic.missiles.service.customer.CustomerSampleService; +import com.casic.missiles.utils.NumberGeneratorUtil; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; + /** *

* 业务管理-设备交接单 服务实现类 @@ -15,6 +39,111 @@ * @since 2023-02-02 */ @Service +@AllArgsConstructor public class BusinessInterchangeServiceImpl extends ServiceImpl implements IBusinessInterchangeService { + private final IBaseExportService iBaseExportService; + private final CustomerSampleService customerSampleService; + private final BusinessOrderSampleRelationMapper sampleRelationMapper; + + //** 送检人查询条件不在设备交接单中,需要联查才可以实现 + @Override + public Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception { + List resultPage = this.baseMapper.selectInterchangeListPage(page, request); + page.setRecords(resultPage); + return page; + } + + @Override + public BusinessInterchange exchangeDetail(Long id) { + BusinessInterchange businessExchange = this.baseMapper.selectById(id); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("order_id", businessExchange.getOrderId()); + List orderSampleList = sampleRelationMapper.selectList(queryWrapper); + List customerSampleList = new ArrayList<>(); + for (BusinessOrderSampleRelation orderSample : orderSampleList) { + CustomerSampleInfo customerSampleInfo = customerSampleService.sampleDetail(orderSample.getSampleId()); + customerSampleInfo.setIsExistSample("1"); + customerSampleList.add(customerSampleInfo); + } + businessExchange.setCustomerSampleInfoList(customerSampleList); + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO deleteExchange(Long id) { + BusinessInterchange businessInterchange = this.baseMapper.selectById(id); + Integer deleteFlag = this.baseMapper.deleteById(id); + Boolean sampleUpdateFlag = sampleStatusDeletor(businessInterchange.getOrderId(), "1") > 0; + if (deleteFlag > 0 && sampleUpdateFlag) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO updateExchange(BusinessInterchange businessInterchange) { + Integer updateFlag = this.baseMapper.updateById(businessInterchange); + if (updateFlag > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO addExchange(BusinessInterchange businessInterchange) { + populationExchange(businessInterchange); + Integer addFlag = this.baseMapper.insert(businessInterchange); + Boolean sampleAddFlag = true; + for (CustomerSampleInfo sampleInfo : businessInterchange.getCustomerSampleInfoList()) { + sampleAddFlag = sampleAddFlag && sampleStatusCreator(businessInterchange.getOrderId(), sampleInfo.getId(), "2") > 0; + } + if (addFlag > 0 && sampleAddFlag) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public void exportExchange(InterchangeListRequest request, HttpServletResponse response) { + try { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + List resultPage = this.baseMapper.selectInterchangeListPage(page, request); + iBaseExportService.exportExcel(response, InterchangeListResponse.class, resultPage, ExportEnum.EXCHANGE_DATA.getSheetName()); + } catch (Exception e) { + log.error("样品导出出现异常,异常信息为{}", e); + } + } + + private void populationExchange(BusinessInterchange businessInterchange){ + Long maxNo = this.baseMapper.selectMaxExchangeNo(); + String orderNo = NumberGeneratorUtil.getContactNo("jjdh", maxNo); + AuthUser authUser = ShiroKit.getUser(); + businessInterchange.setCreateUser(authUser.getId()); + businessInterchange.setInterchangeCode(orderNo); + } + + private Integer sampleStatusCreator(Long orderId, Long sampleId, String status) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("order_id", orderId); + queryWrapper.eq(ObjectUtil.isEmpty(sampleId), "sample_id", sampleId); + BusinessOrderSampleRelation sampleStatusPopulation = new BusinessOrderSampleRelation(); + sampleStatusPopulation.setSampleStatus(status); + Integer sampleStatus = this.sampleRelationMapper.update(sampleStatusPopulation, queryWrapper); + return sampleStatus; + } + + private Integer sampleStatusDeletor(Long orderId, String status) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isEmpty(orderId), "order_id", orderId); + queryWrapper.eq("status", "2"); + BusinessOrderSampleRelation sampleStatusPopulation = new BusinessOrderSampleRelation(); + sampleStatusPopulation.setSampleStatus(status); + Integer sampleStatus = this.sampleRelationMapper.update(sampleStatusPopulation, queryWrapper); + return sampleStatus; + } + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 87ebeeb..9848a3b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -33,7 +33,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.stream.Collector; import java.util.stream.Collectors; /** @@ -133,7 +132,7 @@ ReturnDTO returnDTO = customerSampleService.addSample(sampleInfo); sampleAddFlag = sampleAddFlag && returnDTO.getCode() == 200; } - sampleAddFlag = sampleAddFlag && sampleStatusCreator(sampleInfo.getOrderId(), sampleInfo.getId(), "0") > 0; + sampleAddFlag = sampleAddFlag && sampleStatusCreator(sampleInfo.getOrderId(), sampleInfo.getId(), "1") > 0; } if (addFlag > 0 && sampleAddFlag) { return ReturnUtil.success(); @@ -191,7 +190,7 @@ queryWrapper.like(StringUtils.isNotBlank(request.getCustomerName()), "customer_name", request.getCustomerName()); queryWrapper.like(StringUtils.isNotBlank(request.getDeliverer()), "deliverer", request.getDeliverer()); queryWrapper.like(StringUtils.isNotBlank(request.getOrderCode()), "order_code", request.getOrderCode()); - queryWrapper.like(ObjectUtil.isNotEmpty(request.getIsUrgent()), "is_urgent", request.getIsUrgent()); + queryWrapper.like(ObjectUtil.isNotEmpty(request.getIsUrgent()) && request.getIsUrgent() != 0, "is_urgent", request.getIsUrgent()); queryWrapper.like(StringUtils.isNotBlank(request.getCustomerNo()), "customer_no", request.getCustomerNo()); queryWrapper.like(ObjectUtil.isNotEmpty(request.getStatus()) && request.getStatus() != 0, "status", request.getStatus()); queryWrapper.apply(StringUtils.isNotBlank(request.getStartTime()), @@ -214,6 +213,7 @@ sampleStatusPopulation.setOrderId(orderId); sampleStatusPopulation.setSampleId(sampleId); sampleStatusPopulation.setSampleStatus(status); + sampleStatusPopulation.setMeasureType("1"); Integer sampleStatus = this.sampleRelationMapper.insert(sampleStatusPopulation); return sampleStatus; } 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 new file mode 100644 index 0000000..66a414b --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -0,0 +1,87 @@ +package com.casic.missiles.service.Impl.business; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.SampleHandOutListResponse; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.business.BusinessOrderMapper; +import com.casic.missiles.mapper.business.BusinessOrderSampleRelationMapper; +import com.casic.missiles.model.business.BusinessLabExecutiveInfo; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.business.BusinessOrderSampleRelation; +import com.casic.missiles.service.business.IBusinessDispatchService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Service +@Slf4j +@AllArgsConstructor +public class IBusinessDispatchServiceImpl extends ServiceImpl implements IBusinessDispatchService { + + + //终止、回退、收入、归还、催办按钮 + @Override + public Page listPage(Page page, DeviceDispatchDTO request) { +// Page deviceDispatchVOPage=P +// //查询委托书和样品关联表中的各状态的样品 +// Page handOutList = orderSampleRelationMapper.selectSampleListByStatus(page, handOutListRequest); +// log.info("任务分发-当前查询样品状态为:{}", request.getSampleStatus()); +// List records = handOutList.getRecords(); +// if(CollectionUtils.isEmpty(records)){ +// return new Page<>(); +// } + return page; + } + + @Override + public void exportSampleDispatchList(DeviceDispatchDTO request, HttpServletResponse response) { + + } + + @Override + public ReturnDTO receiveDevice(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO backDevice(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO forcedTerminate(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO rushDoProcess(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java index eb0012d..dec41f1 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java @@ -53,8 +53,11 @@ QueryWrapper wrapper = listParamWrapper(request); Page customerSamplePage = customerSampleListResponseMapper.selectPage(page, wrapper); customerSamplePage.getRecords().stream() - .filter(customerSample -> !ObjectUtils.isEmpty(customerSample.getOrderId())) - .forEach(customerSample -> customerSample.setSampleSatus(this.getSampleStatusById(customerSample.getOrderId(), customerSample.getId()))); + .forEach(customerSample ->{ + BusinessOrderSampleRelation businessOrderSampleRelation=this.getSampleStatusById(customerSample.getId()); + customerSample.setOrderId(businessOrderSampleRelation.getOrderId()); + customerSample.setSampleSatus(businessOrderSampleRelation.getSampleStatus()); + }); for (CustomerSampleListResponse customerSampleListResponse : customerSamplePage.getRecords()) { if (!StringUtils.isEmpty(customerSampleListResponse.getSampleSatus())) { DictCodeUtils.convertDictCodeToName(customerSampleListResponse); @@ -92,7 +95,6 @@ @Override public CustomerSampleInfo sampleDetail(Long id) { CustomerSampleInfo customerSampleInfo = this.baseMapper.selectById(id); -// customerSampleInfo.setOrderId(orderBuilder(customerSampleInfo.getId())); return customerSampleInfo; } @@ -153,14 +155,13 @@ return certificateResponsePage; } - private String getSampleStatusById(Long orderId, Long sampleId) { + private BusinessOrderSampleRelation getSampleStatusById(Long sampleId) { QueryWrapper wrapper = new QueryWrapper() - .eq("order_id", orderId) - .eq("sample_id", sampleId); + .eq("sample_id", sampleId) + .orderByDesc("create_time"); List orderSampleList = sampleRelationMapper.selectList(wrapper); Optional orderSampleOptional = orderSampleList.stream().findFirst(); - return orderSampleOptional.isPresent() ? orderSampleOptional.get().getSampleStatus() : null; - + return orderSampleOptional.isPresent() ? orderSampleOptional.get(): null; } private void initSample(CustomerSampleInfo customerSampleInfo) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java index b82f087..6b05b67 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java @@ -18,6 +18,7 @@ import com.casic.missiles.mapper.customer.CustomerMapper; import com.casic.missiles.mapper.customer.CustomerUserMapper; import com.casic.missiles.mapper.customer.customize.CertificationResponseMapper; +import com.casic.missiles.mapper.customer.customize.CustomerInfoResponseMapper; import com.casic.missiles.mapper.customer.customize.SampleRecordsResponseMapper; import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.customer.CustomerUserInfo; @@ -42,12 +43,13 @@ private final CustomerUserMapper customerUserMapper; private final CertificationResponseMapper certificationMapper; private final IBaseExportService iBaseExportService; + private final CustomerInfoResponseMapper customerInfoResponseMapper; @Override - public Page listPage(Page page, CustomerListRequest request) throws Exception { - QueryWrapper wrapper = listParamWrapper(request); - Page resultPage = this.baseMapper.selectPage(page, wrapper); - for (CustomerInfo customerInfo : resultPage.getRecords()) { + public Page listPage(Page page, CustomerListRequest request) throws Exception { + QueryWrapper wrapper = listParamWrapper(request); + Page resultPage = customerInfoResponseMapper.selectPage(page, wrapper); + for (CustomerInfoResponse customerInfo : resultPage.getRecords()) { DictCodeUtils.convertDictCodeToName(customerInfo); } return resultPage; @@ -131,19 +133,19 @@ @Override public void customerExport(CustomerListRequest request, HttpServletResponse response) { try { - QueryWrapper wrapper = listParamWrapper(request); - List customerInfoList = this.baseMapper.selectList(wrapper); - for (CustomerInfo customerInfo : customerInfoList) { + QueryWrapper wrapper = listParamWrapper(request); + List customerInfoList =customerInfoResponseMapper.selectList(wrapper); + for (CustomerInfoResponse customerInfo : customerInfoList) { DictCodeUtils.convertDictCodeToName(customerInfo); } - iBaseExportService.exportExcel(response, CustomerInfo.class, customerInfoList, ExportEnum.CUSTOMER_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, CustomerInfoResponse.class, customerInfoList, ExportEnum.CUSTOMER_EXPORT.getSheetName()); } catch (Exception e) { log.error("客户导出出现异常,异常信息为{}", e); } } - private QueryWrapper listParamWrapper(CustomerListRequest request) { - QueryWrapper queryWrapper = new QueryWrapper<>(); + private QueryWrapper listParamWrapper(CustomerListRequest request) { + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(StringUtils.isNotBlank(request.getCustomerNo()), "customer_no", request.getCustomerNo()); queryWrapper.like(StringUtils.isNotBlank(request.getCustomerName()), "customer_name", request.getCustomerName()); queryWrapper.like(StringUtils.isNotBlank(request.getBussinessSize()), "bussiness_size", request.getBussinessSize()); 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 new file mode 100644 index 0000000..6ae3aa2 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.service.business; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; + +import javax.servlet.http.HttpServletResponse; + +public interface IBusinessDispatchService { + + Page listPage(Page page, DeviceDispatchDTO request); + + void exportSampleDispatchList(DeviceDispatchDTO request, HttpServletResponse response); + + ReturnDTO receiveDevice(Long id); + + ReturnDTO backDevice(Long id); + + ReturnDTO forcedTerminate(Long id); + + ReturnDTO rushDoProcess(Long id); +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessInterchangeService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessInterchangeService.java index 16a5b94..884fda5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessInterchangeService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessInterchangeService.java @@ -1,8 +1,15 @@ package com.casic.missiles.service.business; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + /** *

* 业务管理-设备交接单 服务类 @@ -13,4 +20,16 @@ */ public interface IBusinessInterchangeService extends IService { + Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception; + + BusinessInterchange exchangeDetail(Long id); + + ReturnDTO deleteExchange(Long id); + + ReturnDTO updateExchange(BusinessInterchange businessInterchange); + + ReturnDTO addExchange(BusinessInterchange businessInterchange); + + void exportExchange(InterchangeListRequest request, HttpServletResponse response); + } 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 new file mode 100644 index 0000000..a7cc37b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessDispatchController.java @@ -0,0 +1,93 @@ +package com.casic.missiles.controller.business; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.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.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + +@RestController +@Api(tags = "设备收发模块") +@RequestMapping("/device/dispatch") +@AllArgsConstructor +public class BusinessDispatchController extends ExportController { + + private IBusinessDispatchService bizDispatchService; + + @ApiOperation("设备列表-分页(终止、回退、收入、归还、催办按钮)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid DeviceDispatchDTO request, BindingResult bindingResult) throws Exception { + if (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))); + } + + @ApiOperation("样品导出") + @PostMapping("/export") + public void exportSampleDispatchList(@RequestBody @Valid DeviceDispatchDTO request, HttpServletResponse response){ + bizDispatchService.exportSampleDispatchList(request, response); + } + + @ApiOperation("设备收入(只有已收入的设备可以进行终止操作)") + @PostMapping("/receive") + public ReturnDTO receiveDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.receiveDevice(idDTO.getId())); + } + + @ApiOperation("设备回退(只有已收入、待归还、已归可执行回退)") + @PostMapping("/back") + public ReturnDTO backDevice(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.backDevice(idDTO.getId())); + } + + @ApiOperation("设备终止(只有已收入的设备可以进行终止操作)") + @PostMapping("/terminate") + public ReturnDTO forcedTerminate(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.forcedTerminate(idDTO.getId())); + } + + + @ApiOperation("催办") + @PostMapping("/rushDoProcess") + public ReturnDTO rushDoProcess(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizDispatchService.rushDoProcess(idDTO.getId())); + } + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java index 4724028..1fee737 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessInterchangeController.java @@ -1,8 +1,34 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessInterchangeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.Objects; + /** *

* 业务管理-设备交接单 前端控制器 @@ -12,7 +38,67 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "设备交接单模块") @RequestMapping("/business/interchange") -public class BusinessInterchangeController { +@AllArgsConstructor +public class BusinessInterchangeController extends ExportController { + + private final IBusinessInterchangeService bizExchangeService; + + @ApiOperation("设备交接单查询") + @PostMapping("/listPage") + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(bizExchangeService.exchangeListPage(page, request))); + } + + @ApiOperation("设备交接单详情") + @PostMapping("/detail") + public ReturnDTO exchangeDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); + } + + @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @PostMapping("/update") + public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.updateExchange(businessInterchange)); + } + + @ApiOperation("设备交接单新增") + @PostMapping("/add") + public ReturnDTO addExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { + Assert.isFalse(bindingResult.hasErrors(), () -> { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + }); + return ReturnUtil.success(bizExchangeService.addExchange(businessInterchange)); + } + + @ApiOperation("设备交接单删除") + @PostMapping("/delete") + public ReturnDTO deleteExchange(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(bizExchangeService.deleteExchange(idDTO.getId())); + } + + //*******************************************************************************************************************// + @ApiOperation("设备交接单导出") + @PostMapping("/export") + public void exportExchange(@RequestBody @Valid InterchangeListRequest request, HttpServletResponse response) { + bizExchangeService.exportExchange(request, response); + } } 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 04538a3..9d26497 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 @@ -15,6 +15,7 @@ import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOrderService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.BindingResult; @@ -36,6 +37,7 @@ * @since 2023-02-02 */ @RestController +@Api(tags = "委托书模块") @RequestMapping("/business/order") @AllArgsConstructor public class BusinessOrderController extends ExportController { diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java index cbcef48..7d5e4a0 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/customer/CustomerController.java @@ -39,11 +39,11 @@ @ApiOperation("客户基本信息列表") @PostMapping("/listPage") - public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> listPage(@RequestBody @Valid CustomerListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - Page page = PageFactory.defaultPage(); + Page page = PageFactory.defaultPage(); return ReturnUtil.success(super.packForBT(customerService.listPage(page, request))); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index 47b5dd7..a8da172 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -31,6 +31,7 @@ CUSTOMER_EXPORT("customerData", "customerData", "客户信息"), ORDER_EXPORT("orderData", "orderData", "委托书信息"), SAMPLE_EXPORT("sampleData", "sampleData", "样本信息"), + EXCHANGE_DATA("exchangeData", "exchangeData", "设备交接单"), ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java index 46d3a54..5ab214c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessInterchangeMapper.java @@ -1,7 +1,14 @@ package com.casic.missiles.mapper.business; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +20,9 @@ */ public interface BusinessInterchangeMapper extends BaseMapper { + List selectInterchangeListPage(@Param("page") Page page, @Param("request") InterchangeListRequest request); + + Long selectMaxExchangeNo(); + + } 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 953e661..4eb24af 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 @@ -20,5 +20,7 @@ Page selectSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + Page getSampleListByStatus(Page page, @Param("request") SampleHandOutListRequest request); + SampleHandOutDetailResponse selectSampleDetailById(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java new file mode 100644 index 0000000..4ae0b7d --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/customer/customize/CustomerInfoResponseMapper.java @@ -0,0 +1,7 @@ +package com.casic.missiles.mapper.customer.customize; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.customer.Info.CustomerInfoResponse; + +public interface CustomerInfoResponseMapper extends BaseMapper { +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml index 4d64b57..0a411d2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -4,30 +4,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -35,4 +35,48 @@ id, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time + + + + + + 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 0be05a5..05914b4 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -69,6 +69,48 @@ + + + diff --git a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml index 4f7e524..e9ffe5e 100644 --- a/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/customer/CustomerWorkbenchMapper.xml @@ -15,14 +15,19 @@ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java index 6cf5efc..c6a12da 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java @@ -22,6 +22,7 @@ @ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) @ExcelIgnoreUnannotated public class SampleHandOutListResponse { + @ApiModelProperty(value = "样品id", dataType = "Long") private Long sampleId; @@ -92,6 +93,7 @@ @JsonIgnore private Long orderId; + @JsonIgnore private Integer sampleStatus; } 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 new file mode 100644 index 0000000..135b82c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.dispatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceDispatchDTO { + + @ApiModelProperty(value = "样品编号", dataType = "String") + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + private String sampleName; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + private String orderNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerNo; + + @ApiModelProperty(value = "是否加急", dataType = "String") + private String isUrgent; + + @ApiModelProperty(value = "样品所属", dataType = "String") + private String sampleBelong; + + @ApiModelProperty(value = "样品状态", dataType = "String") + private String sampleStatus; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java new file mode 100644 index 0000000..e53d8c4 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto.business.dispatch; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DeviceDispatchVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "样品编号", dataType = "String") + @ExcelProperty(value = "样品编号",order = 0) + private String sampleNo; + + @ApiModelProperty(value = "样品名称", dataType = "String") + @ExcelProperty(value = "样品名称",order = 1) + private String sampleName; + + @ApiModelProperty(value = "型号", dataType = "String") + @ExcelProperty(value = "型号",order = 2) + private String sampleModel; + + @ApiModelProperty(value = "出厂编号", dataType = "String") + @ExcelProperty(value = "出厂编号",order = 3) + private String manufacturingNo; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 4) + private String customerNo; + + @ApiModelProperty(value = "委托书编号", dataType = "String") + @ExcelProperty(value = "委托书编号",order = 5) + private String orderCode; + + @ApiModelProperty(value = "委托书名称", dataType = "String") + @ExcelProperty(value = "委托书名称",order = 6) + private String customerName; + + @ApiModelProperty(value = "计划送达时间", dataType = "String") + @ExcelProperty(value = "计划送达时间",order = 7) + private String planDeliverTime; + + //数据库暂时没有字段 + @ApiModelProperty(value = "实际送达时间", dataType = "String") + @ExcelProperty(value = "实际送达时间",order = 8) + private String realDeliverTime; + + @ApiModelProperty(value = "样品所属", dataType = "String") + @ExcelProperty(value = "样品所属",order = 8) + private String sampleBelong; + + @ApiModelProperty(value = "当前检定环节", dataType = "String") + @ExcelProperty(value = "当前检定环节",order = 9) + private String measureNode; + + @ApiModelProperty(value = "已出具证书", dataType = "Integer") + @ExcelProperty(value = "已出具证书", order = 12) + private Integer alreadyCertifications; + + @ApiModelProperty(value = "应出具证书", dataType = "Integer") + @ExcelProperty(value = "应出具证书", order = 13) + private Integer requireCertifications; + // 终止、回退、收入、归还、催办按钮 + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java new file mode 100644 index 0000000..37cb067 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListRequest.java @@ -0,0 +1,30 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +public class InterchangeListRequest { + + @ApiModelProperty(value = "交接单编号", dataType = "String") + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + private String customerName; + + @ApiModelProperty(value = "交接人", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + private String deliverTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java new file mode 100644 index 0000000..5ecdc6f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/InterchangeListResponse.java @@ -0,0 +1,54 @@ +package com.casic.missiles.dto.business.interchange; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel +@TableName +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class InterchangeListResponse { + + private Long id; + + @ApiModelProperty(value = "交接单编号", dataType = "String") + @ExcelProperty(value = "交接单编号",order = 0) + private String interchangeCode; + + @ApiModelProperty(value = "委托方代码", dataType = "String") + @ExcelProperty(value = "委托方代码",order = 1) + private String customerCode; + + @ApiModelProperty(value = "委托方名称", dataType = "String") + @ExcelProperty(value = "委托方名称",order = 2) + private String customerName; + + @ApiModelProperty(value = "接收人", dataType = "String") + @ExcelProperty(value = "接收人",order = 3) + private String reciever; + + @ApiModelProperty(value = "送检人", dataType = "String") + @ExcelProperty(value = "送检人",order = 4) + private String deliverer; //委托书中自带 + + @ApiModelProperty(value = "交接时间", dataType = "String") + @ExcelProperty(value = "交接时间",order = 5) + private String deliverTime; + + @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注",order = 6) + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java index 7fdc869..ba919d3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListReponse.java @@ -25,7 +25,7 @@ @ExcelIgnoreUnannotated public class OrderListReponse { - private final Long id; + private final Long id; @ApiModelProperty(value = "委托书编号", dataType = "String") @ExcelProperty(value = "委托书编号",order = 0) private String orderCode; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java new file mode 100644 index 0000000..a6930fd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/Info/CustomerInfoResponse.java @@ -0,0 +1,136 @@ +package com.casic.missiles.dto.customer.Info; + + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("customer_info") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class CustomerInfoResponse implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(value = "编号", dataType = "String") + @ExcelProperty(value = "编号",order = 0) + private String customerNo; + + @ApiModelProperty(value = "公司名称", dataType = "String") + @ExcelProperty(value = "公司名称",order = 1) + private String customerName; + + @ApiModelProperty(value = "公司简称", dataType = "String") + @ExcelProperty(value = "公司简称",order = 2) + private String briefName; + + @ApiModelProperty(value = "业务内容", dataType = "String") + @ExcelProperty(value = "业务内容",order = 3) + private String businessContent; + + @ApiModelProperty(value = "税号", dataType = "String") + @ExcelProperty(value = "税号",order = 4) + private String taxNumber; + + @ApiModelProperty(value = "银行账户名", dataType = "String") + @ExcelProperty(value = "银行账户名",order = 5) + private String bankAccount; + + @ApiModelProperty(value = "银行名称", dataType = "String") + @ExcelProperty(value = "银行名称",order = 6) + private String bankName; + + @ApiModelProperty(value = "银行账号", dataType = "String") + @ExcelProperty(value = "银行账号",order = 7) + private String bankAccountNumber; + + @ApiModelProperty(value = "邮编", dataType = "String") + @ExcelProperty(value = "邮编",order = 8) + private String postalCode; + + @ApiModelProperty(value = "负责人", dataType = "String") + @ExcelProperty(value = "负责人",order = 9) + private String director; + + @ApiModelProperty(value = "电话", dataType = "String") + @ExcelProperty(value = "电话",order = 10) + private String phone; + + @ApiModelProperty(value = "传真", dataType = "String") + @ExcelProperty(value = "电话",order = 11) + private String fax; + + @ApiModelProperty(value = "手机", dataType = "String") + @ExcelProperty(value = "手机",order = 12) + private String mobile; + + @ApiModelProperty(value = "邮箱", dataType = "String") + @ExcelProperty(value = "邮箱",order = 13) + private String email; + + @ApiModelProperty(value = "网址", dataType = "String") + @ExcelProperty(value = "网址",order =14) + private String website; + + @ApiModelProperty(value = "履约评级-字典", dataType = "String") + private String grade; + + @ApiModelProperty(value = "公司规模", dataType = "String") + @DictCodeField(message = "公司规模描述不合法", cacheName = MeterDictCode.COMPANY_SCALE) + private String companySize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模", dataType = "String") + private String companySizeName; + + @ApiModelProperty(value = "业务规模-字典", dataType = "String") + @DictCodeField(message = "业务规模描述不合法", cacheName = MeterDictCode.BUSINESS_SCALE) + private String businessSize; + + @TableField(exist = false) + @ApiModelProperty(value = "公司规模名称", dataType = "String") + private String businessSizeName; + + @ApiModelProperty(value = "整体评价", dataType = "String") + @DictCodeField(message = "公司整体评价不合法", cacheName = MeterDictCode.EVALUATION) + private String evaluation; + + @TableField(exist = false) + @ApiModelProperty(value = "整体评价", dataType = "String") + private String evaluationName; + + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @ExcelProperty(value = "详细地址",order =15) + private String fullAddress; + + @ApiModelProperty(value = "业务范围", dataType = "String") + @ExcelProperty(value = "业务范围",order =16) + private String businessScope; + + @ApiModelProperty(value = "创建时间", dataType = "String") + @ExcelProperty(value = "创建时间",order =17) + private String createTime; + + @ApiModelProperty(value = "最后更新时间", dataType = "String") + @ExcelProperty(value = "最后更新时间",order =18) + private String updateTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java index 0341f20..6c7e8b3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListRequest.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "样品超期状态", dataType = "String") + @ApiModelProperty(value = "样品超期状态(1/0)", dataType = "String") private String overtimeStatus; @ApiModelProperty(value = "检定开始时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java index 285c3ab..a7ededa 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方代码", dataType = "String") @ExcelProperty(value = "委托方代码", order = 4) - private String customerId; + private String customerNo; @TableField(exist = false) @ApiModelProperty(value = "样品状态", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java index f62ce7f..f751625 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessInterchange.java @@ -3,9 +3,11 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.casic.missiles.model.customer.CustomerSampleInfo; import lombok.Data; import java.io.Serializable; +import java.util.List; /** *

@@ -150,5 +152,6 @@ @TableField("update_time") private String updateTime; - -} + @TableField(exist = false) + private List customerSampleInfoList; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java index 5a3d50f..455340b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrderSampleRelation.java @@ -54,6 +54,17 @@ @TableField("measure_content") private String measureContent; + //检定方式 + @TableField("measure_type") + private String measureType; + + /** + * 样品检测设备实际到达时间 + */ + @TableField("real_deliver_time") + private String realDeliverTime; + + @TableField("create_time") private String createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java index 068bf49..a482c09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerInfo.java @@ -19,11 +19,6 @@ @Data @TableName("customer_info") -@ColumnWidth(30) -@HeadRowHeight(15) -@ContentRowHeight(20) -@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) -@ExcelIgnoreUnannotated public class CustomerInfo implements Serializable { private static final long serialVersionUID = 1L; @@ -31,63 +26,48 @@ private Long id; @ApiModelProperty(value = "编号", dataType = "String") - @ExcelProperty(value = "编号",order = 0) private String customerNo; @ApiModelProperty(value = "公司名称", dataType = "String") - @ExcelProperty(value = "公司名称",order = 1) private String customerName; @ApiModelProperty(value = "公司简称", dataType = "String") - @ExcelProperty(value = "公司简称",order = 2) private String briefName; @ApiModelProperty(value = "业务内容", dataType = "String") - @ExcelProperty(value = "业务内容",order = 3) private String businessContent; @ApiModelProperty(value = "税号", dataType = "String") - @ExcelProperty(value = "税号",order = 4) private String taxNumber; @ApiModelProperty(value = "银行账户名", dataType = "String") - @ExcelProperty(value = "银行账户名",order = 5) private String bankAccount; @ApiModelProperty(value = "银行名称", dataType = "String") - @ExcelProperty(value = "银行名称",order = 6) private String bankName; @ApiModelProperty(value = "银行账号", dataType = "String") - @ExcelProperty(value = "银行账号",order = 7) private String bankAccountNumber; @ApiModelProperty(value = "邮编", dataType = "String") - @ExcelProperty(value = "邮编",order = 8) private String postalCode; @ApiModelProperty(value = "负责人", dataType = "String") - @ExcelProperty(value = "负责人",order = 9) private String director; @ApiModelProperty(value = "电话", dataType = "String") - @ExcelProperty(value = "电话",order = 10) private String phone; @ApiModelProperty(value = "传真", dataType = "String") - @ExcelProperty(value = "电话",order = 11) private String fax; @ApiModelProperty(value = "手机", dataType = "String") - @ExcelProperty(value = "手机",order = 12) private String mobile; @ApiModelProperty(value = "邮箱", dataType = "String") - @ExcelProperty(value = "邮箱",order = 13) private String email; @ApiModelProperty(value = "网址", dataType = "String") - @ExcelProperty(value = "网址",order =14) private String website; @ApiModelProperty(value = "履约评级-字典", dataType = "String") @@ -130,7 +110,6 @@ private String addressArea; @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") - @ExcelProperty(value = "详细地址",order =15) private String fullAddress; @ApiModelProperty(value = "公司地址-国家名字", dataType = "String") @@ -173,7 +152,6 @@ private String invoiceAreaName; @ApiModelProperty(value = "业务范围", dataType = "String") - @ExcelProperty(value = "业务范围",order =16) private String businessScope; @ApiModelProperty(value = "minio存储文件名", dataType = "String") @@ -192,11 +170,9 @@ private Integer isDel; @ApiModelProperty(value = "创建时间", dataType = "String") - @ExcelProperty(value = "创建时间",order =17) private String createTime; @ApiModelProperty(value = "最后更新时间", dataType = "String") - @ExcelProperty(value = "最后更新时间",order =18) private String updateTime; @TableField(exist = false) diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java index 17fbf10..dfcc97b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerSampleInfo.java @@ -77,9 +77,6 @@ @ApiModelProperty(value = "检定周期(月)", dataType = "String") private String measurePeriod; - @ApiModelProperty(value = "检定方式-字典", dataType = "String") - private String measureType; - @ApiModelProperty(value = "有效期限", dataType = "String") private String validDeadline; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java index 5208fb4..ff9fd1c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerUserInfo.java @@ -1,13 +1,5 @@ package com.casic.missiles.model.customer; -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import com.alibaba.excel.annotation.write.style.ColumnWidth; -import com.alibaba.excel.annotation.write.style.ContentRowHeight; -import com.alibaba.excel.annotation.write.style.ContentStyle; -import com.alibaba.excel.annotation.write.style.HeadRowHeight; -import com.alibaba.excel.enums.poi.BorderStyleEnum; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java index 94d46e1..ea245a5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessInterchangeServiceImpl.java @@ -1,11 +1,35 @@ package com.casic.missiles.service.Impl.business; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessInterchangeMapper; +import com.casic.missiles.mapper.business.BusinessOrderSampleRelationMapper; import com.casic.missiles.model.business.BusinessInterchange; +import com.casic.missiles.model.business.BusinessOrderSampleRelation; +import com.casic.missiles.model.customer.CustomerSampleInfo; import com.casic.missiles.service.business.IBusinessInterchangeService; +import com.casic.missiles.service.customer.CustomerSampleService; +import com.casic.missiles.utils.NumberGeneratorUtil; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; + /** *

* 业务管理-设备交接单 服务实现类 @@ -15,6 +39,111 @@ * @since 2023-02-02 */ @Service +@AllArgsConstructor public class BusinessInterchangeServiceImpl extends ServiceImpl implements IBusinessInterchangeService { + private final IBaseExportService iBaseExportService; + private final CustomerSampleService customerSampleService; + private final BusinessOrderSampleRelationMapper sampleRelationMapper; + + //** 送检人查询条件不在设备交接单中,需要联查才可以实现 + @Override + public Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception { + List resultPage = this.baseMapper.selectInterchangeListPage(page, request); + page.setRecords(resultPage); + return page; + } + + @Override + public BusinessInterchange exchangeDetail(Long id) { + BusinessInterchange businessExchange = this.baseMapper.selectById(id); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("order_id", businessExchange.getOrderId()); + List orderSampleList = sampleRelationMapper.selectList(queryWrapper); + List customerSampleList = new ArrayList<>(); + for (BusinessOrderSampleRelation orderSample : orderSampleList) { + CustomerSampleInfo customerSampleInfo = customerSampleService.sampleDetail(orderSample.getSampleId()); + customerSampleInfo.setIsExistSample("1"); + customerSampleList.add(customerSampleInfo); + } + businessExchange.setCustomerSampleInfoList(customerSampleList); + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO deleteExchange(Long id) { + BusinessInterchange businessInterchange = this.baseMapper.selectById(id); + Integer deleteFlag = this.baseMapper.deleteById(id); + Boolean sampleUpdateFlag = sampleStatusDeletor(businessInterchange.getOrderId(), "1") > 0; + if (deleteFlag > 0 && sampleUpdateFlag) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO updateExchange(BusinessInterchange businessInterchange) { + Integer updateFlag = this.baseMapper.updateById(businessInterchange); + if (updateFlag > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO addExchange(BusinessInterchange businessInterchange) { + populationExchange(businessInterchange); + Integer addFlag = this.baseMapper.insert(businessInterchange); + Boolean sampleAddFlag = true; + for (CustomerSampleInfo sampleInfo : businessInterchange.getCustomerSampleInfoList()) { + sampleAddFlag = sampleAddFlag && sampleStatusCreator(businessInterchange.getOrderId(), sampleInfo.getId(), "2") > 0; + } + if (addFlag > 0 && sampleAddFlag) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public void exportExchange(InterchangeListRequest request, HttpServletResponse response) { + try { + Page page = PageFactory.defaultPage(); + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + List resultPage = this.baseMapper.selectInterchangeListPage(page, request); + iBaseExportService.exportExcel(response, InterchangeListResponse.class, resultPage, ExportEnum.EXCHANGE_DATA.getSheetName()); + } catch (Exception e) { + log.error("样品导出出现异常,异常信息为{}", e); + } + } + + private void populationExchange(BusinessInterchange businessInterchange){ + Long maxNo = this.baseMapper.selectMaxExchangeNo(); + String orderNo = NumberGeneratorUtil.getContactNo("jjdh", maxNo); + AuthUser authUser = ShiroKit.getUser(); + businessInterchange.setCreateUser(authUser.getId()); + businessInterchange.setInterchangeCode(orderNo); + } + + private Integer sampleStatusCreator(Long orderId, Long sampleId, String status) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("order_id", orderId); + queryWrapper.eq(ObjectUtil.isEmpty(sampleId), "sample_id", sampleId); + BusinessOrderSampleRelation sampleStatusPopulation = new BusinessOrderSampleRelation(); + sampleStatusPopulation.setSampleStatus(status); + Integer sampleStatus = this.sampleRelationMapper.update(sampleStatusPopulation, queryWrapper); + return sampleStatus; + } + + private Integer sampleStatusDeletor(Long orderId, String status) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isEmpty(orderId), "order_id", orderId); + queryWrapper.eq("status", "2"); + BusinessOrderSampleRelation sampleStatusPopulation = new BusinessOrderSampleRelation(); + sampleStatusPopulation.setSampleStatus(status); + Integer sampleStatus = this.sampleRelationMapper.update(sampleStatusPopulation, queryWrapper); + return sampleStatus; + } + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java index 87ebeeb..9848a3b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOrderServiceImpl.java @@ -33,7 +33,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.stream.Collector; import java.util.stream.Collectors; /** @@ -133,7 +132,7 @@ ReturnDTO returnDTO = customerSampleService.addSample(sampleInfo); sampleAddFlag = sampleAddFlag && returnDTO.getCode() == 200; } - sampleAddFlag = sampleAddFlag && sampleStatusCreator(sampleInfo.getOrderId(), sampleInfo.getId(), "0") > 0; + sampleAddFlag = sampleAddFlag && sampleStatusCreator(sampleInfo.getOrderId(), sampleInfo.getId(), "1") > 0; } if (addFlag > 0 && sampleAddFlag) { return ReturnUtil.success(); @@ -191,7 +190,7 @@ queryWrapper.like(StringUtils.isNotBlank(request.getCustomerName()), "customer_name", request.getCustomerName()); queryWrapper.like(StringUtils.isNotBlank(request.getDeliverer()), "deliverer", request.getDeliverer()); queryWrapper.like(StringUtils.isNotBlank(request.getOrderCode()), "order_code", request.getOrderCode()); - queryWrapper.like(ObjectUtil.isNotEmpty(request.getIsUrgent()), "is_urgent", request.getIsUrgent()); + queryWrapper.like(ObjectUtil.isNotEmpty(request.getIsUrgent()) && request.getIsUrgent() != 0, "is_urgent", request.getIsUrgent()); queryWrapper.like(StringUtils.isNotBlank(request.getCustomerNo()), "customer_no", request.getCustomerNo()); queryWrapper.like(ObjectUtil.isNotEmpty(request.getStatus()) && request.getStatus() != 0, "status", request.getStatus()); queryWrapper.apply(StringUtils.isNotBlank(request.getStartTime()), @@ -214,6 +213,7 @@ sampleStatusPopulation.setOrderId(orderId); sampleStatusPopulation.setSampleId(sampleId); sampleStatusPopulation.setSampleStatus(status); + sampleStatusPopulation.setMeasureType("1"); Integer sampleStatus = this.sampleRelationMapper.insert(sampleStatusPopulation); return sampleStatus; } 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 new file mode 100644 index 0000000..66a414b --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java @@ -0,0 +1,87 @@ +package com.casic.missiles.service.Impl.business; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.SampleHandOutListResponse; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.business.BusinessOrderMapper; +import com.casic.missiles.mapper.business.BusinessOrderSampleRelationMapper; +import com.casic.missiles.model.business.BusinessLabExecutiveInfo; +import com.casic.missiles.model.business.BusinessOrder; +import com.casic.missiles.model.business.BusinessOrderSampleRelation; +import com.casic.missiles.service.business.IBusinessDispatchService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Service +@Slf4j +@AllArgsConstructor +public class IBusinessDispatchServiceImpl extends ServiceImpl implements IBusinessDispatchService { + + + //终止、回退、收入、归还、催办按钮 + @Override + public Page listPage(Page page, DeviceDispatchDTO request) { +// Page deviceDispatchVOPage=P +// //查询委托书和样品关联表中的各状态的样品 +// Page handOutList = orderSampleRelationMapper.selectSampleListByStatus(page, handOutListRequest); +// log.info("任务分发-当前查询样品状态为:{}", request.getSampleStatus()); +// List records = handOutList.getRecords(); +// if(CollectionUtils.isEmpty(records)){ +// return new Page<>(); +// } + return page; + } + + @Override + public void exportSampleDispatchList(DeviceDispatchDTO request, HttpServletResponse response) { + + } + + @Override + public ReturnDTO receiveDevice(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO backDevice(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO forcedTerminate(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO rushDoProcess(Long id) { + Integer deleteFalg = this.baseMapper.deleteById(id); + if (deleteFalg > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java index eb0012d..dec41f1 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerSampleServiceImpl.java @@ -53,8 +53,11 @@ QueryWrapper wrapper = listParamWrapper(request); Page customerSamplePage = customerSampleListResponseMapper.selectPage(page, wrapper); customerSamplePage.getRecords().stream() - .filter(customerSample -> !ObjectUtils.isEmpty(customerSample.getOrderId())) - .forEach(customerSample -> customerSample.setSampleSatus(this.getSampleStatusById(customerSample.getOrderId(), customerSample.getId()))); + .forEach(customerSample ->{ + BusinessOrderSampleRelation businessOrderSampleRelation=this.getSampleStatusById(customerSample.getId()); + customerSample.setOrderId(businessOrderSampleRelation.getOrderId()); + customerSample.setSampleSatus(businessOrderSampleRelation.getSampleStatus()); + }); for (CustomerSampleListResponse customerSampleListResponse : customerSamplePage.getRecords()) { if (!StringUtils.isEmpty(customerSampleListResponse.getSampleSatus())) { DictCodeUtils.convertDictCodeToName(customerSampleListResponse); @@ -92,7 +95,6 @@ @Override public CustomerSampleInfo sampleDetail(Long id) { CustomerSampleInfo customerSampleInfo = this.baseMapper.selectById(id); -// customerSampleInfo.setOrderId(orderBuilder(customerSampleInfo.getId())); return customerSampleInfo; } @@ -153,14 +155,13 @@ return certificateResponsePage; } - private String getSampleStatusById(Long orderId, Long sampleId) { + private BusinessOrderSampleRelation getSampleStatusById(Long sampleId) { QueryWrapper wrapper = new QueryWrapper() - .eq("order_id", orderId) - .eq("sample_id", sampleId); + .eq("sample_id", sampleId) + .orderByDesc("create_time"); List orderSampleList = sampleRelationMapper.selectList(wrapper); Optional orderSampleOptional = orderSampleList.stream().findFirst(); - return orderSampleOptional.isPresent() ? orderSampleOptional.get().getSampleStatus() : null; - + return orderSampleOptional.isPresent() ? orderSampleOptional.get(): null; } private void initSample(CustomerSampleInfo customerSampleInfo) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java index b82f087..6b05b67 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/customer/CustomerServiceImpl.java @@ -18,6 +18,7 @@ import com.casic.missiles.mapper.customer.CustomerMapper; import com.casic.missiles.mapper.customer.CustomerUserMapper; import com.casic.missiles.mapper.customer.customize.CertificationResponseMapper; +import com.casic.missiles.mapper.customer.customize.CustomerInfoResponseMapper; import com.casic.missiles.mapper.customer.customize.SampleRecordsResponseMapper; import com.casic.missiles.model.customer.CustomerInfo; import com.casic.missiles.model.customer.CustomerUserInfo; @@ -42,12 +43,13 @@ private final CustomerUserMapper customerUserMapper; private final CertificationResponseMapper certificationMapper; private final IBaseExportService iBaseExportService; + private final CustomerInfoResponseMapper customerInfoResponseMapper; @Override - public Page listPage(Page page, CustomerListRequest request) throws Exception { - QueryWrapper wrapper = listParamWrapper(request); - Page resultPage = this.baseMapper.selectPage(page, wrapper); - for (CustomerInfo customerInfo : resultPage.getRecords()) { + public Page listPage(Page page, CustomerListRequest request) throws Exception { + QueryWrapper wrapper = listParamWrapper(request); + Page resultPage = customerInfoResponseMapper.selectPage(page, wrapper); + for (CustomerInfoResponse customerInfo : resultPage.getRecords()) { DictCodeUtils.convertDictCodeToName(customerInfo); } return resultPage; @@ -131,19 +133,19 @@ @Override public void customerExport(CustomerListRequest request, HttpServletResponse response) { try { - QueryWrapper wrapper = listParamWrapper(request); - List customerInfoList = this.baseMapper.selectList(wrapper); - for (CustomerInfo customerInfo : customerInfoList) { + QueryWrapper wrapper = listParamWrapper(request); + List customerInfoList =customerInfoResponseMapper.selectList(wrapper); + for (CustomerInfoResponse customerInfo : customerInfoList) { DictCodeUtils.convertDictCodeToName(customerInfo); } - iBaseExportService.exportExcel(response, CustomerInfo.class, customerInfoList, ExportEnum.CUSTOMER_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, CustomerInfoResponse.class, customerInfoList, ExportEnum.CUSTOMER_EXPORT.getSheetName()); } catch (Exception e) { log.error("客户导出出现异常,异常信息为{}", e); } } - private QueryWrapper listParamWrapper(CustomerListRequest request) { - QueryWrapper queryWrapper = new QueryWrapper<>(); + private QueryWrapper listParamWrapper(CustomerListRequest request) { + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(StringUtils.isNotBlank(request.getCustomerNo()), "customer_no", request.getCustomerNo()); queryWrapper.like(StringUtils.isNotBlank(request.getCustomerName()), "customer_name", request.getCustomerName()); queryWrapper.like(StringUtils.isNotBlank(request.getBussinessSize()), "bussiness_size", request.getBussinessSize()); 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 new file mode 100644 index 0000000..6ae3aa2 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessDispatchService.java @@ -0,0 +1,23 @@ +package com.casic.missiles.service.business; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; + +import javax.servlet.http.HttpServletResponse; + +public interface IBusinessDispatchService { + + Page listPage(Page page, DeviceDispatchDTO request); + + void exportSampleDispatchList(DeviceDispatchDTO request, HttpServletResponse response); + + ReturnDTO receiveDevice(Long id); + + ReturnDTO backDevice(Long id); + + ReturnDTO forcedTerminate(Long id); + + ReturnDTO rushDoProcess(Long id); +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessInterchangeService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessInterchangeService.java index 16a5b94..884fda5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessInterchangeService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessInterchangeService.java @@ -1,8 +1,15 @@ package com.casic.missiles.service.business; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.model.business.BusinessInterchange; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + /** *

* 业务管理-设备交接单 服务类 @@ -13,4 +20,16 @@ */ public interface IBusinessInterchangeService extends IService { + Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception; + + BusinessInterchange exchangeDetail(Long id); + + ReturnDTO deleteExchange(Long id); + + ReturnDTO updateExchange(BusinessInterchange businessInterchange); + + ReturnDTO addExchange(BusinessInterchange businessInterchange); + + void exportExchange(InterchangeListRequest request, HttpServletResponse response); + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerService.java index 89cb92d..31766cf 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/customer/CustomerService.java @@ -11,7 +11,7 @@ public interface CustomerService { - Page listPage(Page page, CustomerListRequest request) throws Exception; + Page listPage(Page page, CustomerListRequest request) throws Exception; ReturnDTO addCustomer(CustomerInfo customerInfo);