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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), response); + } + } 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java index 4ee9515..778b1b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java @@ -101,7 +101,7 @@ private Long orderId; /** - * 委托方代码 + * 委托方编号 */ @TableField(exist = false) private String customerNo; 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java index 4ee9515..778b1b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java @@ -101,7 +101,7 @@ private Long orderId; /** - * 委托方代码 + * 委托方编号 */ @TableField(exist = false) private String customerNo; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java index 6861a6c..783f97e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java @@ -74,7 +74,7 @@ @TableField("executive_address") private String executiveAddress; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java index 4ee9515..778b1b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java @@ -101,7 +101,7 @@ private Long orderId; /** - * 委托方代码 + * 委托方编号 */ @TableField(exist = false) private String customerNo; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java index 6861a6c..783f97e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java @@ -74,7 +74,7 @@ @TableField("executive_address") private String executiveAddress; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 cd29832..91ce535 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 @@ -22,7 +22,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java index 4ee9515..778b1b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java @@ -101,7 +101,7 @@ private Long orderId; /** - * 委托方代码 + * 委托方编号 */ @TableField(exist = false) private String customerNo; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java index 6861a6c..783f97e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java @@ -74,7 +74,7 @@ @TableField("executive_address") private String executiveAddress; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 cd29832..91ce535 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 @@ -22,7 +22,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 0dc9233..53316ec 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 @@ -50,8 +50,8 @@ @ApiModelProperty(value = "生产厂家", dataType = "String") private String manufacturer; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @TableField(exist = false) @@ -90,4 +90,10 @@ @ExcelProperty(value = "备注", order = 12) private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + } 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java index 4ee9515..778b1b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java @@ -101,7 +101,7 @@ private Long orderId; /** - * 委托方代码 + * 委托方编号 */ @TableField(exist = false) private String customerNo; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java index 6861a6c..783f97e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java @@ -74,7 +74,7 @@ @TableField("executive_address") private String executiveAddress; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 cd29832..91ce535 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 @@ -22,7 +22,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 0dc9233..53316ec 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 @@ -50,8 +50,8 @@ @ApiModelProperty(value = "生产厂家", dataType = "String") private String manufacturer; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @TableField(exist = false) @@ -90,4 +90,10 @@ @ExcelProperty(value = "备注", order = 12) private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java index 099ad47..000c492 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java @@ -21,15 +21,18 @@ private String sampleName; @ApiModelProperty(value = "样品型号", dataType = "String") private String sampleModel; - @ApiModelProperty(value = "出厂编号", dataType = "String") + @ApiModelProperty(value = "出厂编号/仪器编号", dataType = "String") private String manufacturingNo; + @ApiModelProperty(value = "外观状态", dataType = "String") + private String appearanceStatus; @ApiModelProperty(value = "是否存库", dataType = "Integer") private Integer isExistSample; @ApiModelProperty(value = "附件说明", dataType = "String") private String appendixDescn; - @ApiModelProperty(value = "检定要求", dataType = "Integer") + @ApiModelProperty(value = "检定要求", dataType = "String") private String measureContent; - @ApiModelProperty(value = "外观", dataType = "String") - private String remark; + @ApiModelProperty(value = "备注", dataType = "String") + private String interchangeRemark; + private int seq; } 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java index 4ee9515..778b1b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java @@ -101,7 +101,7 @@ private Long orderId; /** - * 委托方代码 + * 委托方编号 */ @TableField(exist = false) private String customerNo; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java index 6861a6c..783f97e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java @@ -74,7 +74,7 @@ @TableField("executive_address") private String executiveAddress; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 cd29832..91ce535 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 @@ -22,7 +22,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 0dc9233..53316ec 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 @@ -50,8 +50,8 @@ @ApiModelProperty(value = "生产厂家", dataType = "String") private String manufacturer; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @TableField(exist = false) @@ -90,4 +90,10 @@ @ExcelProperty(value = "备注", order = 12) private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java index 099ad47..000c492 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java @@ -21,15 +21,18 @@ private String sampleName; @ApiModelProperty(value = "样品型号", dataType = "String") private String sampleModel; - @ApiModelProperty(value = "出厂编号", dataType = "String") + @ApiModelProperty(value = "出厂编号/仪器编号", dataType = "String") private String manufacturingNo; + @ApiModelProperty(value = "外观状态", dataType = "String") + private String appearanceStatus; @ApiModelProperty(value = "是否存库", dataType = "Integer") private Integer isExistSample; @ApiModelProperty(value = "附件说明", dataType = "String") private String appendixDescn; - @ApiModelProperty(value = "检定要求", dataType = "Integer") + @ApiModelProperty(value = "检定要求", dataType = "String") private String measureContent; - @ApiModelProperty(value = "外观", dataType = "String") - private String remark; + @ApiModelProperty(value = "备注", dataType = "String") + private String interchangeRemark; + private int seq; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java index 7b071a0..61704b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java @@ -18,7 +18,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerId; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java index 4ee9515..778b1b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java @@ -101,7 +101,7 @@ private Long orderId; /** - * 委托方代码 + * 委托方编号 */ @TableField(exist = false) private String customerNo; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java index 6861a6c..783f97e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java @@ -74,7 +74,7 @@ @TableField("executive_address") private String executiveAddress; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 cd29832..91ce535 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 @@ -22,7 +22,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 0dc9233..53316ec 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 @@ -50,8 +50,8 @@ @ApiModelProperty(value = "生产厂家", dataType = "String") private String manufacturer; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @TableField(exist = false) @@ -90,4 +90,10 @@ @ExcelProperty(value = "备注", order = 12) private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java index 099ad47..000c492 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java @@ -21,15 +21,18 @@ private String sampleName; @ApiModelProperty(value = "样品型号", dataType = "String") private String sampleModel; - @ApiModelProperty(value = "出厂编号", dataType = "String") + @ApiModelProperty(value = "出厂编号/仪器编号", dataType = "String") private String manufacturingNo; + @ApiModelProperty(value = "外观状态", dataType = "String") + private String appearanceStatus; @ApiModelProperty(value = "是否存库", dataType = "Integer") private Integer isExistSample; @ApiModelProperty(value = "附件说明", dataType = "String") private String appendixDescn; - @ApiModelProperty(value = "检定要求", dataType = "Integer") + @ApiModelProperty(value = "检定要求", dataType = "String") private String measureContent; - @ApiModelProperty(value = "外观", dataType = "String") - private String remark; + @ApiModelProperty(value = "备注", dataType = "String") + private String interchangeRemark; + private int seq; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java index 7b071a0..61704b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java @@ -18,7 +18,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerId; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java index 5ce6b3e..ed73682 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java @@ -8,7 +8,7 @@ @ApiModel("多场景样品列表") public class MultiItemSampleListResponse { - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java index 4ee9515..778b1b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java @@ -101,7 +101,7 @@ private Long orderId; /** - * 委托方代码 + * 委托方编号 */ @TableField(exist = false) private String customerNo; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java index 6861a6c..783f97e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java @@ -74,7 +74,7 @@ @TableField("executive_address") private String executiveAddress; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 cd29832..91ce535 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 @@ -22,7 +22,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 0dc9233..53316ec 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 @@ -50,8 +50,8 @@ @ApiModelProperty(value = "生产厂家", dataType = "String") private String manufacturer; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @TableField(exist = false) @@ -90,4 +90,10 @@ @ExcelProperty(value = "备注", order = 12) private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java index 099ad47..000c492 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java @@ -21,15 +21,18 @@ private String sampleName; @ApiModelProperty(value = "样品型号", dataType = "String") private String sampleModel; - @ApiModelProperty(value = "出厂编号", dataType = "String") + @ApiModelProperty(value = "出厂编号/仪器编号", dataType = "String") private String manufacturingNo; + @ApiModelProperty(value = "外观状态", dataType = "String") + private String appearanceStatus; @ApiModelProperty(value = "是否存库", dataType = "Integer") private Integer isExistSample; @ApiModelProperty(value = "附件说明", dataType = "String") private String appendixDescn; - @ApiModelProperty(value = "检定要求", dataType = "Integer") + @ApiModelProperty(value = "检定要求", dataType = "String") private String measureContent; - @ApiModelProperty(value = "外观", dataType = "String") - private String remark; + @ApiModelProperty(value = "备注", dataType = "String") + private String interchangeRemark; + private int seq; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java index 7b071a0..61704b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java @@ -18,7 +18,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerId; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java index 5ce6b3e..ed73682 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java @@ -8,7 +8,7 @@ @ApiModel("多场景样品列表") public class MultiItemSampleListResponse { - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java index b7ead9a..2a3bd49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java @@ -15,7 +15,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java index 4ee9515..778b1b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java @@ -101,7 +101,7 @@ private Long orderId; /** - * 委托方代码 + * 委托方编号 */ @TableField(exist = false) private String customerNo; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java index 6861a6c..783f97e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java @@ -74,7 +74,7 @@ @TableField("executive_address") private String executiveAddress; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 cd29832..91ce535 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 @@ -22,7 +22,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 0dc9233..53316ec 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 @@ -50,8 +50,8 @@ @ApiModelProperty(value = "生产厂家", dataType = "String") private String manufacturer; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @TableField(exist = false) @@ -90,4 +90,10 @@ @ExcelProperty(value = "备注", order = 12) private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java index 099ad47..000c492 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java @@ -21,15 +21,18 @@ private String sampleName; @ApiModelProperty(value = "样品型号", dataType = "String") private String sampleModel; - @ApiModelProperty(value = "出厂编号", dataType = "String") + @ApiModelProperty(value = "出厂编号/仪器编号", dataType = "String") private String manufacturingNo; + @ApiModelProperty(value = "外观状态", dataType = "String") + private String appearanceStatus; @ApiModelProperty(value = "是否存库", dataType = "Integer") private Integer isExistSample; @ApiModelProperty(value = "附件说明", dataType = "String") private String appendixDescn; - @ApiModelProperty(value = "检定要求", dataType = "Integer") + @ApiModelProperty(value = "检定要求", dataType = "String") private String measureContent; - @ApiModelProperty(value = "外观", dataType = "String") - private String remark; + @ApiModelProperty(value = "备注", dataType = "String") + private String interchangeRemark; + private int seq; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java index 7b071a0..61704b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java @@ -18,7 +18,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerId; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java index 5ce6b3e..ed73682 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java @@ -8,7 +8,7 @@ @ApiModel("多场景样品列表") public class MultiItemSampleListResponse { - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java index b7ead9a..2a3bd49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java @@ -15,7 +15,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 5663ba0..e7dcb8b 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; -import com.casic.missiles.model.customer.CustomerSampleInfo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -65,18 +64,18 @@ private String certificationCompanyEmail; /** - * 接收人 + * 收发员 */ - @ApiModelProperty(value = "接收人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") @TableField("reciever") private String reciever; /** - * 接收人电话/手机 + * 签收人 */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; + @ApiModelProperty(value = "签收人", dataType = "String") + @TableField("signee") + private String signee; /** * 证书单位地址 @@ -151,23 +150,23 @@ /** * 送检人签名文件,minio存储文件名(为空时打印签字) */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") + @TableField("reciever_sign_file") + private String recieverSignFile; /** * 送检人签字时间 */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + @TableField("reciever_sign_time") + private String recieverSignTime; /** * 接收人签名文件,minio存储文件名(系统签名模块获取) */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") - private String recieverSignFile; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + @TableField("signee_sign_file") + private String signeeSignFile; /** * 备注 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java index 4ee9515..778b1b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java @@ -101,7 +101,7 @@ private Long orderId; /** - * 委托方代码 + * 委托方编号 */ @TableField(exist = false) private String customerNo; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java index 6861a6c..783f97e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java @@ -74,7 +74,7 @@ @TableField("executive_address") private String executiveAddress; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 cd29832..91ce535 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 @@ -22,7 +22,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 0dc9233..53316ec 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 @@ -50,8 +50,8 @@ @ApiModelProperty(value = "生产厂家", dataType = "String") private String manufacturer; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @TableField(exist = false) @@ -90,4 +90,10 @@ @ExcelProperty(value = "备注", order = 12) private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java index 099ad47..000c492 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java @@ -21,15 +21,18 @@ private String sampleName; @ApiModelProperty(value = "样品型号", dataType = "String") private String sampleModel; - @ApiModelProperty(value = "出厂编号", dataType = "String") + @ApiModelProperty(value = "出厂编号/仪器编号", dataType = "String") private String manufacturingNo; + @ApiModelProperty(value = "外观状态", dataType = "String") + private String appearanceStatus; @ApiModelProperty(value = "是否存库", dataType = "Integer") private Integer isExistSample; @ApiModelProperty(value = "附件说明", dataType = "String") private String appendixDescn; - @ApiModelProperty(value = "检定要求", dataType = "Integer") + @ApiModelProperty(value = "检定要求", dataType = "String") private String measureContent; - @ApiModelProperty(value = "外观", dataType = "String") - private String remark; + @ApiModelProperty(value = "备注", dataType = "String") + private String interchangeRemark; + private int seq; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java index 7b071a0..61704b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java @@ -18,7 +18,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerId; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java index 5ce6b3e..ed73682 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java @@ -8,7 +8,7 @@ @ApiModel("多场景样品列表") public class MultiItemSampleListResponse { - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java index b7ead9a..2a3bd49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java @@ -15,7 +15,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 5663ba0..e7dcb8b 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; -import com.casic.missiles.model.customer.CustomerSampleInfo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -65,18 +64,18 @@ private String certificationCompanyEmail; /** - * 接收人 + * 收发员 */ - @ApiModelProperty(value = "接收人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") @TableField("reciever") private String reciever; /** - * 接收人电话/手机 + * 签收人 */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; + @ApiModelProperty(value = "签收人", dataType = "String") + @TableField("signee") + private String signee; /** * 证书单位地址 @@ -151,23 +150,23 @@ /** * 送检人签名文件,minio存储文件名(为空时打印签字) */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") + @TableField("reciever_sign_file") + private String recieverSignFile; /** * 送检人签字时间 */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + @TableField("reciever_sign_time") + private String recieverSignTime; /** * 接收人签名文件,minio存储文件名(系统签名模块获取) */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") - private String recieverSignFile; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + @TableField("signee_sign_file") + private String signeeSignFile; /** * 备注 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java index 440d296..15c56b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java @@ -130,7 +130,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方联系方式(固话)", dataType = "String") @@ -162,6 +162,12 @@ @ApiModelProperty(value = "创建人", dataType = "String") private Long createUser; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + private String createTime; private String updateTime; 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java index 4ee9515..778b1b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java @@ -101,7 +101,7 @@ private Long orderId; /** - * 委托方代码 + * 委托方编号 */ @TableField(exist = false) private String customerNo; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java index 6861a6c..783f97e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java @@ -74,7 +74,7 @@ @TableField("executive_address") private String executiveAddress; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 cd29832..91ce535 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 @@ -22,7 +22,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 0dc9233..53316ec 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 @@ -50,8 +50,8 @@ @ApiModelProperty(value = "生产厂家", dataType = "String") private String manufacturer; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @TableField(exist = false) @@ -90,4 +90,10 @@ @ExcelProperty(value = "备注", order = 12) private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java index 099ad47..000c492 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java @@ -21,15 +21,18 @@ private String sampleName; @ApiModelProperty(value = "样品型号", dataType = "String") private String sampleModel; - @ApiModelProperty(value = "出厂编号", dataType = "String") + @ApiModelProperty(value = "出厂编号/仪器编号", dataType = "String") private String manufacturingNo; + @ApiModelProperty(value = "外观状态", dataType = "String") + private String appearanceStatus; @ApiModelProperty(value = "是否存库", dataType = "Integer") private Integer isExistSample; @ApiModelProperty(value = "附件说明", dataType = "String") private String appendixDescn; - @ApiModelProperty(value = "检定要求", dataType = "Integer") + @ApiModelProperty(value = "检定要求", dataType = "String") private String measureContent; - @ApiModelProperty(value = "外观", dataType = "String") - private String remark; + @ApiModelProperty(value = "备注", dataType = "String") + private String interchangeRemark; + private int seq; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java index 7b071a0..61704b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java @@ -18,7 +18,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerId; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java index 5ce6b3e..ed73682 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java @@ -8,7 +8,7 @@ @ApiModel("多场景样品列表") public class MultiItemSampleListResponse { - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java index b7ead9a..2a3bd49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java @@ -15,7 +15,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 5663ba0..e7dcb8b 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; -import com.casic.missiles.model.customer.CustomerSampleInfo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -65,18 +64,18 @@ private String certificationCompanyEmail; /** - * 接收人 + * 收发员 */ - @ApiModelProperty(value = "接收人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") @TableField("reciever") private String reciever; /** - * 接收人电话/手机 + * 签收人 */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; + @ApiModelProperty(value = "签收人", dataType = "String") + @TableField("signee") + private String signee; /** * 证书单位地址 @@ -151,23 +150,23 @@ /** * 送检人签名文件,minio存储文件名(为空时打印签字) */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") + @TableField("reciever_sign_file") + private String recieverSignFile; /** * 送检人签字时间 */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + @TableField("reciever_sign_time") + private String recieverSignTime; /** * 接收人签名文件,minio存储文件名(系统签名模块获取) */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") - private String recieverSignFile; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + @TableField("signee_sign_file") + private String signeeSignFile; /** * 备注 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java index 440d296..15c56b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java @@ -130,7 +130,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方联系方式(固话)", dataType = "String") @@ -162,6 +162,12 @@ @ApiModelProperty(value = "创建人", dataType = "String") private Long createUser; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + private String createTime; private String updateTime; 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 c531052..9381bc3 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 @@ -36,6 +36,17 @@ @TableField("sample_id") private Long sampleId; + @TableField("sample_name") + private String sampleName; + + @TableField("sample_model") + private String sampleModel; + + @TableField("manufacturing_no") + private String manufacturingNo; + + @TableField("appearance_status") + private String appearanceStatus; /** * 交接单id @@ -55,6 +66,9 @@ @TableField("remark") private String remark; + @TableField("interchange_remark") + private String interchangeRemark; + /** * 样品在本次委托中的检定项目 */ 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java index 4ee9515..778b1b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java @@ -101,7 +101,7 @@ private Long orderId; /** - * 委托方代码 + * 委托方编号 */ @TableField(exist = false) private String customerNo; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java index 6861a6c..783f97e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java @@ -74,7 +74,7 @@ @TableField("executive_address") private String executiveAddress; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 cd29832..91ce535 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 @@ -22,7 +22,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 0dc9233..53316ec 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 @@ -50,8 +50,8 @@ @ApiModelProperty(value = "生产厂家", dataType = "String") private String manufacturer; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @TableField(exist = false) @@ -90,4 +90,10 @@ @ExcelProperty(value = "备注", order = 12) private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java index 099ad47..000c492 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java @@ -21,15 +21,18 @@ private String sampleName; @ApiModelProperty(value = "样品型号", dataType = "String") private String sampleModel; - @ApiModelProperty(value = "出厂编号", dataType = "String") + @ApiModelProperty(value = "出厂编号/仪器编号", dataType = "String") private String manufacturingNo; + @ApiModelProperty(value = "外观状态", dataType = "String") + private String appearanceStatus; @ApiModelProperty(value = "是否存库", dataType = "Integer") private Integer isExistSample; @ApiModelProperty(value = "附件说明", dataType = "String") private String appendixDescn; - @ApiModelProperty(value = "检定要求", dataType = "Integer") + @ApiModelProperty(value = "检定要求", dataType = "String") private String measureContent; - @ApiModelProperty(value = "外观", dataType = "String") - private String remark; + @ApiModelProperty(value = "备注", dataType = "String") + private String interchangeRemark; + private int seq; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java index 7b071a0..61704b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java @@ -18,7 +18,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerId; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java index 5ce6b3e..ed73682 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java @@ -8,7 +8,7 @@ @ApiModel("多场景样品列表") public class MultiItemSampleListResponse { - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java index b7ead9a..2a3bd49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java @@ -15,7 +15,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 5663ba0..e7dcb8b 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; -import com.casic.missiles.model.customer.CustomerSampleInfo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -65,18 +64,18 @@ private String certificationCompanyEmail; /** - * 接收人 + * 收发员 */ - @ApiModelProperty(value = "接收人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") @TableField("reciever") private String reciever; /** - * 接收人电话/手机 + * 签收人 */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; + @ApiModelProperty(value = "签收人", dataType = "String") + @TableField("signee") + private String signee; /** * 证书单位地址 @@ -151,23 +150,23 @@ /** * 送检人签名文件,minio存储文件名(为空时打印签字) */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") + @TableField("reciever_sign_file") + private String recieverSignFile; /** * 送检人签字时间 */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + @TableField("reciever_sign_time") + private String recieverSignTime; /** * 接收人签名文件,minio存储文件名(系统签名模块获取) */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") - private String recieverSignFile; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + @TableField("signee_sign_file") + private String signeeSignFile; /** * 备注 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java index 440d296..15c56b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java @@ -130,7 +130,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方联系方式(固话)", dataType = "String") @@ -162,6 +162,12 @@ @ApiModelProperty(value = "创建人", dataType = "String") private Long createUser; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + private String createTime; private String updateTime; 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 c531052..9381bc3 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 @@ -36,6 +36,17 @@ @TableField("sample_id") private Long sampleId; + @TableField("sample_name") + private String sampleName; + + @TableField("sample_model") + private String sampleModel; + + @TableField("manufacturing_no") + private String manufacturingNo; + + @TableField("appearance_status") + private String appearanceStatus; /** * 交接单id @@ -55,6 +66,9 @@ @TableField("remark") private String remark; + @TableField("interchange_remark") + private String interchangeRemark; + /** * 样品在本次委托中的检定项目 */ 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 c7ae4d4..e1cddfb 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; -import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NoArgsConstructor; @@ -27,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -81,7 +80,6 @@ @ApiModelProperty(value = "接收时间", dataType = "String") private String deliverTime; - @ApiModelProperty(value = " 检定方式", dataType = "String") @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE) private String measureType; @@ -149,6 +147,12 @@ @ApiModelProperty(value = "送检人联系方式", dataType = "String") private String delivererTel; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @TableField(exist = false) @ApiModelProperty(value = "委托方地址", dataType = "String") private String customerAddress; 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java index 4ee9515..778b1b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java @@ -101,7 +101,7 @@ private Long orderId; /** - * 委托方代码 + * 委托方编号 */ @TableField(exist = false) private String customerNo; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java index 6861a6c..783f97e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java @@ -74,7 +74,7 @@ @TableField("executive_address") private String executiveAddress; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 cd29832..91ce535 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 @@ -22,7 +22,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 0dc9233..53316ec 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 @@ -50,8 +50,8 @@ @ApiModelProperty(value = "生产厂家", dataType = "String") private String manufacturer; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @TableField(exist = false) @@ -90,4 +90,10 @@ @ExcelProperty(value = "备注", order = 12) private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java index 099ad47..000c492 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java @@ -21,15 +21,18 @@ private String sampleName; @ApiModelProperty(value = "样品型号", dataType = "String") private String sampleModel; - @ApiModelProperty(value = "出厂编号", dataType = "String") + @ApiModelProperty(value = "出厂编号/仪器编号", dataType = "String") private String manufacturingNo; + @ApiModelProperty(value = "外观状态", dataType = "String") + private String appearanceStatus; @ApiModelProperty(value = "是否存库", dataType = "Integer") private Integer isExistSample; @ApiModelProperty(value = "附件说明", dataType = "String") private String appendixDescn; - @ApiModelProperty(value = "检定要求", dataType = "Integer") + @ApiModelProperty(value = "检定要求", dataType = "String") private String measureContent; - @ApiModelProperty(value = "外观", dataType = "String") - private String remark; + @ApiModelProperty(value = "备注", dataType = "String") + private String interchangeRemark; + private int seq; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java index 7b071a0..61704b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java @@ -18,7 +18,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerId; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java index 5ce6b3e..ed73682 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java @@ -8,7 +8,7 @@ @ApiModel("多场景样品列表") public class MultiItemSampleListResponse { - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java index b7ead9a..2a3bd49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java @@ -15,7 +15,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 5663ba0..e7dcb8b 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; -import com.casic.missiles.model.customer.CustomerSampleInfo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -65,18 +64,18 @@ private String certificationCompanyEmail; /** - * 接收人 + * 收发员 */ - @ApiModelProperty(value = "接收人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") @TableField("reciever") private String reciever; /** - * 接收人电话/手机 + * 签收人 */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; + @ApiModelProperty(value = "签收人", dataType = "String") + @TableField("signee") + private String signee; /** * 证书单位地址 @@ -151,23 +150,23 @@ /** * 送检人签名文件,minio存储文件名(为空时打印签字) */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") + @TableField("reciever_sign_file") + private String recieverSignFile; /** * 送检人签字时间 */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + @TableField("reciever_sign_time") + private String recieverSignTime; /** * 接收人签名文件,minio存储文件名(系统签名模块获取) */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") - private String recieverSignFile; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + @TableField("signee_sign_file") + private String signeeSignFile; /** * 备注 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java index 440d296..15c56b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java @@ -130,7 +130,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方联系方式(固话)", dataType = "String") @@ -162,6 +162,12 @@ @ApiModelProperty(value = "创建人", dataType = "String") private Long createUser; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + private String createTime; private String updateTime; 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 c531052..9381bc3 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 @@ -36,6 +36,17 @@ @TableField("sample_id") private Long sampleId; + @TableField("sample_name") + private String sampleName; + + @TableField("sample_model") + private String sampleModel; + + @TableField("manufacturing_no") + private String manufacturingNo; + + @TableField("appearance_status") + private String appearanceStatus; /** * 交接单id @@ -55,6 +66,9 @@ @TableField("remark") private String remark; + @TableField("interchange_remark") + private String interchangeRemark; + /** * 样品在本次委托中的检定项目 */ 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 c7ae4d4..e1cddfb 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; -import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NoArgsConstructor; @@ -27,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -81,7 +80,6 @@ @ApiModelProperty(value = "接收时间", dataType = "String") private String deliverTime; - @ApiModelProperty(value = " 检定方式", dataType = "String") @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE) private String measureType; @@ -149,6 +147,12 @@ @ApiModelProperty(value = "送检人联系方式", dataType = "String") private String delivererTel; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @TableField(exist = false) @ApiModelProperty(value = "委托方地址", dataType = "String") private String customerAddress; 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 ca6cd6f..4961c24 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,5 +1,6 @@ package com.casic.missiles.service.Impl.business; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -9,7 +10,10 @@ 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.*; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; @@ -20,17 +24,21 @@ import com.casic.missiles.model.business.BusinessInterchange; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import com.casic.missiles.service.business.IBusinessInterchangeService; -import com.casic.missiles.utils.DictCodeUtils; +import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; import java.util.List; +import static com.casic.missiles.enums.business.FilePrintTypeEnum.SAMPLE_INTERCHANGE; + /** *

* 业务管理-设备交接单 服务实现类 @@ -39,6 +47,7 @@ * @author cz * @since 2023-02-02 */ +@Slf4j @Service @AllArgsConstructor public class BusinessInterchangeServiceImpl extends ServiceImpl implements IBusinessInterchangeService { @@ -46,12 +55,18 @@ private final IBaseExportService iBaseExportService; private final BusinessOrderSampleRelationMapper sampleRelationMapper; - /** - * 送检人查询条件不在设备交接单中,需要联查才可以实现 - */ @Override - public Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception { - page.setRecords(this.baseMapper.selectInterchangeListPage(page, request)); + public Page exchangeListPage(Page page, InterchangeListRequest request) { + List interchangeList = this.baseMapper.selectInterchangeListPage(page, request); + if (!CollectionUtils.isEmpty(interchangeList)) { + for (InterchangeListResponse interchange : interchangeList) { + //样品数量 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("interchange_id", interchange.getId()); + interchange.setSampleAmount(sampleRelationMapper.selectCount(wrapper)); + } + } + page.setRecords(interchangeList); return page; } @@ -59,13 +74,14 @@ public BusinessInterchangeDetailResponse exchangeDetail(Long id) { BusinessInterchangeDetailResponse businessExchange = this.baseMapper.getInfoById(id); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("order_id", businessExchange.getOrderId()); + queryWrapper.eq("interchange_id", id); List orderSampleList = sampleRelationMapper.selectList(queryWrapper); - List customerSampleList = new ArrayList<>(); - for (BusinessOrderSampleRelation businessOrderSampleRelation : orderSampleList) { - CustomerSampleListVO customerSampleListVO = sampleRelationMapper.getInterChangeSampleList(businessOrderSampleRelation.getOrderId(), businessOrderSampleRelation.getSampleId()); - customerSampleList.add(customerSampleListVO); - } + List customerSampleList = ConvertUtils.sourceToTarget(orderSampleList, CustomerSampleListVO.class); +// List customerSampleList = new ArrayList<>(); +// for (BusinessOrderSampleRelation businessOrderSampleRelation : orderSampleList) { +// CustomerSampleListVO customerSampleListVO = sampleRelationMapper.getInterChangeSampleList(businessOrderSampleRelation.getOrderId(), businessOrderSampleRelation.getSampleId()); +// customerSampleList.add(customerSampleListVO); +// } businessExchange.setCustomerSampleList(customerSampleList); return businessExchange; } @@ -82,13 +98,22 @@ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } - /** - * 更新只是交接单的变更,没有任何其他单位的变化 - */ @Override + @Transactional public ReturnDTO updateExchange(BusinessInterchange businessInterchange) { int updateFlag = this.baseMapper.updateById(businessInterchange); if (updateFlag > 0) { + //先删除,再新增 + if (!CollectionUtils.isEmpty(businessInterchange.getCustomerSampleList())) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("interchange_id", businessInterchange.getId()); + BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); + businessOrderSampleRelation.setInterchangeId((long) 0); + sampleRelationMapper.update(businessOrderSampleRelation, wrapper); + for (CustomerSampleListVO sampleInfo : businessInterchange.getCustomerSampleList()) { + sampleStatusUpdator(sampleInfo, businessInterchange.getId()); + } + } return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -137,6 +162,25 @@ } } + @Override + public void formExport(Long id, HttpServletResponse response) { + BusinessInterchangeDetailResponse interchangeDetail = this.exchangeDetail(id); + PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); + try { + printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customObject(interchangeDetail) + .prefixType(SAMPLE_INTERCHANGE) + .pdf(false) + .response(response) + //文件自定义命名 委托方名称+委托单编号 + .customFileName(interchangeDetail.getCustomerName() + interchangeDetail.getOrderNo()) + .build()); + } catch (Exception ex) { + log.error("交接单表单导出/打印异常,表单信息:{},异常信息:{}", JSONObject.toJSON(interchangeDetail), ex); + } + } + private void initFlushEmpty(InterchangeListRequest request) { request.setEndTime(null); @@ -144,7 +188,6 @@ request.setCustomerNo(null); request.setCustomerName(null); request.setDeliverer(null); - request.setReciever(null); request.setStartTime(null); } @@ -160,7 +203,7 @@ QueryWrapper orderSampleWrapper = new QueryWrapper<>(); orderSampleWrapper.eq("interchange_id", interChangeId); BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); - businessOrderSampleRelation.setInterchangeId(null); + businessOrderSampleRelation.setInterchangeId((long) 0); return sampleRelationMapper.update(businessOrderSampleRelation, orderSampleWrapper); } @@ -170,6 +213,11 @@ orderSampleWrapper.eq("sample_id", sampleInfo.getSampleId()); BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setInterchangeId(interChangeId); + businessOrderSampleRelation.setSampleName(sampleInfo.getSampleName()); + businessOrderSampleRelation.setSampleModel(sampleInfo.getSampleModel()); + businessOrderSampleRelation.setManufacturingNo(sampleInfo.getManufacturingNo()); + businessOrderSampleRelation.setAppearanceStatus(sampleInfo.getAppearanceStatus()); + businessOrderSampleRelation.setInterchangeRemark(sampleInfo.getInterchangeRemark()); return sampleRelationMapper.update(businessOrderSampleRelation, orderSampleWrapper); } 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java index 4ee9515..778b1b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java @@ -101,7 +101,7 @@ private Long orderId; /** - * 委托方代码 + * 委托方编号 */ @TableField(exist = false) private String customerNo; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java index 6861a6c..783f97e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java @@ -74,7 +74,7 @@ @TableField("executive_address") private String executiveAddress; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 cd29832..91ce535 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 @@ -22,7 +22,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 0dc9233..53316ec 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 @@ -50,8 +50,8 @@ @ApiModelProperty(value = "生产厂家", dataType = "String") private String manufacturer; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @TableField(exist = false) @@ -90,4 +90,10 @@ @ExcelProperty(value = "备注", order = 12) private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java index 099ad47..000c492 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java @@ -21,15 +21,18 @@ private String sampleName; @ApiModelProperty(value = "样品型号", dataType = "String") private String sampleModel; - @ApiModelProperty(value = "出厂编号", dataType = "String") + @ApiModelProperty(value = "出厂编号/仪器编号", dataType = "String") private String manufacturingNo; + @ApiModelProperty(value = "外观状态", dataType = "String") + private String appearanceStatus; @ApiModelProperty(value = "是否存库", dataType = "Integer") private Integer isExistSample; @ApiModelProperty(value = "附件说明", dataType = "String") private String appendixDescn; - @ApiModelProperty(value = "检定要求", dataType = "Integer") + @ApiModelProperty(value = "检定要求", dataType = "String") private String measureContent; - @ApiModelProperty(value = "外观", dataType = "String") - private String remark; + @ApiModelProperty(value = "备注", dataType = "String") + private String interchangeRemark; + private int seq; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java index 7b071a0..61704b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java @@ -18,7 +18,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerId; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java index 5ce6b3e..ed73682 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java @@ -8,7 +8,7 @@ @ApiModel("多场景样品列表") public class MultiItemSampleListResponse { - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java index b7ead9a..2a3bd49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java @@ -15,7 +15,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 5663ba0..e7dcb8b 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; -import com.casic.missiles.model.customer.CustomerSampleInfo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -65,18 +64,18 @@ private String certificationCompanyEmail; /** - * 接收人 + * 收发员 */ - @ApiModelProperty(value = "接收人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") @TableField("reciever") private String reciever; /** - * 接收人电话/手机 + * 签收人 */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; + @ApiModelProperty(value = "签收人", dataType = "String") + @TableField("signee") + private String signee; /** * 证书单位地址 @@ -151,23 +150,23 @@ /** * 送检人签名文件,minio存储文件名(为空时打印签字) */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") + @TableField("reciever_sign_file") + private String recieverSignFile; /** * 送检人签字时间 */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + @TableField("reciever_sign_time") + private String recieverSignTime; /** * 接收人签名文件,minio存储文件名(系统签名模块获取) */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") - private String recieverSignFile; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + @TableField("signee_sign_file") + private String signeeSignFile; /** * 备注 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java index 440d296..15c56b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java @@ -130,7 +130,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方联系方式(固话)", dataType = "String") @@ -162,6 +162,12 @@ @ApiModelProperty(value = "创建人", dataType = "String") private Long createUser; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + private String createTime; private String updateTime; 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 c531052..9381bc3 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 @@ -36,6 +36,17 @@ @TableField("sample_id") private Long sampleId; + @TableField("sample_name") + private String sampleName; + + @TableField("sample_model") + private String sampleModel; + + @TableField("manufacturing_no") + private String manufacturingNo; + + @TableField("appearance_status") + private String appearanceStatus; /** * 交接单id @@ -55,6 +66,9 @@ @TableField("remark") private String remark; + @TableField("interchange_remark") + private String interchangeRemark; + /** * 样品在本次委托中的检定项目 */ 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 c7ae4d4..e1cddfb 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; -import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NoArgsConstructor; @@ -27,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -81,7 +80,6 @@ @ApiModelProperty(value = "接收时间", dataType = "String") private String deliverTime; - @ApiModelProperty(value = " 检定方式", dataType = "String") @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE) private String measureType; @@ -149,6 +147,12 @@ @ApiModelProperty(value = "送检人联系方式", dataType = "String") private String delivererTel; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @TableField(exist = false) @ApiModelProperty(value = "委托方地址", dataType = "String") private String customerAddress; 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 ca6cd6f..4961c24 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,5 +1,6 @@ package com.casic.missiles.service.Impl.business; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -9,7 +10,10 @@ 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.*; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; @@ -20,17 +24,21 @@ import com.casic.missiles.model.business.BusinessInterchange; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import com.casic.missiles.service.business.IBusinessInterchangeService; -import com.casic.missiles.utils.DictCodeUtils; +import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; import java.util.List; +import static com.casic.missiles.enums.business.FilePrintTypeEnum.SAMPLE_INTERCHANGE; + /** *

* 业务管理-设备交接单 服务实现类 @@ -39,6 +47,7 @@ * @author cz * @since 2023-02-02 */ +@Slf4j @Service @AllArgsConstructor public class BusinessInterchangeServiceImpl extends ServiceImpl implements IBusinessInterchangeService { @@ -46,12 +55,18 @@ private final IBaseExportService iBaseExportService; private final BusinessOrderSampleRelationMapper sampleRelationMapper; - /** - * 送检人查询条件不在设备交接单中,需要联查才可以实现 - */ @Override - public Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception { - page.setRecords(this.baseMapper.selectInterchangeListPage(page, request)); + public Page exchangeListPage(Page page, InterchangeListRequest request) { + List interchangeList = this.baseMapper.selectInterchangeListPage(page, request); + if (!CollectionUtils.isEmpty(interchangeList)) { + for (InterchangeListResponse interchange : interchangeList) { + //样品数量 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("interchange_id", interchange.getId()); + interchange.setSampleAmount(sampleRelationMapper.selectCount(wrapper)); + } + } + page.setRecords(interchangeList); return page; } @@ -59,13 +74,14 @@ public BusinessInterchangeDetailResponse exchangeDetail(Long id) { BusinessInterchangeDetailResponse businessExchange = this.baseMapper.getInfoById(id); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("order_id", businessExchange.getOrderId()); + queryWrapper.eq("interchange_id", id); List orderSampleList = sampleRelationMapper.selectList(queryWrapper); - List customerSampleList = new ArrayList<>(); - for (BusinessOrderSampleRelation businessOrderSampleRelation : orderSampleList) { - CustomerSampleListVO customerSampleListVO = sampleRelationMapper.getInterChangeSampleList(businessOrderSampleRelation.getOrderId(), businessOrderSampleRelation.getSampleId()); - customerSampleList.add(customerSampleListVO); - } + List customerSampleList = ConvertUtils.sourceToTarget(orderSampleList, CustomerSampleListVO.class); +// List customerSampleList = new ArrayList<>(); +// for (BusinessOrderSampleRelation businessOrderSampleRelation : orderSampleList) { +// CustomerSampleListVO customerSampleListVO = sampleRelationMapper.getInterChangeSampleList(businessOrderSampleRelation.getOrderId(), businessOrderSampleRelation.getSampleId()); +// customerSampleList.add(customerSampleListVO); +// } businessExchange.setCustomerSampleList(customerSampleList); return businessExchange; } @@ -82,13 +98,22 @@ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } - /** - * 更新只是交接单的变更,没有任何其他单位的变化 - */ @Override + @Transactional public ReturnDTO updateExchange(BusinessInterchange businessInterchange) { int updateFlag = this.baseMapper.updateById(businessInterchange); if (updateFlag > 0) { + //先删除,再新增 + if (!CollectionUtils.isEmpty(businessInterchange.getCustomerSampleList())) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("interchange_id", businessInterchange.getId()); + BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); + businessOrderSampleRelation.setInterchangeId((long) 0); + sampleRelationMapper.update(businessOrderSampleRelation, wrapper); + for (CustomerSampleListVO sampleInfo : businessInterchange.getCustomerSampleList()) { + sampleStatusUpdator(sampleInfo, businessInterchange.getId()); + } + } return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -137,6 +162,25 @@ } } + @Override + public void formExport(Long id, HttpServletResponse response) { + BusinessInterchangeDetailResponse interchangeDetail = this.exchangeDetail(id); + PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); + try { + printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customObject(interchangeDetail) + .prefixType(SAMPLE_INTERCHANGE) + .pdf(false) + .response(response) + //文件自定义命名 委托方名称+委托单编号 + .customFileName(interchangeDetail.getCustomerName() + interchangeDetail.getOrderNo()) + .build()); + } catch (Exception ex) { + log.error("交接单表单导出/打印异常,表单信息:{},异常信息:{}", JSONObject.toJSON(interchangeDetail), ex); + } + } + private void initFlushEmpty(InterchangeListRequest request) { request.setEndTime(null); @@ -144,7 +188,6 @@ request.setCustomerNo(null); request.setCustomerName(null); request.setDeliverer(null); - request.setReciever(null); request.setStartTime(null); } @@ -160,7 +203,7 @@ QueryWrapper orderSampleWrapper = new QueryWrapper<>(); orderSampleWrapper.eq("interchange_id", interChangeId); BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); - businessOrderSampleRelation.setInterchangeId(null); + businessOrderSampleRelation.setInterchangeId((long) 0); return sampleRelationMapper.update(businessOrderSampleRelation, orderSampleWrapper); } @@ -170,6 +213,11 @@ orderSampleWrapper.eq("sample_id", sampleInfo.getSampleId()); BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setInterchangeId(interChangeId); + businessOrderSampleRelation.setSampleName(sampleInfo.getSampleName()); + businessOrderSampleRelation.setSampleModel(sampleInfo.getSampleModel()); + businessOrderSampleRelation.setManufacturingNo(sampleInfo.getManufacturingNo()); + businessOrderSampleRelation.setAppearanceStatus(sampleInfo.getAppearanceStatus()); + businessOrderSampleRelation.setInterchangeRemark(sampleInfo.getInterchangeRemark()); return sampleRelationMapper.update(businessOrderSampleRelation, orderSampleWrapper); } 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 9317967..50b014b 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 @@ -44,14 +44,9 @@ import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; -import static com.casic.missiles.enums.business.FilePrintTypeEnum.CALIBRATION_CERTIFICATE; - /** *

* 业务管理-委托书 服务实现类 @@ -263,14 +258,19 @@ } @Override - public void formExport(Long id, HttpServletResponse response) { + public void formExport(Long id, int excel, HttpServletResponse response) { BusinessOrder businessOrder = this.orderDetail(id); if (Objects.nonNull(businessOrder)) { PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); try { DictCodeUtils.convertDictCodeToName(businessOrder); + Map map = new HashMap<>(); + if (Objects.nonNull(excel) && 1 == excel) { + map.put("excel", "1"); + } printFileRegister.registerPrintFile( RegisterCustomParameters.builder() + .customParam(map) .customObject(businessOrder) .prefixType(businessOrder.getOrderTypeName()) .pdf(false) 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java index 4ee9515..778b1b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java @@ -101,7 +101,7 @@ private Long orderId; /** - * 委托方代码 + * 委托方编号 */ @TableField(exist = false) private String customerNo; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java index 6861a6c..783f97e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java @@ -74,7 +74,7 @@ @TableField("executive_address") private String executiveAddress; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 cd29832..91ce535 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 @@ -22,7 +22,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 0dc9233..53316ec 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 @@ -50,8 +50,8 @@ @ApiModelProperty(value = "生产厂家", dataType = "String") private String manufacturer; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @TableField(exist = false) @@ -90,4 +90,10 @@ @ExcelProperty(value = "备注", order = 12) private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java index 099ad47..000c492 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java @@ -21,15 +21,18 @@ private String sampleName; @ApiModelProperty(value = "样品型号", dataType = "String") private String sampleModel; - @ApiModelProperty(value = "出厂编号", dataType = "String") + @ApiModelProperty(value = "出厂编号/仪器编号", dataType = "String") private String manufacturingNo; + @ApiModelProperty(value = "外观状态", dataType = "String") + private String appearanceStatus; @ApiModelProperty(value = "是否存库", dataType = "Integer") private Integer isExistSample; @ApiModelProperty(value = "附件说明", dataType = "String") private String appendixDescn; - @ApiModelProperty(value = "检定要求", dataType = "Integer") + @ApiModelProperty(value = "检定要求", dataType = "String") private String measureContent; - @ApiModelProperty(value = "外观", dataType = "String") - private String remark; + @ApiModelProperty(value = "备注", dataType = "String") + private String interchangeRemark; + private int seq; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java index 7b071a0..61704b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java @@ -18,7 +18,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerId; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java index 5ce6b3e..ed73682 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java @@ -8,7 +8,7 @@ @ApiModel("多场景样品列表") public class MultiItemSampleListResponse { - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java index b7ead9a..2a3bd49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java @@ -15,7 +15,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 5663ba0..e7dcb8b 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; -import com.casic.missiles.model.customer.CustomerSampleInfo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -65,18 +64,18 @@ private String certificationCompanyEmail; /** - * 接收人 + * 收发员 */ - @ApiModelProperty(value = "接收人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") @TableField("reciever") private String reciever; /** - * 接收人电话/手机 + * 签收人 */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; + @ApiModelProperty(value = "签收人", dataType = "String") + @TableField("signee") + private String signee; /** * 证书单位地址 @@ -151,23 +150,23 @@ /** * 送检人签名文件,minio存储文件名(为空时打印签字) */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") + @TableField("reciever_sign_file") + private String recieverSignFile; /** * 送检人签字时间 */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + @TableField("reciever_sign_time") + private String recieverSignTime; /** * 接收人签名文件,minio存储文件名(系统签名模块获取) */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") - private String recieverSignFile; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + @TableField("signee_sign_file") + private String signeeSignFile; /** * 备注 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java index 440d296..15c56b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java @@ -130,7 +130,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方联系方式(固话)", dataType = "String") @@ -162,6 +162,12 @@ @ApiModelProperty(value = "创建人", dataType = "String") private Long createUser; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + private String createTime; private String updateTime; 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 c531052..9381bc3 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 @@ -36,6 +36,17 @@ @TableField("sample_id") private Long sampleId; + @TableField("sample_name") + private String sampleName; + + @TableField("sample_model") + private String sampleModel; + + @TableField("manufacturing_no") + private String manufacturingNo; + + @TableField("appearance_status") + private String appearanceStatus; /** * 交接单id @@ -55,6 +66,9 @@ @TableField("remark") private String remark; + @TableField("interchange_remark") + private String interchangeRemark; + /** * 样品在本次委托中的检定项目 */ 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 c7ae4d4..e1cddfb 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; -import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NoArgsConstructor; @@ -27,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -81,7 +80,6 @@ @ApiModelProperty(value = "接收时间", dataType = "String") private String deliverTime; - @ApiModelProperty(value = " 检定方式", dataType = "String") @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE) private String measureType; @@ -149,6 +147,12 @@ @ApiModelProperty(value = "送检人联系方式", dataType = "String") private String delivererTel; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @TableField(exist = false) @ApiModelProperty(value = "委托方地址", dataType = "String") private String customerAddress; 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 ca6cd6f..4961c24 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,5 +1,6 @@ package com.casic.missiles.service.Impl.business; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -9,7 +10,10 @@ 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.*; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; @@ -20,17 +24,21 @@ import com.casic.missiles.model.business.BusinessInterchange; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import com.casic.missiles.service.business.IBusinessInterchangeService; -import com.casic.missiles.utils.DictCodeUtils; +import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; import java.util.List; +import static com.casic.missiles.enums.business.FilePrintTypeEnum.SAMPLE_INTERCHANGE; + /** *

* 业务管理-设备交接单 服务实现类 @@ -39,6 +47,7 @@ * @author cz * @since 2023-02-02 */ +@Slf4j @Service @AllArgsConstructor public class BusinessInterchangeServiceImpl extends ServiceImpl implements IBusinessInterchangeService { @@ -46,12 +55,18 @@ private final IBaseExportService iBaseExportService; private final BusinessOrderSampleRelationMapper sampleRelationMapper; - /** - * 送检人查询条件不在设备交接单中,需要联查才可以实现 - */ @Override - public Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception { - page.setRecords(this.baseMapper.selectInterchangeListPage(page, request)); + public Page exchangeListPage(Page page, InterchangeListRequest request) { + List interchangeList = this.baseMapper.selectInterchangeListPage(page, request); + if (!CollectionUtils.isEmpty(interchangeList)) { + for (InterchangeListResponse interchange : interchangeList) { + //样品数量 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("interchange_id", interchange.getId()); + interchange.setSampleAmount(sampleRelationMapper.selectCount(wrapper)); + } + } + page.setRecords(interchangeList); return page; } @@ -59,13 +74,14 @@ public BusinessInterchangeDetailResponse exchangeDetail(Long id) { BusinessInterchangeDetailResponse businessExchange = this.baseMapper.getInfoById(id); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("order_id", businessExchange.getOrderId()); + queryWrapper.eq("interchange_id", id); List orderSampleList = sampleRelationMapper.selectList(queryWrapper); - List customerSampleList = new ArrayList<>(); - for (BusinessOrderSampleRelation businessOrderSampleRelation : orderSampleList) { - CustomerSampleListVO customerSampleListVO = sampleRelationMapper.getInterChangeSampleList(businessOrderSampleRelation.getOrderId(), businessOrderSampleRelation.getSampleId()); - customerSampleList.add(customerSampleListVO); - } + List customerSampleList = ConvertUtils.sourceToTarget(orderSampleList, CustomerSampleListVO.class); +// List customerSampleList = new ArrayList<>(); +// for (BusinessOrderSampleRelation businessOrderSampleRelation : orderSampleList) { +// CustomerSampleListVO customerSampleListVO = sampleRelationMapper.getInterChangeSampleList(businessOrderSampleRelation.getOrderId(), businessOrderSampleRelation.getSampleId()); +// customerSampleList.add(customerSampleListVO); +// } businessExchange.setCustomerSampleList(customerSampleList); return businessExchange; } @@ -82,13 +98,22 @@ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } - /** - * 更新只是交接单的变更,没有任何其他单位的变化 - */ @Override + @Transactional public ReturnDTO updateExchange(BusinessInterchange businessInterchange) { int updateFlag = this.baseMapper.updateById(businessInterchange); if (updateFlag > 0) { + //先删除,再新增 + if (!CollectionUtils.isEmpty(businessInterchange.getCustomerSampleList())) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("interchange_id", businessInterchange.getId()); + BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); + businessOrderSampleRelation.setInterchangeId((long) 0); + sampleRelationMapper.update(businessOrderSampleRelation, wrapper); + for (CustomerSampleListVO sampleInfo : businessInterchange.getCustomerSampleList()) { + sampleStatusUpdator(sampleInfo, businessInterchange.getId()); + } + } return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -137,6 +162,25 @@ } } + @Override + public void formExport(Long id, HttpServletResponse response) { + BusinessInterchangeDetailResponse interchangeDetail = this.exchangeDetail(id); + PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); + try { + printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customObject(interchangeDetail) + .prefixType(SAMPLE_INTERCHANGE) + .pdf(false) + .response(response) + //文件自定义命名 委托方名称+委托单编号 + .customFileName(interchangeDetail.getCustomerName() + interchangeDetail.getOrderNo()) + .build()); + } catch (Exception ex) { + log.error("交接单表单导出/打印异常,表单信息:{},异常信息:{}", JSONObject.toJSON(interchangeDetail), ex); + } + } + private void initFlushEmpty(InterchangeListRequest request) { request.setEndTime(null); @@ -144,7 +188,6 @@ request.setCustomerNo(null); request.setCustomerName(null); request.setDeliverer(null); - request.setReciever(null); request.setStartTime(null); } @@ -160,7 +203,7 @@ QueryWrapper orderSampleWrapper = new QueryWrapper<>(); orderSampleWrapper.eq("interchange_id", interChangeId); BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); - businessOrderSampleRelation.setInterchangeId(null); + businessOrderSampleRelation.setInterchangeId((long) 0); return sampleRelationMapper.update(businessOrderSampleRelation, orderSampleWrapper); } @@ -170,6 +213,11 @@ orderSampleWrapper.eq("sample_id", sampleInfo.getSampleId()); BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setInterchangeId(interChangeId); + businessOrderSampleRelation.setSampleName(sampleInfo.getSampleName()); + businessOrderSampleRelation.setSampleModel(sampleInfo.getSampleModel()); + businessOrderSampleRelation.setManufacturingNo(sampleInfo.getManufacturingNo()); + businessOrderSampleRelation.setAppearanceStatus(sampleInfo.getAppearanceStatus()); + businessOrderSampleRelation.setInterchangeRemark(sampleInfo.getInterchangeRemark()); return sampleRelationMapper.update(businessOrderSampleRelation, orderSampleWrapper); } 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 9317967..50b014b 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 @@ -44,14 +44,9 @@ import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; -import static com.casic.missiles.enums.business.FilePrintTypeEnum.CALIBRATION_CERTIFICATE; - /** *

* 业务管理-委托书 服务实现类 @@ -263,14 +258,19 @@ } @Override - public void formExport(Long id, HttpServletResponse response) { + public void formExport(Long id, int excel, HttpServletResponse response) { BusinessOrder businessOrder = this.orderDetail(id); if (Objects.nonNull(businessOrder)) { PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); try { DictCodeUtils.convertDictCodeToName(businessOrder); + Map map = new HashMap<>(); + if (Objects.nonNull(excel) && 1 == excel) { + map.put("excel", "1"); + } printFileRegister.registerPrintFile( RegisterCustomParameters.builder() + .customParam(map) .customObject(businessOrder) .prefixType(businessOrder.getOrderTypeName()) .pdf(false) diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java index 3fa16c6..107adac 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java @@ -35,8 +35,8 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; -import org.flowable.engine.TaskService; import org.flowable.engine.runtime.ProcessInstance; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -66,8 +66,6 @@ @Autowired private ApprovalOperateService approvalOperateService; @Resource - private TaskService taskService; - @Resource private RuntimeService runtimeService; @Override @@ -397,4 +395,81 @@ public List list(List ids) { return this.baseMapper.selectBatchIds(ids); } + + @Override + public Page fileListPage(Page page, FileListRequest request) { + QueryWrapper wrapper = getMeterFileWrapper(request); + Page meterFilePage = meterFileMapper.selectPage(page, wrapper); + meterFilePage.getRecords().stream().forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + return meterFilePage; + } + + @Override + public List fileList(FileListRequest request) { + QueryWrapper wrapper = getMeterFileWrapper(request); + List meterFiles = meterFileMapper.selectList(wrapper); + meterFiles.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + return meterFiles; + } + + @Override + @Transactional + public ReturnDTO addFile(MeterFile file) { + //生成文件编号 + Long maxNo = meterFileMapper.selectMaxFileNo(); + String fileNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.FILE_PREFIX, maxNo); + file.setFileNo(fileNo); + Assert.isFalse(Objects.isNull(ShiroKit.getUser()), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + file.setCreateUserId(ShiroKit.getUser().getId()); //登录者用户id + file.setCreateUser(ShiroKit.getUser().getName()); + int row = meterFileMapper.insert(file); + if (row <= 0) { + return ReturnUtil.failed("文件新建失败"); + } + FileSaveResponse fileSaveResponse = new FileSaveResponse(); + fileSaveResponse.setId(file.getId()); + fileSaveResponse.setFileNo(fileNo); + return ReturnUtil.success(fileSaveResponse); + + } + + @Override + public ReturnDTO fileUpdate(MeterFile file) { + if (meterFileMapper.updateById(file) > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + + @NotNull + private QueryWrapper getMeterFileWrapper(FileListRequest request) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.like(StringUtils.isNotBlank(request.getFileNo()), "file_no", request.getFileNo()); + wrapper.like(StringUtils.isNotBlank(request.getFileName()), "file_name", request.getFileName()); + wrapper.like(StringUtils.isNotBlank(request.getFileCode()), "file_code", request.getFileCode()); + wrapper.like(StringUtils.isNotBlank(request.getFileType()), "file_type", request.getFileType()); + wrapper.like(!Objects.isNull(request.getEffectiveStatus()), "effective_status", request.getEffectiveStatus()); + wrapper.apply(StringUtils.isNotBlank(request.getPublishStartTime()),//apply方法传入参数名不能为空 + "{0} <= DATE_FORMAT(publish_time,'%Y-%m-%d')", request.getPublishStartTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getPublishEndTime()), + "{0} >= DATE_FORMAT(publish_time,'%Y-%m-%d')", request.getPublishEndTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getEffectiveStartTime()), + "{0} <= DATE_FORMAT(effective_time,'%Y-%m-%d')", request.getEffectiveStartTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getEffectiveEndTime()), + "{0} >= DATE_FORMAT(effective_time,'%Y-%m-%d')", request.getEffectiveEndTime().split(" ")[0]); + wrapper.eq("is_del", 0); + wrapper.orderByAsc("effective_status").orderByDesc("create_time"); + return wrapper; + } } 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java index 4ee9515..778b1b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java @@ -101,7 +101,7 @@ private Long orderId; /** - * 委托方代码 + * 委托方编号 */ @TableField(exist = false) private String customerNo; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java index 6861a6c..783f97e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java @@ -74,7 +74,7 @@ @TableField("executive_address") private String executiveAddress; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 cd29832..91ce535 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 @@ -22,7 +22,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 0dc9233..53316ec 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 @@ -50,8 +50,8 @@ @ApiModelProperty(value = "生产厂家", dataType = "String") private String manufacturer; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @TableField(exist = false) @@ -90,4 +90,10 @@ @ExcelProperty(value = "备注", order = 12) private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java index 099ad47..000c492 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java @@ -21,15 +21,18 @@ private String sampleName; @ApiModelProperty(value = "样品型号", dataType = "String") private String sampleModel; - @ApiModelProperty(value = "出厂编号", dataType = "String") + @ApiModelProperty(value = "出厂编号/仪器编号", dataType = "String") private String manufacturingNo; + @ApiModelProperty(value = "外观状态", dataType = "String") + private String appearanceStatus; @ApiModelProperty(value = "是否存库", dataType = "Integer") private Integer isExistSample; @ApiModelProperty(value = "附件说明", dataType = "String") private String appendixDescn; - @ApiModelProperty(value = "检定要求", dataType = "Integer") + @ApiModelProperty(value = "检定要求", dataType = "String") private String measureContent; - @ApiModelProperty(value = "外观", dataType = "String") - private String remark; + @ApiModelProperty(value = "备注", dataType = "String") + private String interchangeRemark; + private int seq; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java index 7b071a0..61704b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java @@ -18,7 +18,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerId; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java index 5ce6b3e..ed73682 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java @@ -8,7 +8,7 @@ @ApiModel("多场景样品列表") public class MultiItemSampleListResponse { - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java index b7ead9a..2a3bd49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java @@ -15,7 +15,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 5663ba0..e7dcb8b 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; -import com.casic.missiles.model.customer.CustomerSampleInfo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -65,18 +64,18 @@ private String certificationCompanyEmail; /** - * 接收人 + * 收发员 */ - @ApiModelProperty(value = "接收人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") @TableField("reciever") private String reciever; /** - * 接收人电话/手机 + * 签收人 */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; + @ApiModelProperty(value = "签收人", dataType = "String") + @TableField("signee") + private String signee; /** * 证书单位地址 @@ -151,23 +150,23 @@ /** * 送检人签名文件,minio存储文件名(为空时打印签字) */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") + @TableField("reciever_sign_file") + private String recieverSignFile; /** * 送检人签字时间 */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + @TableField("reciever_sign_time") + private String recieverSignTime; /** * 接收人签名文件,minio存储文件名(系统签名模块获取) */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") - private String recieverSignFile; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + @TableField("signee_sign_file") + private String signeeSignFile; /** * 备注 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java index 440d296..15c56b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java @@ -130,7 +130,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方联系方式(固话)", dataType = "String") @@ -162,6 +162,12 @@ @ApiModelProperty(value = "创建人", dataType = "String") private Long createUser; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + private String createTime; private String updateTime; 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 c531052..9381bc3 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 @@ -36,6 +36,17 @@ @TableField("sample_id") private Long sampleId; + @TableField("sample_name") + private String sampleName; + + @TableField("sample_model") + private String sampleModel; + + @TableField("manufacturing_no") + private String manufacturingNo; + + @TableField("appearance_status") + private String appearanceStatus; /** * 交接单id @@ -55,6 +66,9 @@ @TableField("remark") private String remark; + @TableField("interchange_remark") + private String interchangeRemark; + /** * 样品在本次委托中的检定项目 */ 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 c7ae4d4..e1cddfb 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; -import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NoArgsConstructor; @@ -27,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -81,7 +80,6 @@ @ApiModelProperty(value = "接收时间", dataType = "String") private String deliverTime; - @ApiModelProperty(value = " 检定方式", dataType = "String") @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE) private String measureType; @@ -149,6 +147,12 @@ @ApiModelProperty(value = "送检人联系方式", dataType = "String") private String delivererTel; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @TableField(exist = false) @ApiModelProperty(value = "委托方地址", dataType = "String") private String customerAddress; 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 ca6cd6f..4961c24 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,5 +1,6 @@ package com.casic.missiles.service.Impl.business; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -9,7 +10,10 @@ 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.*; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; @@ -20,17 +24,21 @@ import com.casic.missiles.model.business.BusinessInterchange; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import com.casic.missiles.service.business.IBusinessInterchangeService; -import com.casic.missiles.utils.DictCodeUtils; +import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; import java.util.List; +import static com.casic.missiles.enums.business.FilePrintTypeEnum.SAMPLE_INTERCHANGE; + /** *

* 业务管理-设备交接单 服务实现类 @@ -39,6 +47,7 @@ * @author cz * @since 2023-02-02 */ +@Slf4j @Service @AllArgsConstructor public class BusinessInterchangeServiceImpl extends ServiceImpl implements IBusinessInterchangeService { @@ -46,12 +55,18 @@ private final IBaseExportService iBaseExportService; private final BusinessOrderSampleRelationMapper sampleRelationMapper; - /** - * 送检人查询条件不在设备交接单中,需要联查才可以实现 - */ @Override - public Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception { - page.setRecords(this.baseMapper.selectInterchangeListPage(page, request)); + public Page exchangeListPage(Page page, InterchangeListRequest request) { + List interchangeList = this.baseMapper.selectInterchangeListPage(page, request); + if (!CollectionUtils.isEmpty(interchangeList)) { + for (InterchangeListResponse interchange : interchangeList) { + //样品数量 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("interchange_id", interchange.getId()); + interchange.setSampleAmount(sampleRelationMapper.selectCount(wrapper)); + } + } + page.setRecords(interchangeList); return page; } @@ -59,13 +74,14 @@ public BusinessInterchangeDetailResponse exchangeDetail(Long id) { BusinessInterchangeDetailResponse businessExchange = this.baseMapper.getInfoById(id); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("order_id", businessExchange.getOrderId()); + queryWrapper.eq("interchange_id", id); List orderSampleList = sampleRelationMapper.selectList(queryWrapper); - List customerSampleList = new ArrayList<>(); - for (BusinessOrderSampleRelation businessOrderSampleRelation : orderSampleList) { - CustomerSampleListVO customerSampleListVO = sampleRelationMapper.getInterChangeSampleList(businessOrderSampleRelation.getOrderId(), businessOrderSampleRelation.getSampleId()); - customerSampleList.add(customerSampleListVO); - } + List customerSampleList = ConvertUtils.sourceToTarget(orderSampleList, CustomerSampleListVO.class); +// List customerSampleList = new ArrayList<>(); +// for (BusinessOrderSampleRelation businessOrderSampleRelation : orderSampleList) { +// CustomerSampleListVO customerSampleListVO = sampleRelationMapper.getInterChangeSampleList(businessOrderSampleRelation.getOrderId(), businessOrderSampleRelation.getSampleId()); +// customerSampleList.add(customerSampleListVO); +// } businessExchange.setCustomerSampleList(customerSampleList); return businessExchange; } @@ -82,13 +98,22 @@ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } - /** - * 更新只是交接单的变更,没有任何其他单位的变化 - */ @Override + @Transactional public ReturnDTO updateExchange(BusinessInterchange businessInterchange) { int updateFlag = this.baseMapper.updateById(businessInterchange); if (updateFlag > 0) { + //先删除,再新增 + if (!CollectionUtils.isEmpty(businessInterchange.getCustomerSampleList())) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("interchange_id", businessInterchange.getId()); + BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); + businessOrderSampleRelation.setInterchangeId((long) 0); + sampleRelationMapper.update(businessOrderSampleRelation, wrapper); + for (CustomerSampleListVO sampleInfo : businessInterchange.getCustomerSampleList()) { + sampleStatusUpdator(sampleInfo, businessInterchange.getId()); + } + } return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -137,6 +162,25 @@ } } + @Override + public void formExport(Long id, HttpServletResponse response) { + BusinessInterchangeDetailResponse interchangeDetail = this.exchangeDetail(id); + PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); + try { + printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customObject(interchangeDetail) + .prefixType(SAMPLE_INTERCHANGE) + .pdf(false) + .response(response) + //文件自定义命名 委托方名称+委托单编号 + .customFileName(interchangeDetail.getCustomerName() + interchangeDetail.getOrderNo()) + .build()); + } catch (Exception ex) { + log.error("交接单表单导出/打印异常,表单信息:{},异常信息:{}", JSONObject.toJSON(interchangeDetail), ex); + } + } + private void initFlushEmpty(InterchangeListRequest request) { request.setEndTime(null); @@ -144,7 +188,6 @@ request.setCustomerNo(null); request.setCustomerName(null); request.setDeliverer(null); - request.setReciever(null); request.setStartTime(null); } @@ -160,7 +203,7 @@ QueryWrapper orderSampleWrapper = new QueryWrapper<>(); orderSampleWrapper.eq("interchange_id", interChangeId); BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); - businessOrderSampleRelation.setInterchangeId(null); + businessOrderSampleRelation.setInterchangeId((long) 0); return sampleRelationMapper.update(businessOrderSampleRelation, orderSampleWrapper); } @@ -170,6 +213,11 @@ orderSampleWrapper.eq("sample_id", sampleInfo.getSampleId()); BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setInterchangeId(interChangeId); + businessOrderSampleRelation.setSampleName(sampleInfo.getSampleName()); + businessOrderSampleRelation.setSampleModel(sampleInfo.getSampleModel()); + businessOrderSampleRelation.setManufacturingNo(sampleInfo.getManufacturingNo()); + businessOrderSampleRelation.setAppearanceStatus(sampleInfo.getAppearanceStatus()); + businessOrderSampleRelation.setInterchangeRemark(sampleInfo.getInterchangeRemark()); return sampleRelationMapper.update(businessOrderSampleRelation, orderSampleWrapper); } 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 9317967..50b014b 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 @@ -44,14 +44,9 @@ import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; -import static com.casic.missiles.enums.business.FilePrintTypeEnum.CALIBRATION_CERTIFICATE; - /** *

* 业务管理-委托书 服务实现类 @@ -263,14 +258,19 @@ } @Override - public void formExport(Long id, HttpServletResponse response) { + public void formExport(Long id, int excel, HttpServletResponse response) { BusinessOrder businessOrder = this.orderDetail(id); if (Objects.nonNull(businessOrder)) { PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); try { DictCodeUtils.convertDictCodeToName(businessOrder); + Map map = new HashMap<>(); + if (Objects.nonNull(excel) && 1 == excel) { + map.put("excel", "1"); + } printFileRegister.registerPrintFile( RegisterCustomParameters.builder() + .customParam(map) .customObject(businessOrder) .prefixType(businessOrder.getOrderTypeName()) .pdf(false) diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java index 3fa16c6..107adac 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java @@ -35,8 +35,8 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; -import org.flowable.engine.TaskService; import org.flowable.engine.runtime.ProcessInstance; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -66,8 +66,6 @@ @Autowired private ApprovalOperateService approvalOperateService; @Resource - private TaskService taskService; - @Resource private RuntimeService runtimeService; @Override @@ -397,4 +395,81 @@ public List list(List ids) { return this.baseMapper.selectBatchIds(ids); } + + @Override + public Page fileListPage(Page page, FileListRequest request) { + QueryWrapper wrapper = getMeterFileWrapper(request); + Page meterFilePage = meterFileMapper.selectPage(page, wrapper); + meterFilePage.getRecords().stream().forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + return meterFilePage; + } + + @Override + public List fileList(FileListRequest request) { + QueryWrapper wrapper = getMeterFileWrapper(request); + List meterFiles = meterFileMapper.selectList(wrapper); + meterFiles.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + return meterFiles; + } + + @Override + @Transactional + public ReturnDTO addFile(MeterFile file) { + //生成文件编号 + Long maxNo = meterFileMapper.selectMaxFileNo(); + String fileNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.FILE_PREFIX, maxNo); + file.setFileNo(fileNo); + Assert.isFalse(Objects.isNull(ShiroKit.getUser()), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + file.setCreateUserId(ShiroKit.getUser().getId()); //登录者用户id + file.setCreateUser(ShiroKit.getUser().getName()); + int row = meterFileMapper.insert(file); + if (row <= 0) { + return ReturnUtil.failed("文件新建失败"); + } + FileSaveResponse fileSaveResponse = new FileSaveResponse(); + fileSaveResponse.setId(file.getId()); + fileSaveResponse.setFileNo(fileNo); + return ReturnUtil.success(fileSaveResponse); + + } + + @Override + public ReturnDTO fileUpdate(MeterFile file) { + if (meterFileMapper.updateById(file) > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + + @NotNull + private QueryWrapper getMeterFileWrapper(FileListRequest request) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.like(StringUtils.isNotBlank(request.getFileNo()), "file_no", request.getFileNo()); + wrapper.like(StringUtils.isNotBlank(request.getFileName()), "file_name", request.getFileName()); + wrapper.like(StringUtils.isNotBlank(request.getFileCode()), "file_code", request.getFileCode()); + wrapper.like(StringUtils.isNotBlank(request.getFileType()), "file_type", request.getFileType()); + wrapper.like(!Objects.isNull(request.getEffectiveStatus()), "effective_status", request.getEffectiveStatus()); + wrapper.apply(StringUtils.isNotBlank(request.getPublishStartTime()),//apply方法传入参数名不能为空 + "{0} <= DATE_FORMAT(publish_time,'%Y-%m-%d')", request.getPublishStartTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getPublishEndTime()), + "{0} >= DATE_FORMAT(publish_time,'%Y-%m-%d')", request.getPublishEndTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getEffectiveStartTime()), + "{0} <= DATE_FORMAT(effective_time,'%Y-%m-%d')", request.getEffectiveStartTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getEffectiveEndTime()), + "{0} >= DATE_FORMAT(effective_time,'%Y-%m-%d')", request.getEffectiveEndTime().split(" ")[0]); + wrapper.eq("is_del", 0); + wrapper.orderByAsc("effective_status").orderByDesc("create_time"); + return wrapper; + } } 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 97d106b..27ccf14 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 @@ -3,11 +3,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; /** *

@@ -19,7 +20,7 @@ */ public interface IBusinessInterchangeService extends IService { - Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception; + Page exchangeListPage(Page page, InterchangeListRequest request); BusinessInterchangeDetailResponse exchangeDetail(Long id); @@ -31,4 +32,5 @@ void exportExchange(InterchangeListRequest request, HttpServletResponse response); + void formExport(Long id, HttpServletResponse response); } 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java index 4ee9515..778b1b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java @@ -101,7 +101,7 @@ private Long orderId; /** - * 委托方代码 + * 委托方编号 */ @TableField(exist = false) private String customerNo; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java index 6861a6c..783f97e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java @@ -74,7 +74,7 @@ @TableField("executive_address") private String executiveAddress; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 cd29832..91ce535 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 @@ -22,7 +22,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 0dc9233..53316ec 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 @@ -50,8 +50,8 @@ @ApiModelProperty(value = "生产厂家", dataType = "String") private String manufacturer; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @TableField(exist = false) @@ -90,4 +90,10 @@ @ExcelProperty(value = "备注", order = 12) private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java index 099ad47..000c492 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java @@ -21,15 +21,18 @@ private String sampleName; @ApiModelProperty(value = "样品型号", dataType = "String") private String sampleModel; - @ApiModelProperty(value = "出厂编号", dataType = "String") + @ApiModelProperty(value = "出厂编号/仪器编号", dataType = "String") private String manufacturingNo; + @ApiModelProperty(value = "外观状态", dataType = "String") + private String appearanceStatus; @ApiModelProperty(value = "是否存库", dataType = "Integer") private Integer isExistSample; @ApiModelProperty(value = "附件说明", dataType = "String") private String appendixDescn; - @ApiModelProperty(value = "检定要求", dataType = "Integer") + @ApiModelProperty(value = "检定要求", dataType = "String") private String measureContent; - @ApiModelProperty(value = "外观", dataType = "String") - private String remark; + @ApiModelProperty(value = "备注", dataType = "String") + private String interchangeRemark; + private int seq; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java index 7b071a0..61704b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java @@ -18,7 +18,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerId; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java index 5ce6b3e..ed73682 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java @@ -8,7 +8,7 @@ @ApiModel("多场景样品列表") public class MultiItemSampleListResponse { - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java index b7ead9a..2a3bd49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java @@ -15,7 +15,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 5663ba0..e7dcb8b 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; -import com.casic.missiles.model.customer.CustomerSampleInfo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -65,18 +64,18 @@ private String certificationCompanyEmail; /** - * 接收人 + * 收发员 */ - @ApiModelProperty(value = "接收人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") @TableField("reciever") private String reciever; /** - * 接收人电话/手机 + * 签收人 */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; + @ApiModelProperty(value = "签收人", dataType = "String") + @TableField("signee") + private String signee; /** * 证书单位地址 @@ -151,23 +150,23 @@ /** * 送检人签名文件,minio存储文件名(为空时打印签字) */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") + @TableField("reciever_sign_file") + private String recieverSignFile; /** * 送检人签字时间 */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + @TableField("reciever_sign_time") + private String recieverSignTime; /** * 接收人签名文件,minio存储文件名(系统签名模块获取) */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") - private String recieverSignFile; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + @TableField("signee_sign_file") + private String signeeSignFile; /** * 备注 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java index 440d296..15c56b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java @@ -130,7 +130,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方联系方式(固话)", dataType = "String") @@ -162,6 +162,12 @@ @ApiModelProperty(value = "创建人", dataType = "String") private Long createUser; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + private String createTime; private String updateTime; 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 c531052..9381bc3 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 @@ -36,6 +36,17 @@ @TableField("sample_id") private Long sampleId; + @TableField("sample_name") + private String sampleName; + + @TableField("sample_model") + private String sampleModel; + + @TableField("manufacturing_no") + private String manufacturingNo; + + @TableField("appearance_status") + private String appearanceStatus; /** * 交接单id @@ -55,6 +66,9 @@ @TableField("remark") private String remark; + @TableField("interchange_remark") + private String interchangeRemark; + /** * 样品在本次委托中的检定项目 */ 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 c7ae4d4..e1cddfb 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; -import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NoArgsConstructor; @@ -27,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -81,7 +80,6 @@ @ApiModelProperty(value = "接收时间", dataType = "String") private String deliverTime; - @ApiModelProperty(value = " 检定方式", dataType = "String") @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE) private String measureType; @@ -149,6 +147,12 @@ @ApiModelProperty(value = "送检人联系方式", dataType = "String") private String delivererTel; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @TableField(exist = false) @ApiModelProperty(value = "委托方地址", dataType = "String") private String customerAddress; 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 ca6cd6f..4961c24 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,5 +1,6 @@ package com.casic.missiles.service.Impl.business; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -9,7 +10,10 @@ 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.*; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; @@ -20,17 +24,21 @@ import com.casic.missiles.model.business.BusinessInterchange; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import com.casic.missiles.service.business.IBusinessInterchangeService; -import com.casic.missiles.utils.DictCodeUtils; +import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; import java.util.List; +import static com.casic.missiles.enums.business.FilePrintTypeEnum.SAMPLE_INTERCHANGE; + /** *

* 业务管理-设备交接单 服务实现类 @@ -39,6 +47,7 @@ * @author cz * @since 2023-02-02 */ +@Slf4j @Service @AllArgsConstructor public class BusinessInterchangeServiceImpl extends ServiceImpl implements IBusinessInterchangeService { @@ -46,12 +55,18 @@ private final IBaseExportService iBaseExportService; private final BusinessOrderSampleRelationMapper sampleRelationMapper; - /** - * 送检人查询条件不在设备交接单中,需要联查才可以实现 - */ @Override - public Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception { - page.setRecords(this.baseMapper.selectInterchangeListPage(page, request)); + public Page exchangeListPage(Page page, InterchangeListRequest request) { + List interchangeList = this.baseMapper.selectInterchangeListPage(page, request); + if (!CollectionUtils.isEmpty(interchangeList)) { + for (InterchangeListResponse interchange : interchangeList) { + //样品数量 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("interchange_id", interchange.getId()); + interchange.setSampleAmount(sampleRelationMapper.selectCount(wrapper)); + } + } + page.setRecords(interchangeList); return page; } @@ -59,13 +74,14 @@ public BusinessInterchangeDetailResponse exchangeDetail(Long id) { BusinessInterchangeDetailResponse businessExchange = this.baseMapper.getInfoById(id); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("order_id", businessExchange.getOrderId()); + queryWrapper.eq("interchange_id", id); List orderSampleList = sampleRelationMapper.selectList(queryWrapper); - List customerSampleList = new ArrayList<>(); - for (BusinessOrderSampleRelation businessOrderSampleRelation : orderSampleList) { - CustomerSampleListVO customerSampleListVO = sampleRelationMapper.getInterChangeSampleList(businessOrderSampleRelation.getOrderId(), businessOrderSampleRelation.getSampleId()); - customerSampleList.add(customerSampleListVO); - } + List customerSampleList = ConvertUtils.sourceToTarget(orderSampleList, CustomerSampleListVO.class); +// List customerSampleList = new ArrayList<>(); +// for (BusinessOrderSampleRelation businessOrderSampleRelation : orderSampleList) { +// CustomerSampleListVO customerSampleListVO = sampleRelationMapper.getInterChangeSampleList(businessOrderSampleRelation.getOrderId(), businessOrderSampleRelation.getSampleId()); +// customerSampleList.add(customerSampleListVO); +// } businessExchange.setCustomerSampleList(customerSampleList); return businessExchange; } @@ -82,13 +98,22 @@ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } - /** - * 更新只是交接单的变更,没有任何其他单位的变化 - */ @Override + @Transactional public ReturnDTO updateExchange(BusinessInterchange businessInterchange) { int updateFlag = this.baseMapper.updateById(businessInterchange); if (updateFlag > 0) { + //先删除,再新增 + if (!CollectionUtils.isEmpty(businessInterchange.getCustomerSampleList())) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("interchange_id", businessInterchange.getId()); + BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); + businessOrderSampleRelation.setInterchangeId((long) 0); + sampleRelationMapper.update(businessOrderSampleRelation, wrapper); + for (CustomerSampleListVO sampleInfo : businessInterchange.getCustomerSampleList()) { + sampleStatusUpdator(sampleInfo, businessInterchange.getId()); + } + } return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -137,6 +162,25 @@ } } + @Override + public void formExport(Long id, HttpServletResponse response) { + BusinessInterchangeDetailResponse interchangeDetail = this.exchangeDetail(id); + PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); + try { + printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customObject(interchangeDetail) + .prefixType(SAMPLE_INTERCHANGE) + .pdf(false) + .response(response) + //文件自定义命名 委托方名称+委托单编号 + .customFileName(interchangeDetail.getCustomerName() + interchangeDetail.getOrderNo()) + .build()); + } catch (Exception ex) { + log.error("交接单表单导出/打印异常,表单信息:{},异常信息:{}", JSONObject.toJSON(interchangeDetail), ex); + } + } + private void initFlushEmpty(InterchangeListRequest request) { request.setEndTime(null); @@ -144,7 +188,6 @@ request.setCustomerNo(null); request.setCustomerName(null); request.setDeliverer(null); - request.setReciever(null); request.setStartTime(null); } @@ -160,7 +203,7 @@ QueryWrapper orderSampleWrapper = new QueryWrapper<>(); orderSampleWrapper.eq("interchange_id", interChangeId); BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); - businessOrderSampleRelation.setInterchangeId(null); + businessOrderSampleRelation.setInterchangeId((long) 0); return sampleRelationMapper.update(businessOrderSampleRelation, orderSampleWrapper); } @@ -170,6 +213,11 @@ orderSampleWrapper.eq("sample_id", sampleInfo.getSampleId()); BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setInterchangeId(interChangeId); + businessOrderSampleRelation.setSampleName(sampleInfo.getSampleName()); + businessOrderSampleRelation.setSampleModel(sampleInfo.getSampleModel()); + businessOrderSampleRelation.setManufacturingNo(sampleInfo.getManufacturingNo()); + businessOrderSampleRelation.setAppearanceStatus(sampleInfo.getAppearanceStatus()); + businessOrderSampleRelation.setInterchangeRemark(sampleInfo.getInterchangeRemark()); return sampleRelationMapper.update(businessOrderSampleRelation, orderSampleWrapper); } 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 9317967..50b014b 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 @@ -44,14 +44,9 @@ import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; -import static com.casic.missiles.enums.business.FilePrintTypeEnum.CALIBRATION_CERTIFICATE; - /** *

* 业务管理-委托书 服务实现类 @@ -263,14 +258,19 @@ } @Override - public void formExport(Long id, HttpServletResponse response) { + public void formExport(Long id, int excel, HttpServletResponse response) { BusinessOrder businessOrder = this.orderDetail(id); if (Objects.nonNull(businessOrder)) { PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); try { DictCodeUtils.convertDictCodeToName(businessOrder); + Map map = new HashMap<>(); + if (Objects.nonNull(excel) && 1 == excel) { + map.put("excel", "1"); + } printFileRegister.registerPrintFile( RegisterCustomParameters.builder() + .customParam(map) .customObject(businessOrder) .prefixType(businessOrder.getOrderTypeName()) .pdf(false) diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java index 3fa16c6..107adac 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java @@ -35,8 +35,8 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; -import org.flowable.engine.TaskService; import org.flowable.engine.runtime.ProcessInstance; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -66,8 +66,6 @@ @Autowired private ApprovalOperateService approvalOperateService; @Resource - private TaskService taskService; - @Resource private RuntimeService runtimeService; @Override @@ -397,4 +395,81 @@ public List list(List ids) { return this.baseMapper.selectBatchIds(ids); } + + @Override + public Page fileListPage(Page page, FileListRequest request) { + QueryWrapper wrapper = getMeterFileWrapper(request); + Page meterFilePage = meterFileMapper.selectPage(page, wrapper); + meterFilePage.getRecords().stream().forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + return meterFilePage; + } + + @Override + public List fileList(FileListRequest request) { + QueryWrapper wrapper = getMeterFileWrapper(request); + List meterFiles = meterFileMapper.selectList(wrapper); + meterFiles.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + return meterFiles; + } + + @Override + @Transactional + public ReturnDTO addFile(MeterFile file) { + //生成文件编号 + Long maxNo = meterFileMapper.selectMaxFileNo(); + String fileNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.FILE_PREFIX, maxNo); + file.setFileNo(fileNo); + Assert.isFalse(Objects.isNull(ShiroKit.getUser()), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + file.setCreateUserId(ShiroKit.getUser().getId()); //登录者用户id + file.setCreateUser(ShiroKit.getUser().getName()); + int row = meterFileMapper.insert(file); + if (row <= 0) { + return ReturnUtil.failed("文件新建失败"); + } + FileSaveResponse fileSaveResponse = new FileSaveResponse(); + fileSaveResponse.setId(file.getId()); + fileSaveResponse.setFileNo(fileNo); + return ReturnUtil.success(fileSaveResponse); + + } + + @Override + public ReturnDTO fileUpdate(MeterFile file) { + if (meterFileMapper.updateById(file) > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + + @NotNull + private QueryWrapper getMeterFileWrapper(FileListRequest request) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.like(StringUtils.isNotBlank(request.getFileNo()), "file_no", request.getFileNo()); + wrapper.like(StringUtils.isNotBlank(request.getFileName()), "file_name", request.getFileName()); + wrapper.like(StringUtils.isNotBlank(request.getFileCode()), "file_code", request.getFileCode()); + wrapper.like(StringUtils.isNotBlank(request.getFileType()), "file_type", request.getFileType()); + wrapper.like(!Objects.isNull(request.getEffectiveStatus()), "effective_status", request.getEffectiveStatus()); + wrapper.apply(StringUtils.isNotBlank(request.getPublishStartTime()),//apply方法传入参数名不能为空 + "{0} <= DATE_FORMAT(publish_time,'%Y-%m-%d')", request.getPublishStartTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getPublishEndTime()), + "{0} >= DATE_FORMAT(publish_time,'%Y-%m-%d')", request.getPublishEndTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getEffectiveStartTime()), + "{0} <= DATE_FORMAT(effective_time,'%Y-%m-%d')", request.getEffectiveStartTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getEffectiveEndTime()), + "{0} >= DATE_FORMAT(effective_time,'%Y-%m-%d')", request.getEffectiveEndTime().split(" ")[0]); + wrapper.eq("is_del", 0); + wrapper.orderByAsc("effective_status").orderByDesc("create_time"); + return wrapper; + } } 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 97d106b..27ccf14 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 @@ -3,11 +3,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; /** *

@@ -19,7 +20,7 @@ */ public interface IBusinessInterchangeService extends IService { - Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception; + Page exchangeListPage(Page page, InterchangeListRequest request); BusinessInterchangeDetailResponse exchangeDetail(Long id); @@ -31,4 +32,5 @@ void exportExchange(InterchangeListRequest request, HttpServletResponse response); + void formExport(Long id, HttpServletResponse response); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java index d610ef8..f557f93 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java @@ -38,5 +38,5 @@ List optionRecord(Long id); - void formExport(Long id, HttpServletResponse response); + void formExport(Long id, int excel, HttpServletResponse response); } 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java index 4ee9515..778b1b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java @@ -101,7 +101,7 @@ private Long orderId; /** - * 委托方代码 + * 委托方编号 */ @TableField(exist = false) private String customerNo; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java index 6861a6c..783f97e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java @@ -74,7 +74,7 @@ @TableField("executive_address") private String executiveAddress; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 cd29832..91ce535 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 @@ -22,7 +22,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 0dc9233..53316ec 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 @@ -50,8 +50,8 @@ @ApiModelProperty(value = "生产厂家", dataType = "String") private String manufacturer; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @TableField(exist = false) @@ -90,4 +90,10 @@ @ExcelProperty(value = "备注", order = 12) private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java index 099ad47..000c492 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java @@ -21,15 +21,18 @@ private String sampleName; @ApiModelProperty(value = "样品型号", dataType = "String") private String sampleModel; - @ApiModelProperty(value = "出厂编号", dataType = "String") + @ApiModelProperty(value = "出厂编号/仪器编号", dataType = "String") private String manufacturingNo; + @ApiModelProperty(value = "外观状态", dataType = "String") + private String appearanceStatus; @ApiModelProperty(value = "是否存库", dataType = "Integer") private Integer isExistSample; @ApiModelProperty(value = "附件说明", dataType = "String") private String appendixDescn; - @ApiModelProperty(value = "检定要求", dataType = "Integer") + @ApiModelProperty(value = "检定要求", dataType = "String") private String measureContent; - @ApiModelProperty(value = "外观", dataType = "String") - private String remark; + @ApiModelProperty(value = "备注", dataType = "String") + private String interchangeRemark; + private int seq; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java index 7b071a0..61704b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java @@ -18,7 +18,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerId; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java index 5ce6b3e..ed73682 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java @@ -8,7 +8,7 @@ @ApiModel("多场景样品列表") public class MultiItemSampleListResponse { - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java index b7ead9a..2a3bd49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java @@ -15,7 +15,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 5663ba0..e7dcb8b 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; -import com.casic.missiles.model.customer.CustomerSampleInfo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -65,18 +64,18 @@ private String certificationCompanyEmail; /** - * 接收人 + * 收发员 */ - @ApiModelProperty(value = "接收人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") @TableField("reciever") private String reciever; /** - * 接收人电话/手机 + * 签收人 */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; + @ApiModelProperty(value = "签收人", dataType = "String") + @TableField("signee") + private String signee; /** * 证书单位地址 @@ -151,23 +150,23 @@ /** * 送检人签名文件,minio存储文件名(为空时打印签字) */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") + @TableField("reciever_sign_file") + private String recieverSignFile; /** * 送检人签字时间 */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + @TableField("reciever_sign_time") + private String recieverSignTime; /** * 接收人签名文件,minio存储文件名(系统签名模块获取) */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") - private String recieverSignFile; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + @TableField("signee_sign_file") + private String signeeSignFile; /** * 备注 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java index 440d296..15c56b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java @@ -130,7 +130,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方联系方式(固话)", dataType = "String") @@ -162,6 +162,12 @@ @ApiModelProperty(value = "创建人", dataType = "String") private Long createUser; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + private String createTime; private String updateTime; 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 c531052..9381bc3 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 @@ -36,6 +36,17 @@ @TableField("sample_id") private Long sampleId; + @TableField("sample_name") + private String sampleName; + + @TableField("sample_model") + private String sampleModel; + + @TableField("manufacturing_no") + private String manufacturingNo; + + @TableField("appearance_status") + private String appearanceStatus; /** * 交接单id @@ -55,6 +66,9 @@ @TableField("remark") private String remark; + @TableField("interchange_remark") + private String interchangeRemark; + /** * 样品在本次委托中的检定项目 */ 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 c7ae4d4..e1cddfb 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; -import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NoArgsConstructor; @@ -27,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -81,7 +80,6 @@ @ApiModelProperty(value = "接收时间", dataType = "String") private String deliverTime; - @ApiModelProperty(value = " 检定方式", dataType = "String") @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE) private String measureType; @@ -149,6 +147,12 @@ @ApiModelProperty(value = "送检人联系方式", dataType = "String") private String delivererTel; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @TableField(exist = false) @ApiModelProperty(value = "委托方地址", dataType = "String") private String customerAddress; 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 ca6cd6f..4961c24 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,5 +1,6 @@ package com.casic.missiles.service.Impl.business; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -9,7 +10,10 @@ 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.*; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; @@ -20,17 +24,21 @@ import com.casic.missiles.model.business.BusinessInterchange; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import com.casic.missiles.service.business.IBusinessInterchangeService; -import com.casic.missiles.utils.DictCodeUtils; +import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; import java.util.List; +import static com.casic.missiles.enums.business.FilePrintTypeEnum.SAMPLE_INTERCHANGE; + /** *

* 业务管理-设备交接单 服务实现类 @@ -39,6 +47,7 @@ * @author cz * @since 2023-02-02 */ +@Slf4j @Service @AllArgsConstructor public class BusinessInterchangeServiceImpl extends ServiceImpl implements IBusinessInterchangeService { @@ -46,12 +55,18 @@ private final IBaseExportService iBaseExportService; private final BusinessOrderSampleRelationMapper sampleRelationMapper; - /** - * 送检人查询条件不在设备交接单中,需要联查才可以实现 - */ @Override - public Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception { - page.setRecords(this.baseMapper.selectInterchangeListPage(page, request)); + public Page exchangeListPage(Page page, InterchangeListRequest request) { + List interchangeList = this.baseMapper.selectInterchangeListPage(page, request); + if (!CollectionUtils.isEmpty(interchangeList)) { + for (InterchangeListResponse interchange : interchangeList) { + //样品数量 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("interchange_id", interchange.getId()); + interchange.setSampleAmount(sampleRelationMapper.selectCount(wrapper)); + } + } + page.setRecords(interchangeList); return page; } @@ -59,13 +74,14 @@ public BusinessInterchangeDetailResponse exchangeDetail(Long id) { BusinessInterchangeDetailResponse businessExchange = this.baseMapper.getInfoById(id); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("order_id", businessExchange.getOrderId()); + queryWrapper.eq("interchange_id", id); List orderSampleList = sampleRelationMapper.selectList(queryWrapper); - List customerSampleList = new ArrayList<>(); - for (BusinessOrderSampleRelation businessOrderSampleRelation : orderSampleList) { - CustomerSampleListVO customerSampleListVO = sampleRelationMapper.getInterChangeSampleList(businessOrderSampleRelation.getOrderId(), businessOrderSampleRelation.getSampleId()); - customerSampleList.add(customerSampleListVO); - } + List customerSampleList = ConvertUtils.sourceToTarget(orderSampleList, CustomerSampleListVO.class); +// List customerSampleList = new ArrayList<>(); +// for (BusinessOrderSampleRelation businessOrderSampleRelation : orderSampleList) { +// CustomerSampleListVO customerSampleListVO = sampleRelationMapper.getInterChangeSampleList(businessOrderSampleRelation.getOrderId(), businessOrderSampleRelation.getSampleId()); +// customerSampleList.add(customerSampleListVO); +// } businessExchange.setCustomerSampleList(customerSampleList); return businessExchange; } @@ -82,13 +98,22 @@ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } - /** - * 更新只是交接单的变更,没有任何其他单位的变化 - */ @Override + @Transactional public ReturnDTO updateExchange(BusinessInterchange businessInterchange) { int updateFlag = this.baseMapper.updateById(businessInterchange); if (updateFlag > 0) { + //先删除,再新增 + if (!CollectionUtils.isEmpty(businessInterchange.getCustomerSampleList())) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("interchange_id", businessInterchange.getId()); + BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); + businessOrderSampleRelation.setInterchangeId((long) 0); + sampleRelationMapper.update(businessOrderSampleRelation, wrapper); + for (CustomerSampleListVO sampleInfo : businessInterchange.getCustomerSampleList()) { + sampleStatusUpdator(sampleInfo, businessInterchange.getId()); + } + } return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -137,6 +162,25 @@ } } + @Override + public void formExport(Long id, HttpServletResponse response) { + BusinessInterchangeDetailResponse interchangeDetail = this.exchangeDetail(id); + PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); + try { + printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customObject(interchangeDetail) + .prefixType(SAMPLE_INTERCHANGE) + .pdf(false) + .response(response) + //文件自定义命名 委托方名称+委托单编号 + .customFileName(interchangeDetail.getCustomerName() + interchangeDetail.getOrderNo()) + .build()); + } catch (Exception ex) { + log.error("交接单表单导出/打印异常,表单信息:{},异常信息:{}", JSONObject.toJSON(interchangeDetail), ex); + } + } + private void initFlushEmpty(InterchangeListRequest request) { request.setEndTime(null); @@ -144,7 +188,6 @@ request.setCustomerNo(null); request.setCustomerName(null); request.setDeliverer(null); - request.setReciever(null); request.setStartTime(null); } @@ -160,7 +203,7 @@ QueryWrapper orderSampleWrapper = new QueryWrapper<>(); orderSampleWrapper.eq("interchange_id", interChangeId); BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); - businessOrderSampleRelation.setInterchangeId(null); + businessOrderSampleRelation.setInterchangeId((long) 0); return sampleRelationMapper.update(businessOrderSampleRelation, orderSampleWrapper); } @@ -170,6 +213,11 @@ orderSampleWrapper.eq("sample_id", sampleInfo.getSampleId()); BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setInterchangeId(interChangeId); + businessOrderSampleRelation.setSampleName(sampleInfo.getSampleName()); + businessOrderSampleRelation.setSampleModel(sampleInfo.getSampleModel()); + businessOrderSampleRelation.setManufacturingNo(sampleInfo.getManufacturingNo()); + businessOrderSampleRelation.setAppearanceStatus(sampleInfo.getAppearanceStatus()); + businessOrderSampleRelation.setInterchangeRemark(sampleInfo.getInterchangeRemark()); return sampleRelationMapper.update(businessOrderSampleRelation, orderSampleWrapper); } 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 9317967..50b014b 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 @@ -44,14 +44,9 @@ import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; -import static com.casic.missiles.enums.business.FilePrintTypeEnum.CALIBRATION_CERTIFICATE; - /** *

* 业务管理-委托书 服务实现类 @@ -263,14 +258,19 @@ } @Override - public void formExport(Long id, HttpServletResponse response) { + public void formExport(Long id, int excel, HttpServletResponse response) { BusinessOrder businessOrder = this.orderDetail(id); if (Objects.nonNull(businessOrder)) { PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); try { DictCodeUtils.convertDictCodeToName(businessOrder); + Map map = new HashMap<>(); + if (Objects.nonNull(excel) && 1 == excel) { + map.put("excel", "1"); + } printFileRegister.registerPrintFile( RegisterCustomParameters.builder() + .customParam(map) .customObject(businessOrder) .prefixType(businessOrder.getOrderTypeName()) .pdf(false) diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java index 3fa16c6..107adac 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java @@ -35,8 +35,8 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; -import org.flowable.engine.TaskService; import org.flowable.engine.runtime.ProcessInstance; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -66,8 +66,6 @@ @Autowired private ApprovalOperateService approvalOperateService; @Resource - private TaskService taskService; - @Resource private RuntimeService runtimeService; @Override @@ -397,4 +395,81 @@ public List list(List ids) { return this.baseMapper.selectBatchIds(ids); } + + @Override + public Page fileListPage(Page page, FileListRequest request) { + QueryWrapper wrapper = getMeterFileWrapper(request); + Page meterFilePage = meterFileMapper.selectPage(page, wrapper); + meterFilePage.getRecords().stream().forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + return meterFilePage; + } + + @Override + public List fileList(FileListRequest request) { + QueryWrapper wrapper = getMeterFileWrapper(request); + List meterFiles = meterFileMapper.selectList(wrapper); + meterFiles.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + return meterFiles; + } + + @Override + @Transactional + public ReturnDTO addFile(MeterFile file) { + //生成文件编号 + Long maxNo = meterFileMapper.selectMaxFileNo(); + String fileNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.FILE_PREFIX, maxNo); + file.setFileNo(fileNo); + Assert.isFalse(Objects.isNull(ShiroKit.getUser()), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + file.setCreateUserId(ShiroKit.getUser().getId()); //登录者用户id + file.setCreateUser(ShiroKit.getUser().getName()); + int row = meterFileMapper.insert(file); + if (row <= 0) { + return ReturnUtil.failed("文件新建失败"); + } + FileSaveResponse fileSaveResponse = new FileSaveResponse(); + fileSaveResponse.setId(file.getId()); + fileSaveResponse.setFileNo(fileNo); + return ReturnUtil.success(fileSaveResponse); + + } + + @Override + public ReturnDTO fileUpdate(MeterFile file) { + if (meterFileMapper.updateById(file) > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + + @NotNull + private QueryWrapper getMeterFileWrapper(FileListRequest request) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.like(StringUtils.isNotBlank(request.getFileNo()), "file_no", request.getFileNo()); + wrapper.like(StringUtils.isNotBlank(request.getFileName()), "file_name", request.getFileName()); + wrapper.like(StringUtils.isNotBlank(request.getFileCode()), "file_code", request.getFileCode()); + wrapper.like(StringUtils.isNotBlank(request.getFileType()), "file_type", request.getFileType()); + wrapper.like(!Objects.isNull(request.getEffectiveStatus()), "effective_status", request.getEffectiveStatus()); + wrapper.apply(StringUtils.isNotBlank(request.getPublishStartTime()),//apply方法传入参数名不能为空 + "{0} <= DATE_FORMAT(publish_time,'%Y-%m-%d')", request.getPublishStartTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getPublishEndTime()), + "{0} >= DATE_FORMAT(publish_time,'%Y-%m-%d')", request.getPublishEndTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getEffectiveStartTime()), + "{0} <= DATE_FORMAT(effective_time,'%Y-%m-%d')", request.getEffectiveStartTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getEffectiveEndTime()), + "{0} >= DATE_FORMAT(effective_time,'%Y-%m-%d')", request.getEffectiveEndTime().split(" ")[0]); + wrapper.eq("is_del", 0); + wrapper.orderByAsc("effective_status").orderByDesc("create_time"); + return wrapper; + } } 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 97d106b..27ccf14 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 @@ -3,11 +3,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; /** *

@@ -19,7 +20,7 @@ */ public interface IBusinessInterchangeService extends IService { - Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception; + Page exchangeListPage(Page page, InterchangeListRequest request); BusinessInterchangeDetailResponse exchangeDetail(Long id); @@ -31,4 +32,5 @@ void exportExchange(InterchangeListRequest request, HttpServletResponse response); + void formExport(Long id, HttpServletResponse response); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java index d610ef8..f557f93 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java @@ -38,5 +38,5 @@ List optionRecord(Long id); - void formExport(Long id, HttpServletResponse response); + void formExport(Long id, int excel, HttpServletResponse response); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/interchange/SampleInterchangePrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/interchange/SampleInterchangePrintFileData.java new file mode 100644 index 0000000..b47a2d2 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/interchange/SampleInterchangePrintFileData.java @@ -0,0 +1,76 @@ +package com.casic.missiles.service.listeners.register.data.interchange; + +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.dto.business.file.FilePrintRegister; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; +import com.casic.missiles.service.listeners.register.data.PrintFileDataGeneric; +import com.casic.missiles.service.listeners.register.data.PrintFileDataSupport; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/2 15:38 + */ +@Component(PrintFileDataBeanNameAliasEnum.SAMPLE_INTERCHANGE_BEAN) +public class SampleInterchangePrintFileData extends PrintFileDataSupport implements PrintFileDataGeneric { + @Value("${casic.template.interchange}") + private String interchangeTemplateName; + + @Override + public FilePrintRegister CustomizedPrintFileRegister(RegisterCustomParameters registerParameters, String templateFileDir) { + BusinessInterchangeDetailResponse metaData = (BusinessInterchangeDetailResponse) registerParameters.getCustomObject(); + //初始化,生成模板文件 + FilePrintRegister filePrintRegister; + filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(interchangeTemplateName)); + + //关联数据 + this.interchangeBaseInfoPopulate(filePrintRegister, metaData) + //样品数据 + .sampleInfoPopulate(filePrintRegister, metaData.getCustomerSampleList()); + return filePrintRegister; + } + + private SampleInterchangePrintFileData interchangeBaseInfoPopulate(FilePrintRegister filePrintRegister, BusinessInterchangeDetailResponse metaData) { + Map map = new HashMap<>(); + map.put("customerName", metaData.getCustomerName()); + map.put("customerAddress", metaData.getCustomerAddress()); + map.put("deliverer", metaData.getDeliverer()); + map.put("delivererTel", metaData.getDelivererTel()); + map.put("certificationCompany", metaData.getCertificationCompany()); + map.put("certificationCompanyAddress", metaData.getCertificationCompanyAddress()); + map.put("recieverSignFile", metaData.getRecieverSignFile()); + map.put("recieverSignTime", metaData.getRecieverSignTime()); + map.put("signeeSignFile", metaData.getSigneeSignFile()); + filePrintRegister.setParams(map); + return this; + } + + private SampleInterchangePrintFileData sampleInfoPopulate(FilePrintRegister filePrintRegister, List customerSampleList) { + List> sampleList = new ArrayList<>(); + if(!CollectionUtils.isEmpty(customerSampleList)) { + for (int i = 0; i < customerSampleList.size(); i++) { + customerSampleList.get(i).setSeq(i + 1); + Map map = new HashMap<>(); + map.put("seq", customerSampleList.get(i).getSeq()); + map.put("sampleName", customerSampleList.get(i).getSampleName()); + map.put("sampleModel", customerSampleList.get(i).getSampleModel()); + map.put("manufacturingNo", customerSampleList.get(i).getManufacturingNo()); + map.put("appearanceStatus", customerSampleList.get(i).getAppearanceStatus()); + map.put("remark", customerSampleList.get(i).getInterchangeRemark()); + sampleList.add(map); + } + } + filePrintRegister.getParams().put("sampleList", sampleList); + return this; + } +} 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java index 4ee9515..778b1b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java @@ -101,7 +101,7 @@ private Long orderId; /** - * 委托方代码 + * 委托方编号 */ @TableField(exist = false) private String customerNo; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java index 6861a6c..783f97e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java @@ -74,7 +74,7 @@ @TableField("executive_address") private String executiveAddress; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 cd29832..91ce535 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 @@ -22,7 +22,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 0dc9233..53316ec 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 @@ -50,8 +50,8 @@ @ApiModelProperty(value = "生产厂家", dataType = "String") private String manufacturer; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @TableField(exist = false) @@ -90,4 +90,10 @@ @ExcelProperty(value = "备注", order = 12) private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java index 099ad47..000c492 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java @@ -21,15 +21,18 @@ private String sampleName; @ApiModelProperty(value = "样品型号", dataType = "String") private String sampleModel; - @ApiModelProperty(value = "出厂编号", dataType = "String") + @ApiModelProperty(value = "出厂编号/仪器编号", dataType = "String") private String manufacturingNo; + @ApiModelProperty(value = "外观状态", dataType = "String") + private String appearanceStatus; @ApiModelProperty(value = "是否存库", dataType = "Integer") private Integer isExistSample; @ApiModelProperty(value = "附件说明", dataType = "String") private String appendixDescn; - @ApiModelProperty(value = "检定要求", dataType = "Integer") + @ApiModelProperty(value = "检定要求", dataType = "String") private String measureContent; - @ApiModelProperty(value = "外观", dataType = "String") - private String remark; + @ApiModelProperty(value = "备注", dataType = "String") + private String interchangeRemark; + private int seq; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java index 7b071a0..61704b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java @@ -18,7 +18,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerId; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java index 5ce6b3e..ed73682 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java @@ -8,7 +8,7 @@ @ApiModel("多场景样品列表") public class MultiItemSampleListResponse { - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java index b7ead9a..2a3bd49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java @@ -15,7 +15,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 5663ba0..e7dcb8b 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; -import com.casic.missiles.model.customer.CustomerSampleInfo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -65,18 +64,18 @@ private String certificationCompanyEmail; /** - * 接收人 + * 收发员 */ - @ApiModelProperty(value = "接收人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") @TableField("reciever") private String reciever; /** - * 接收人电话/手机 + * 签收人 */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; + @ApiModelProperty(value = "签收人", dataType = "String") + @TableField("signee") + private String signee; /** * 证书单位地址 @@ -151,23 +150,23 @@ /** * 送检人签名文件,minio存储文件名(为空时打印签字) */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") + @TableField("reciever_sign_file") + private String recieverSignFile; /** * 送检人签字时间 */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + @TableField("reciever_sign_time") + private String recieverSignTime; /** * 接收人签名文件,minio存储文件名(系统签名模块获取) */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") - private String recieverSignFile; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + @TableField("signee_sign_file") + private String signeeSignFile; /** * 备注 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java index 440d296..15c56b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java @@ -130,7 +130,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方联系方式(固话)", dataType = "String") @@ -162,6 +162,12 @@ @ApiModelProperty(value = "创建人", dataType = "String") private Long createUser; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + private String createTime; private String updateTime; 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 c531052..9381bc3 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 @@ -36,6 +36,17 @@ @TableField("sample_id") private Long sampleId; + @TableField("sample_name") + private String sampleName; + + @TableField("sample_model") + private String sampleModel; + + @TableField("manufacturing_no") + private String manufacturingNo; + + @TableField("appearance_status") + private String appearanceStatus; /** * 交接单id @@ -55,6 +66,9 @@ @TableField("remark") private String remark; + @TableField("interchange_remark") + private String interchangeRemark; + /** * 样品在本次委托中的检定项目 */ 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 c7ae4d4..e1cddfb 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; -import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NoArgsConstructor; @@ -27,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -81,7 +80,6 @@ @ApiModelProperty(value = "接收时间", dataType = "String") private String deliverTime; - @ApiModelProperty(value = " 检定方式", dataType = "String") @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE) private String measureType; @@ -149,6 +147,12 @@ @ApiModelProperty(value = "送检人联系方式", dataType = "String") private String delivererTel; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @TableField(exist = false) @ApiModelProperty(value = "委托方地址", dataType = "String") private String customerAddress; 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 ca6cd6f..4961c24 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,5 +1,6 @@ package com.casic.missiles.service.Impl.business; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -9,7 +10,10 @@ 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.*; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; @@ -20,17 +24,21 @@ import com.casic.missiles.model.business.BusinessInterchange; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import com.casic.missiles.service.business.IBusinessInterchangeService; -import com.casic.missiles.utils.DictCodeUtils; +import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; import java.util.List; +import static com.casic.missiles.enums.business.FilePrintTypeEnum.SAMPLE_INTERCHANGE; + /** *

* 业务管理-设备交接单 服务实现类 @@ -39,6 +47,7 @@ * @author cz * @since 2023-02-02 */ +@Slf4j @Service @AllArgsConstructor public class BusinessInterchangeServiceImpl extends ServiceImpl implements IBusinessInterchangeService { @@ -46,12 +55,18 @@ private final IBaseExportService iBaseExportService; private final BusinessOrderSampleRelationMapper sampleRelationMapper; - /** - * 送检人查询条件不在设备交接单中,需要联查才可以实现 - */ @Override - public Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception { - page.setRecords(this.baseMapper.selectInterchangeListPage(page, request)); + public Page exchangeListPage(Page page, InterchangeListRequest request) { + List interchangeList = this.baseMapper.selectInterchangeListPage(page, request); + if (!CollectionUtils.isEmpty(interchangeList)) { + for (InterchangeListResponse interchange : interchangeList) { + //样品数量 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("interchange_id", interchange.getId()); + interchange.setSampleAmount(sampleRelationMapper.selectCount(wrapper)); + } + } + page.setRecords(interchangeList); return page; } @@ -59,13 +74,14 @@ public BusinessInterchangeDetailResponse exchangeDetail(Long id) { BusinessInterchangeDetailResponse businessExchange = this.baseMapper.getInfoById(id); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("order_id", businessExchange.getOrderId()); + queryWrapper.eq("interchange_id", id); List orderSampleList = sampleRelationMapper.selectList(queryWrapper); - List customerSampleList = new ArrayList<>(); - for (BusinessOrderSampleRelation businessOrderSampleRelation : orderSampleList) { - CustomerSampleListVO customerSampleListVO = sampleRelationMapper.getInterChangeSampleList(businessOrderSampleRelation.getOrderId(), businessOrderSampleRelation.getSampleId()); - customerSampleList.add(customerSampleListVO); - } + List customerSampleList = ConvertUtils.sourceToTarget(orderSampleList, CustomerSampleListVO.class); +// List customerSampleList = new ArrayList<>(); +// for (BusinessOrderSampleRelation businessOrderSampleRelation : orderSampleList) { +// CustomerSampleListVO customerSampleListVO = sampleRelationMapper.getInterChangeSampleList(businessOrderSampleRelation.getOrderId(), businessOrderSampleRelation.getSampleId()); +// customerSampleList.add(customerSampleListVO); +// } businessExchange.setCustomerSampleList(customerSampleList); return businessExchange; } @@ -82,13 +98,22 @@ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } - /** - * 更新只是交接单的变更,没有任何其他单位的变化 - */ @Override + @Transactional public ReturnDTO updateExchange(BusinessInterchange businessInterchange) { int updateFlag = this.baseMapper.updateById(businessInterchange); if (updateFlag > 0) { + //先删除,再新增 + if (!CollectionUtils.isEmpty(businessInterchange.getCustomerSampleList())) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("interchange_id", businessInterchange.getId()); + BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); + businessOrderSampleRelation.setInterchangeId((long) 0); + sampleRelationMapper.update(businessOrderSampleRelation, wrapper); + for (CustomerSampleListVO sampleInfo : businessInterchange.getCustomerSampleList()) { + sampleStatusUpdator(sampleInfo, businessInterchange.getId()); + } + } return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -137,6 +162,25 @@ } } + @Override + public void formExport(Long id, HttpServletResponse response) { + BusinessInterchangeDetailResponse interchangeDetail = this.exchangeDetail(id); + PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); + try { + printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customObject(interchangeDetail) + .prefixType(SAMPLE_INTERCHANGE) + .pdf(false) + .response(response) + //文件自定义命名 委托方名称+委托单编号 + .customFileName(interchangeDetail.getCustomerName() + interchangeDetail.getOrderNo()) + .build()); + } catch (Exception ex) { + log.error("交接单表单导出/打印异常,表单信息:{},异常信息:{}", JSONObject.toJSON(interchangeDetail), ex); + } + } + private void initFlushEmpty(InterchangeListRequest request) { request.setEndTime(null); @@ -144,7 +188,6 @@ request.setCustomerNo(null); request.setCustomerName(null); request.setDeliverer(null); - request.setReciever(null); request.setStartTime(null); } @@ -160,7 +203,7 @@ QueryWrapper orderSampleWrapper = new QueryWrapper<>(); orderSampleWrapper.eq("interchange_id", interChangeId); BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); - businessOrderSampleRelation.setInterchangeId(null); + businessOrderSampleRelation.setInterchangeId((long) 0); return sampleRelationMapper.update(businessOrderSampleRelation, orderSampleWrapper); } @@ -170,6 +213,11 @@ orderSampleWrapper.eq("sample_id", sampleInfo.getSampleId()); BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setInterchangeId(interChangeId); + businessOrderSampleRelation.setSampleName(sampleInfo.getSampleName()); + businessOrderSampleRelation.setSampleModel(sampleInfo.getSampleModel()); + businessOrderSampleRelation.setManufacturingNo(sampleInfo.getManufacturingNo()); + businessOrderSampleRelation.setAppearanceStatus(sampleInfo.getAppearanceStatus()); + businessOrderSampleRelation.setInterchangeRemark(sampleInfo.getInterchangeRemark()); return sampleRelationMapper.update(businessOrderSampleRelation, orderSampleWrapper); } 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 9317967..50b014b 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 @@ -44,14 +44,9 @@ import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; -import static com.casic.missiles.enums.business.FilePrintTypeEnum.CALIBRATION_CERTIFICATE; - /** *

* 业务管理-委托书 服务实现类 @@ -263,14 +258,19 @@ } @Override - public void formExport(Long id, HttpServletResponse response) { + public void formExport(Long id, int excel, HttpServletResponse response) { BusinessOrder businessOrder = this.orderDetail(id); if (Objects.nonNull(businessOrder)) { PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); try { DictCodeUtils.convertDictCodeToName(businessOrder); + Map map = new HashMap<>(); + if (Objects.nonNull(excel) && 1 == excel) { + map.put("excel", "1"); + } printFileRegister.registerPrintFile( RegisterCustomParameters.builder() + .customParam(map) .customObject(businessOrder) .prefixType(businessOrder.getOrderTypeName()) .pdf(false) diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java index 3fa16c6..107adac 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java @@ -35,8 +35,8 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; -import org.flowable.engine.TaskService; import org.flowable.engine.runtime.ProcessInstance; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -66,8 +66,6 @@ @Autowired private ApprovalOperateService approvalOperateService; @Resource - private TaskService taskService; - @Resource private RuntimeService runtimeService; @Override @@ -397,4 +395,81 @@ public List list(List ids) { return this.baseMapper.selectBatchIds(ids); } + + @Override + public Page fileListPage(Page page, FileListRequest request) { + QueryWrapper wrapper = getMeterFileWrapper(request); + Page meterFilePage = meterFileMapper.selectPage(page, wrapper); + meterFilePage.getRecords().stream().forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + return meterFilePage; + } + + @Override + public List fileList(FileListRequest request) { + QueryWrapper wrapper = getMeterFileWrapper(request); + List meterFiles = meterFileMapper.selectList(wrapper); + meterFiles.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + return meterFiles; + } + + @Override + @Transactional + public ReturnDTO addFile(MeterFile file) { + //生成文件编号 + Long maxNo = meterFileMapper.selectMaxFileNo(); + String fileNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.FILE_PREFIX, maxNo); + file.setFileNo(fileNo); + Assert.isFalse(Objects.isNull(ShiroKit.getUser()), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + file.setCreateUserId(ShiroKit.getUser().getId()); //登录者用户id + file.setCreateUser(ShiroKit.getUser().getName()); + int row = meterFileMapper.insert(file); + if (row <= 0) { + return ReturnUtil.failed("文件新建失败"); + } + FileSaveResponse fileSaveResponse = new FileSaveResponse(); + fileSaveResponse.setId(file.getId()); + fileSaveResponse.setFileNo(fileNo); + return ReturnUtil.success(fileSaveResponse); + + } + + @Override + public ReturnDTO fileUpdate(MeterFile file) { + if (meterFileMapper.updateById(file) > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + + @NotNull + private QueryWrapper getMeterFileWrapper(FileListRequest request) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.like(StringUtils.isNotBlank(request.getFileNo()), "file_no", request.getFileNo()); + wrapper.like(StringUtils.isNotBlank(request.getFileName()), "file_name", request.getFileName()); + wrapper.like(StringUtils.isNotBlank(request.getFileCode()), "file_code", request.getFileCode()); + wrapper.like(StringUtils.isNotBlank(request.getFileType()), "file_type", request.getFileType()); + wrapper.like(!Objects.isNull(request.getEffectiveStatus()), "effective_status", request.getEffectiveStatus()); + wrapper.apply(StringUtils.isNotBlank(request.getPublishStartTime()),//apply方法传入参数名不能为空 + "{0} <= DATE_FORMAT(publish_time,'%Y-%m-%d')", request.getPublishStartTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getPublishEndTime()), + "{0} >= DATE_FORMAT(publish_time,'%Y-%m-%d')", request.getPublishEndTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getEffectiveStartTime()), + "{0} <= DATE_FORMAT(effective_time,'%Y-%m-%d')", request.getEffectiveStartTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getEffectiveEndTime()), + "{0} >= DATE_FORMAT(effective_time,'%Y-%m-%d')", request.getEffectiveEndTime().split(" ")[0]); + wrapper.eq("is_del", 0); + wrapper.orderByAsc("effective_status").orderByDesc("create_time"); + return wrapper; + } } 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 97d106b..27ccf14 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 @@ -3,11 +3,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; /** *

@@ -19,7 +20,7 @@ */ public interface IBusinessInterchangeService extends IService { - Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception; + Page exchangeListPage(Page page, InterchangeListRequest request); BusinessInterchangeDetailResponse exchangeDetail(Long id); @@ -31,4 +32,5 @@ void exportExchange(InterchangeListRequest request, HttpServletResponse response); + void formExport(Long id, HttpServletResponse response); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java index d610ef8..f557f93 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java @@ -38,5 +38,5 @@ List optionRecord(Long id); - void formExport(Long id, HttpServletResponse response); + void formExport(Long id, int excel, HttpServletResponse response); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/interchange/SampleInterchangePrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/interchange/SampleInterchangePrintFileData.java new file mode 100644 index 0000000..b47a2d2 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/interchange/SampleInterchangePrintFileData.java @@ -0,0 +1,76 @@ +package com.casic.missiles.service.listeners.register.data.interchange; + +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.dto.business.file.FilePrintRegister; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; +import com.casic.missiles.service.listeners.register.data.PrintFileDataGeneric; +import com.casic.missiles.service.listeners.register.data.PrintFileDataSupport; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/2 15:38 + */ +@Component(PrintFileDataBeanNameAliasEnum.SAMPLE_INTERCHANGE_BEAN) +public class SampleInterchangePrintFileData extends PrintFileDataSupport implements PrintFileDataGeneric { + @Value("${casic.template.interchange}") + private String interchangeTemplateName; + + @Override + public FilePrintRegister CustomizedPrintFileRegister(RegisterCustomParameters registerParameters, String templateFileDir) { + BusinessInterchangeDetailResponse metaData = (BusinessInterchangeDetailResponse) registerParameters.getCustomObject(); + //初始化,生成模板文件 + FilePrintRegister filePrintRegister; + filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(interchangeTemplateName)); + + //关联数据 + this.interchangeBaseInfoPopulate(filePrintRegister, metaData) + //样品数据 + .sampleInfoPopulate(filePrintRegister, metaData.getCustomerSampleList()); + return filePrintRegister; + } + + private SampleInterchangePrintFileData interchangeBaseInfoPopulate(FilePrintRegister filePrintRegister, BusinessInterchangeDetailResponse metaData) { + Map map = new HashMap<>(); + map.put("customerName", metaData.getCustomerName()); + map.put("customerAddress", metaData.getCustomerAddress()); + map.put("deliverer", metaData.getDeliverer()); + map.put("delivererTel", metaData.getDelivererTel()); + map.put("certificationCompany", metaData.getCertificationCompany()); + map.put("certificationCompanyAddress", metaData.getCertificationCompanyAddress()); + map.put("recieverSignFile", metaData.getRecieverSignFile()); + map.put("recieverSignTime", metaData.getRecieverSignTime()); + map.put("signeeSignFile", metaData.getSigneeSignFile()); + filePrintRegister.setParams(map); + return this; + } + + private SampleInterchangePrintFileData sampleInfoPopulate(FilePrintRegister filePrintRegister, List customerSampleList) { + List> sampleList = new ArrayList<>(); + if(!CollectionUtils.isEmpty(customerSampleList)) { + for (int i = 0; i < customerSampleList.size(); i++) { + customerSampleList.get(i).setSeq(i + 1); + Map map = new HashMap<>(); + map.put("seq", customerSampleList.get(i).getSeq()); + map.put("sampleName", customerSampleList.get(i).getSampleName()); + map.put("sampleModel", customerSampleList.get(i).getSampleModel()); + map.put("manufacturingNo", customerSampleList.get(i).getManufacturingNo()); + map.put("appearanceStatus", customerSampleList.get(i).getAppearanceStatus()); + map.put("remark", customerSampleList.get(i).getInterchangeRemark()); + sampleList.add(map); + } + } + filePrintRegister.getParams().put("sampleList", sampleList); + return this; + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/order/CalibrationOrderPrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/order/CalibrationOrderPrintFileData.java index 93109ef..ed0b350 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/order/CalibrationOrderPrintFileData.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/order/CalibrationOrderPrintFileData.java @@ -20,12 +20,19 @@ public class CalibrationOrderPrintFileData extends PrintFileDataSupport implements PrintFileDataGeneric { @Value("${casic.template.calibrationOrder}") private String calibrationOrderTemplateName; + @Value("${casic.template.calibrationOrderExcel}") + private String calibrationOrderExcelTemplateName; @Override public FilePrintRegister CustomizedPrintFileRegister(RegisterCustomParameters registerParameters, String templateFileDir) { BusinessOrder metaData = (BusinessOrder) registerParameters.getCustomObject(); //初始化,生成模板文件 - FilePrintRegister filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(calibrationOrderTemplateName)); + FilePrintRegister filePrintRegister; + if ("1".equals(registerParameters.getCustomParam().get("excel"))) { + filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(calibrationOrderExcelTemplateName)); + } else { + filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(calibrationOrderTemplateName)); + } //关联数据 this.orderBaseInfoPopulate(filePrintRegister, metaData) //样品数据 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java index 4ee9515..778b1b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java @@ -101,7 +101,7 @@ private Long orderId; /** - * 委托方代码 + * 委托方编号 */ @TableField(exist = false) private String customerNo; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java index 6861a6c..783f97e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java @@ -74,7 +74,7 @@ @TableField("executive_address") private String executiveAddress; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 cd29832..91ce535 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 @@ -22,7 +22,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 0dc9233..53316ec 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 @@ -50,8 +50,8 @@ @ApiModelProperty(value = "生产厂家", dataType = "String") private String manufacturer; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @TableField(exist = false) @@ -90,4 +90,10 @@ @ExcelProperty(value = "备注", order = 12) private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java index 099ad47..000c492 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java @@ -21,15 +21,18 @@ private String sampleName; @ApiModelProperty(value = "样品型号", dataType = "String") private String sampleModel; - @ApiModelProperty(value = "出厂编号", dataType = "String") + @ApiModelProperty(value = "出厂编号/仪器编号", dataType = "String") private String manufacturingNo; + @ApiModelProperty(value = "外观状态", dataType = "String") + private String appearanceStatus; @ApiModelProperty(value = "是否存库", dataType = "Integer") private Integer isExistSample; @ApiModelProperty(value = "附件说明", dataType = "String") private String appendixDescn; - @ApiModelProperty(value = "检定要求", dataType = "Integer") + @ApiModelProperty(value = "检定要求", dataType = "String") private String measureContent; - @ApiModelProperty(value = "外观", dataType = "String") - private String remark; + @ApiModelProperty(value = "备注", dataType = "String") + private String interchangeRemark; + private int seq; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java index 7b071a0..61704b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java @@ -18,7 +18,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerId; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java index 5ce6b3e..ed73682 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java @@ -8,7 +8,7 @@ @ApiModel("多场景样品列表") public class MultiItemSampleListResponse { - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java index b7ead9a..2a3bd49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java @@ -15,7 +15,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 5663ba0..e7dcb8b 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; -import com.casic.missiles.model.customer.CustomerSampleInfo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -65,18 +64,18 @@ private String certificationCompanyEmail; /** - * 接收人 + * 收发员 */ - @ApiModelProperty(value = "接收人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") @TableField("reciever") private String reciever; /** - * 接收人电话/手机 + * 签收人 */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; + @ApiModelProperty(value = "签收人", dataType = "String") + @TableField("signee") + private String signee; /** * 证书单位地址 @@ -151,23 +150,23 @@ /** * 送检人签名文件,minio存储文件名(为空时打印签字) */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") + @TableField("reciever_sign_file") + private String recieverSignFile; /** * 送检人签字时间 */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + @TableField("reciever_sign_time") + private String recieverSignTime; /** * 接收人签名文件,minio存储文件名(系统签名模块获取) */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") - private String recieverSignFile; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + @TableField("signee_sign_file") + private String signeeSignFile; /** * 备注 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java index 440d296..15c56b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java @@ -130,7 +130,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方联系方式(固话)", dataType = "String") @@ -162,6 +162,12 @@ @ApiModelProperty(value = "创建人", dataType = "String") private Long createUser; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + private String createTime; private String updateTime; 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 c531052..9381bc3 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 @@ -36,6 +36,17 @@ @TableField("sample_id") private Long sampleId; + @TableField("sample_name") + private String sampleName; + + @TableField("sample_model") + private String sampleModel; + + @TableField("manufacturing_no") + private String manufacturingNo; + + @TableField("appearance_status") + private String appearanceStatus; /** * 交接单id @@ -55,6 +66,9 @@ @TableField("remark") private String remark; + @TableField("interchange_remark") + private String interchangeRemark; + /** * 样品在本次委托中的检定项目 */ 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 c7ae4d4..e1cddfb 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; -import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NoArgsConstructor; @@ -27,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -81,7 +80,6 @@ @ApiModelProperty(value = "接收时间", dataType = "String") private String deliverTime; - @ApiModelProperty(value = " 检定方式", dataType = "String") @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE) private String measureType; @@ -149,6 +147,12 @@ @ApiModelProperty(value = "送检人联系方式", dataType = "String") private String delivererTel; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @TableField(exist = false) @ApiModelProperty(value = "委托方地址", dataType = "String") private String customerAddress; 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 ca6cd6f..4961c24 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,5 +1,6 @@ package com.casic.missiles.service.Impl.business; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -9,7 +10,10 @@ 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.*; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; @@ -20,17 +24,21 @@ import com.casic.missiles.model.business.BusinessInterchange; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import com.casic.missiles.service.business.IBusinessInterchangeService; -import com.casic.missiles.utils.DictCodeUtils; +import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; import java.util.List; +import static com.casic.missiles.enums.business.FilePrintTypeEnum.SAMPLE_INTERCHANGE; + /** *

* 业务管理-设备交接单 服务实现类 @@ -39,6 +47,7 @@ * @author cz * @since 2023-02-02 */ +@Slf4j @Service @AllArgsConstructor public class BusinessInterchangeServiceImpl extends ServiceImpl implements IBusinessInterchangeService { @@ -46,12 +55,18 @@ private final IBaseExportService iBaseExportService; private final BusinessOrderSampleRelationMapper sampleRelationMapper; - /** - * 送检人查询条件不在设备交接单中,需要联查才可以实现 - */ @Override - public Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception { - page.setRecords(this.baseMapper.selectInterchangeListPage(page, request)); + public Page exchangeListPage(Page page, InterchangeListRequest request) { + List interchangeList = this.baseMapper.selectInterchangeListPage(page, request); + if (!CollectionUtils.isEmpty(interchangeList)) { + for (InterchangeListResponse interchange : interchangeList) { + //样品数量 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("interchange_id", interchange.getId()); + interchange.setSampleAmount(sampleRelationMapper.selectCount(wrapper)); + } + } + page.setRecords(interchangeList); return page; } @@ -59,13 +74,14 @@ public BusinessInterchangeDetailResponse exchangeDetail(Long id) { BusinessInterchangeDetailResponse businessExchange = this.baseMapper.getInfoById(id); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("order_id", businessExchange.getOrderId()); + queryWrapper.eq("interchange_id", id); List orderSampleList = sampleRelationMapper.selectList(queryWrapper); - List customerSampleList = new ArrayList<>(); - for (BusinessOrderSampleRelation businessOrderSampleRelation : orderSampleList) { - CustomerSampleListVO customerSampleListVO = sampleRelationMapper.getInterChangeSampleList(businessOrderSampleRelation.getOrderId(), businessOrderSampleRelation.getSampleId()); - customerSampleList.add(customerSampleListVO); - } + List customerSampleList = ConvertUtils.sourceToTarget(orderSampleList, CustomerSampleListVO.class); +// List customerSampleList = new ArrayList<>(); +// for (BusinessOrderSampleRelation businessOrderSampleRelation : orderSampleList) { +// CustomerSampleListVO customerSampleListVO = sampleRelationMapper.getInterChangeSampleList(businessOrderSampleRelation.getOrderId(), businessOrderSampleRelation.getSampleId()); +// customerSampleList.add(customerSampleListVO); +// } businessExchange.setCustomerSampleList(customerSampleList); return businessExchange; } @@ -82,13 +98,22 @@ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } - /** - * 更新只是交接单的变更,没有任何其他单位的变化 - */ @Override + @Transactional public ReturnDTO updateExchange(BusinessInterchange businessInterchange) { int updateFlag = this.baseMapper.updateById(businessInterchange); if (updateFlag > 0) { + //先删除,再新增 + if (!CollectionUtils.isEmpty(businessInterchange.getCustomerSampleList())) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("interchange_id", businessInterchange.getId()); + BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); + businessOrderSampleRelation.setInterchangeId((long) 0); + sampleRelationMapper.update(businessOrderSampleRelation, wrapper); + for (CustomerSampleListVO sampleInfo : businessInterchange.getCustomerSampleList()) { + sampleStatusUpdator(sampleInfo, businessInterchange.getId()); + } + } return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -137,6 +162,25 @@ } } + @Override + public void formExport(Long id, HttpServletResponse response) { + BusinessInterchangeDetailResponse interchangeDetail = this.exchangeDetail(id); + PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); + try { + printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customObject(interchangeDetail) + .prefixType(SAMPLE_INTERCHANGE) + .pdf(false) + .response(response) + //文件自定义命名 委托方名称+委托单编号 + .customFileName(interchangeDetail.getCustomerName() + interchangeDetail.getOrderNo()) + .build()); + } catch (Exception ex) { + log.error("交接单表单导出/打印异常,表单信息:{},异常信息:{}", JSONObject.toJSON(interchangeDetail), ex); + } + } + private void initFlushEmpty(InterchangeListRequest request) { request.setEndTime(null); @@ -144,7 +188,6 @@ request.setCustomerNo(null); request.setCustomerName(null); request.setDeliverer(null); - request.setReciever(null); request.setStartTime(null); } @@ -160,7 +203,7 @@ QueryWrapper orderSampleWrapper = new QueryWrapper<>(); orderSampleWrapper.eq("interchange_id", interChangeId); BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); - businessOrderSampleRelation.setInterchangeId(null); + businessOrderSampleRelation.setInterchangeId((long) 0); return sampleRelationMapper.update(businessOrderSampleRelation, orderSampleWrapper); } @@ -170,6 +213,11 @@ orderSampleWrapper.eq("sample_id", sampleInfo.getSampleId()); BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setInterchangeId(interChangeId); + businessOrderSampleRelation.setSampleName(sampleInfo.getSampleName()); + businessOrderSampleRelation.setSampleModel(sampleInfo.getSampleModel()); + businessOrderSampleRelation.setManufacturingNo(sampleInfo.getManufacturingNo()); + businessOrderSampleRelation.setAppearanceStatus(sampleInfo.getAppearanceStatus()); + businessOrderSampleRelation.setInterchangeRemark(sampleInfo.getInterchangeRemark()); return sampleRelationMapper.update(businessOrderSampleRelation, orderSampleWrapper); } 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 9317967..50b014b 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 @@ -44,14 +44,9 @@ import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; -import static com.casic.missiles.enums.business.FilePrintTypeEnum.CALIBRATION_CERTIFICATE; - /** *

* 业务管理-委托书 服务实现类 @@ -263,14 +258,19 @@ } @Override - public void formExport(Long id, HttpServletResponse response) { + public void formExport(Long id, int excel, HttpServletResponse response) { BusinessOrder businessOrder = this.orderDetail(id); if (Objects.nonNull(businessOrder)) { PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); try { DictCodeUtils.convertDictCodeToName(businessOrder); + Map map = new HashMap<>(); + if (Objects.nonNull(excel) && 1 == excel) { + map.put("excel", "1"); + } printFileRegister.registerPrintFile( RegisterCustomParameters.builder() + .customParam(map) .customObject(businessOrder) .prefixType(businessOrder.getOrderTypeName()) .pdf(false) diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java index 3fa16c6..107adac 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java @@ -35,8 +35,8 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; -import org.flowable.engine.TaskService; import org.flowable.engine.runtime.ProcessInstance; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -66,8 +66,6 @@ @Autowired private ApprovalOperateService approvalOperateService; @Resource - private TaskService taskService; - @Resource private RuntimeService runtimeService; @Override @@ -397,4 +395,81 @@ public List list(List ids) { return this.baseMapper.selectBatchIds(ids); } + + @Override + public Page fileListPage(Page page, FileListRequest request) { + QueryWrapper wrapper = getMeterFileWrapper(request); + Page meterFilePage = meterFileMapper.selectPage(page, wrapper); + meterFilePage.getRecords().stream().forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + return meterFilePage; + } + + @Override + public List fileList(FileListRequest request) { + QueryWrapper wrapper = getMeterFileWrapper(request); + List meterFiles = meterFileMapper.selectList(wrapper); + meterFiles.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + return meterFiles; + } + + @Override + @Transactional + public ReturnDTO addFile(MeterFile file) { + //生成文件编号 + Long maxNo = meterFileMapper.selectMaxFileNo(); + String fileNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.FILE_PREFIX, maxNo); + file.setFileNo(fileNo); + Assert.isFalse(Objects.isNull(ShiroKit.getUser()), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + file.setCreateUserId(ShiroKit.getUser().getId()); //登录者用户id + file.setCreateUser(ShiroKit.getUser().getName()); + int row = meterFileMapper.insert(file); + if (row <= 0) { + return ReturnUtil.failed("文件新建失败"); + } + FileSaveResponse fileSaveResponse = new FileSaveResponse(); + fileSaveResponse.setId(file.getId()); + fileSaveResponse.setFileNo(fileNo); + return ReturnUtil.success(fileSaveResponse); + + } + + @Override + public ReturnDTO fileUpdate(MeterFile file) { + if (meterFileMapper.updateById(file) > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + + @NotNull + private QueryWrapper getMeterFileWrapper(FileListRequest request) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.like(StringUtils.isNotBlank(request.getFileNo()), "file_no", request.getFileNo()); + wrapper.like(StringUtils.isNotBlank(request.getFileName()), "file_name", request.getFileName()); + wrapper.like(StringUtils.isNotBlank(request.getFileCode()), "file_code", request.getFileCode()); + wrapper.like(StringUtils.isNotBlank(request.getFileType()), "file_type", request.getFileType()); + wrapper.like(!Objects.isNull(request.getEffectiveStatus()), "effective_status", request.getEffectiveStatus()); + wrapper.apply(StringUtils.isNotBlank(request.getPublishStartTime()),//apply方法传入参数名不能为空 + "{0} <= DATE_FORMAT(publish_time,'%Y-%m-%d')", request.getPublishStartTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getPublishEndTime()), + "{0} >= DATE_FORMAT(publish_time,'%Y-%m-%d')", request.getPublishEndTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getEffectiveStartTime()), + "{0} <= DATE_FORMAT(effective_time,'%Y-%m-%d')", request.getEffectiveStartTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getEffectiveEndTime()), + "{0} >= DATE_FORMAT(effective_time,'%Y-%m-%d')", request.getEffectiveEndTime().split(" ")[0]); + wrapper.eq("is_del", 0); + wrapper.orderByAsc("effective_status").orderByDesc("create_time"); + return wrapper; + } } 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 97d106b..27ccf14 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 @@ -3,11 +3,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; /** *

@@ -19,7 +20,7 @@ */ public interface IBusinessInterchangeService extends IService { - Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception; + Page exchangeListPage(Page page, InterchangeListRequest request); BusinessInterchangeDetailResponse exchangeDetail(Long id); @@ -31,4 +32,5 @@ void exportExchange(InterchangeListRequest request, HttpServletResponse response); + void formExport(Long id, HttpServletResponse response); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java index d610ef8..f557f93 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java @@ -38,5 +38,5 @@ List optionRecord(Long id); - void formExport(Long id, HttpServletResponse response); + void formExport(Long id, int excel, HttpServletResponse response); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/interchange/SampleInterchangePrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/interchange/SampleInterchangePrintFileData.java new file mode 100644 index 0000000..b47a2d2 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/interchange/SampleInterchangePrintFileData.java @@ -0,0 +1,76 @@ +package com.casic.missiles.service.listeners.register.data.interchange; + +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.dto.business.file.FilePrintRegister; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; +import com.casic.missiles.service.listeners.register.data.PrintFileDataGeneric; +import com.casic.missiles.service.listeners.register.data.PrintFileDataSupport; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/2 15:38 + */ +@Component(PrintFileDataBeanNameAliasEnum.SAMPLE_INTERCHANGE_BEAN) +public class SampleInterchangePrintFileData extends PrintFileDataSupport implements PrintFileDataGeneric { + @Value("${casic.template.interchange}") + private String interchangeTemplateName; + + @Override + public FilePrintRegister CustomizedPrintFileRegister(RegisterCustomParameters registerParameters, String templateFileDir) { + BusinessInterchangeDetailResponse metaData = (BusinessInterchangeDetailResponse) registerParameters.getCustomObject(); + //初始化,生成模板文件 + FilePrintRegister filePrintRegister; + filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(interchangeTemplateName)); + + //关联数据 + this.interchangeBaseInfoPopulate(filePrintRegister, metaData) + //样品数据 + .sampleInfoPopulate(filePrintRegister, metaData.getCustomerSampleList()); + return filePrintRegister; + } + + private SampleInterchangePrintFileData interchangeBaseInfoPopulate(FilePrintRegister filePrintRegister, BusinessInterchangeDetailResponse metaData) { + Map map = new HashMap<>(); + map.put("customerName", metaData.getCustomerName()); + map.put("customerAddress", metaData.getCustomerAddress()); + map.put("deliverer", metaData.getDeliverer()); + map.put("delivererTel", metaData.getDelivererTel()); + map.put("certificationCompany", metaData.getCertificationCompany()); + map.put("certificationCompanyAddress", metaData.getCertificationCompanyAddress()); + map.put("recieverSignFile", metaData.getRecieverSignFile()); + map.put("recieverSignTime", metaData.getRecieverSignTime()); + map.put("signeeSignFile", metaData.getSigneeSignFile()); + filePrintRegister.setParams(map); + return this; + } + + private SampleInterchangePrintFileData sampleInfoPopulate(FilePrintRegister filePrintRegister, List customerSampleList) { + List> sampleList = new ArrayList<>(); + if(!CollectionUtils.isEmpty(customerSampleList)) { + for (int i = 0; i < customerSampleList.size(); i++) { + customerSampleList.get(i).setSeq(i + 1); + Map map = new HashMap<>(); + map.put("seq", customerSampleList.get(i).getSeq()); + map.put("sampleName", customerSampleList.get(i).getSampleName()); + map.put("sampleModel", customerSampleList.get(i).getSampleModel()); + map.put("manufacturingNo", customerSampleList.get(i).getManufacturingNo()); + map.put("appearanceStatus", customerSampleList.get(i).getAppearanceStatus()); + map.put("remark", customerSampleList.get(i).getInterchangeRemark()); + sampleList.add(map); + } + } + filePrintRegister.getParams().put("sampleList", sampleList); + return this; + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/order/CalibrationOrderPrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/order/CalibrationOrderPrintFileData.java index 93109ef..ed0b350 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/order/CalibrationOrderPrintFileData.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/order/CalibrationOrderPrintFileData.java @@ -20,12 +20,19 @@ public class CalibrationOrderPrintFileData extends PrintFileDataSupport implements PrintFileDataGeneric { @Value("${casic.template.calibrationOrder}") private String calibrationOrderTemplateName; + @Value("${casic.template.calibrationOrderExcel}") + private String calibrationOrderExcelTemplateName; @Override public FilePrintRegister CustomizedPrintFileRegister(RegisterCustomParameters registerParameters, String templateFileDir) { BusinessOrder metaData = (BusinessOrder) registerParameters.getCustomObject(); //初始化,生成模板文件 - FilePrintRegister filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(calibrationOrderTemplateName)); + FilePrintRegister filePrintRegister; + if ("1".equals(registerParameters.getCustomParam().get("excel"))) { + filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(calibrationOrderExcelTemplateName)); + } else { + filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(calibrationOrderTemplateName)); + } //关联数据 this.orderBaseInfoPopulate(filePrintRegister, metaData) //样品数据 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/order/TestOrderPrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/order/TestOrderPrintFileData.java index 00a2119..bd4151f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/order/TestOrderPrintFileData.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/order/TestOrderPrintFileData.java @@ -20,12 +20,19 @@ public class TestOrderPrintFileData extends PrintFileDataSupport implements PrintFileDataGeneric { @Value("${casic.template.testOrder}") private String testOrderTemplateName; + @Value("${casic.template.testOrderExcel}") + private String testOrderExcelTemplateName; @Override public FilePrintRegister CustomizedPrintFileRegister(RegisterCustomParameters registerParameters, String templateFileDir) { BusinessOrder metaData = (BusinessOrder) registerParameters.getCustomObject(); //初始化,生成模板文件 - FilePrintRegister filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(testOrderTemplateName)); + FilePrintRegister filePrintRegister; + if ("1".equals(registerParameters.getCustomParam().get("excel"))) { + filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(testOrderExcelTemplateName)); + } else { + filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(testOrderTemplateName)); + } //关联数据 this.orderBaseInfoPopulate(filePrintRegister, metaData) //样品数据 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 c925e6e..6211b81 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 @@ -8,11 +8,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; @@ -44,9 +45,9 @@ private final IBusinessInterchangeService bizExchangeService; - @ApiOperation("设备交接单查询") + @ApiOperation("设备交接单列表") @PostMapping("/listPage") - public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) throws Exception { + public ReturnDTO> exchangeListPage(@RequestBody @Valid InterchangeListRequest request, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } @@ -63,7 +64,7 @@ return ReturnUtil.success(bizExchangeService.exchangeDetail(idDTO.getId())); } - @ApiOperation("设备交接单更新(暂定只可以更新交接单,样品明细不可动)") + @ApiOperation("设备交接单更新") @PostMapping("/update") public ReturnDTO updateExchange(@RequestBody @Valid BusinessInterchange businessInterchange, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(businessInterchange.getId()), () -> { @@ -99,4 +100,10 @@ bizExchangeService.exportExchange(request, response); } + @ApiOperation("设备交接单打印") + @PostMapping("/form/export") + public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { + bizExchangeService.formExport(idDTO.getId(), 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 b247f6b..9fd58a9 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 @@ -9,8 +9,9 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.order.OrderCancelRequest; -import com.casic.missiles.dto.business.order.OrderListResponse; import com.casic.missiles.dto.business.order.OrderListRequest; +import com.casic.missiles.dto.business.order.OrderListResponse; +import com.casic.missiles.dto.business.order.OrderPrintDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.exception.BusinessException; @@ -133,8 +134,8 @@ @ApiOperation("委托书表单打印/导出") @PostMapping("/form/export") - public void formExport(@RequestBody @Valid IdDTO idDTO, HttpServletResponse response) { - businessOrderService.formExport(idDTO.getId(), response); + public void formExport(@RequestBody @Valid OrderPrintDTO orderPrintDTO, HttpServletResponse response) { + businessOrderService.formExport(orderPrintDTO.getId(), orderPrintDTO.getExcel(), response); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java index 6899379..78035c4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java @@ -6,18 +6,18 @@ 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.*; -import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; -import com.casic.missiles.dto.meter.FileApprovalListRequest; -import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.FileListRequest; import com.casic.missiles.dto.meter.FileSaveResponse; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.meter.MeterDictEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterFile; import com.casic.missiles.service.meter.IMeterFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -37,15 +37,9 @@ import java.util.Objects; /** - * @Description: 计量文件 - * 功能: - * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 - * 2.文件提交 - * 根据表单id获取流程定义id; - * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 - * 3.文件审批 + * @Description: * @Author: wangpeng - * @Date: 2022/11/21 17:47 + * @Date: 2024/7/2 17:09 */ @Api(tags = "计量文件管理接口") @Controller @@ -57,7 +51,6 @@ private AbstractDictService dictService; /** - * 文件列表,列表中查的是文件表中已通过的 * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 */ @ApiOperation("文件列表/详情(分页)") @@ -68,7 +61,7 @@ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + return ReturnUtil.success(super.packForBT(meterFileService.fileListPage(page, request))); } @ApiOperation("文件列表(不分页)") @@ -78,7 +71,7 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return ReturnUtil.success(meterFileService.list(request)); + return ReturnUtil.success(meterFileService.fileList(request)); } @ApiOperation("文件导出") @@ -97,62 +90,35 @@ result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); }); } else { - list = meterFileService.list(request); + list = meterFileService.fileList(request); } super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); } - @ApiOperation("文件保存(保存至草稿箱)") - @PostMapping("/save") + @ApiOperation("文件新建") + @PostMapping("/add") @ResponseBody - public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO add(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.saveFile(meterFile); + return meterFileService.addFile(meterFile); } - /** - * 草稿箱文件编辑 - */ - @ApiOperation("草稿箱文件编辑") - @PostMapping("/draftUpdate") + @ApiOperation("文件编辑") + @PostMapping("/update") @ResponseBody - public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + public ReturnDTO update(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return meterFileService.draftUpdate(meterFile); + return meterFileService.fileUpdate(meterFile); } - /** - * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” - * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 - */ - @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") - @PostMapping("/submit") - @ResponseBody - public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.submitFile(request); - } - - @ApiOperation("文件更新为已废止") - @PostMapping("/update") - @ResponseBody - public ReturnDTO update(@RequestBody IdDTO idDTO) { - Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { - throw new BusinessException(BusinessExceptionEnum.ID_NULL); - }); - return meterFileService.updateFile(idDTO.getId()); - } - - @ApiOperation("文件删除(草稿删除也调用该接口)") + @ApiOperation("文件删除") @PostMapping("/delete") @ResponseBody public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { @@ -172,58 +138,14 @@ return meterFileService.deleteBatchFile(idsDTO.getIds()); } - /** - * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) - * 全部:所有状态的单据 - * 草稿箱:发起者已保存,但未提交的单据 - * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) - * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) - * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) - * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 - * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 - */ - @ApiOperation("文件审批列表及详情中基础信息(分页)") - @PostMapping("/approval/listPage") + @ApiOperation("文件更新为已废止") + @PostMapping("/update") @ResponseBody - public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - Page page = PageFactory.defaultPage(); - List responseList = meterFileService.approvalListPage(page, request); - page.setRecords(responseList); - return ReturnUtil.success(super.packForBT(page)); - } - - /** - * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) - * 前端控制按钮权限 - */ - @ApiOperation("审批操作-删除") - @PostMapping("/approval/operate/delete") - @ResponseBody - public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.approvalDelete(request); - } - - /** - * 审批操作-编辑 - * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 - */ - @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") - @PostMapping("/failUpdate") - @ResponseBody - public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { - Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - if (bindingResult.hasErrors()) { - throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); - } - return meterFileService.failUpdate(meterFile); + return meterFileService.updateFile(idDTO.getId()); } @ApiOperation("用于选择下拉所依据的技术文件查询") @@ -232,6 +154,4 @@ public ReturnDTO querySelectList() { return meterFileService.querySelectList(); } - - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java new file mode 100644 index 0000000..8f4e8de --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileDeprecatedController.java @@ -0,0 +1,238 @@ +package com.casic.missiles.controller.meter; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; +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.*; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.dto.meter.FileApprovalListRequest; +import com.casic.missiles.dto.meter.FileApprovalListResponse; +import com.casic.missiles.dto.meter.FileListRequest; +import com.casic.missiles.dto.meter.FileSaveResponse; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.meter.MeterFile; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.meter.IMeterFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + * @Description: 计量文件 + * 功能: + * 1.列表、导出、保存至草稿、草稿编辑、文件更新为已废止、删除、批量删除 + * 2.文件提交 + * 根据表单id获取流程定义id; + * 根据流程定义id启动流程实例,参考RuoYi,钉钉vue2中设置了几个流程变量,先不用 + * 3.文件审批 + * @Author: wangpeng + * @Date: 2022/11/21 17:47 + */ +@Api(tags = "计量文件管理接口--废弃") +@Deprecated +@Controller +@RequestMapping("/meter/file/deprecated") +public class MeterFileDeprecatedController extends ExportController { + @Autowired + private IMeterFileService meterFileService; + @Resource + private AbstractDictService dictService; + + /** + * 文件列表,列表中查的是文件表中已通过的 + * 质量文件(计量法规、质量手册、程序文件、作业文件、技术能力、CNAS文件)、计量管理规章制度、计量管理办法、校准检测办法、计量规程 + */ + @ApiOperation("文件列表/详情(分页)") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> listPage(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(meterFileService.listPage(page, request))); + } + + @ApiOperation("文件列表(不分页)") + @PostMapping("/list") + @ResponseBody + public ReturnDTO> list(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return ReturnUtil.success(meterFileService.list(request)); + } + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list; + if (!CollectionUtils.isEmpty(request.getIds())) { + list = meterFileService.listByIds(request.getIds()); + list.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + } else { + list = meterFileService.list(request); + } + super.exportExcel(MeterFile.class, list, ExportEnum.FILE_EXPORT.getSheetName()); + } + + @ApiOperation("文件保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.saveFile(meterFile); + } + + /** + * 草稿箱文件编辑 + */ + @ApiOperation("草稿箱文件编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.draftUpdate(meterFile); + } + + /** + * 文件提交前一定要保存至草稿箱,保证即使流程提交失败(也可在草稿箱中查看),提示用户“文件提交失败已保存至草稿箱,请在草稿箱中重新提交” + * 提交的流程不会出现同一文件重复提交的情况,因为每次提交前会保存到草稿,且提交成功会更新为非草稿状态,不会出现待审批task关联同一业务主键 + */ + @ApiOperation("文件提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.submitFile(request); + } + + @ApiOperation("文件更新为已废止") + @PostMapping("/update") + @ResponseBody + public ReturnDTO update(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.updateFile(idDTO.getId()); + } + + @ApiOperation("文件删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteFile(idDTO.getId()); + } + + @ApiOperation("文件批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return meterFileService.deleteBatchFile(idsDTO.getIds()); + } + + /** + * 文件审批,状态更新考虑要更新业务表状态和flowable的事务,每个状态的查询方式不同(每个状态列表对应的详情都需要查看流程的进行到哪,dingding有通过流程实例id查看详情(看原型图)) + * 全部:所有状态的单据 + * 草稿箱:发起者已保存,但未提交的单据 + * 待审批:流程到该审批者用户,用户要去审批的单据(采用activiti自己待办任务列表实现) + * 审批中:管理员角色可以查看所有的未完成的任务(activiti查看所有待办任务列表实现),发起者可查看自己的(google工作流有收藏查看发起者自己的流程方法) + * 已通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的(google工作流有收藏查看有参与的流程方法) + * 未通过:管理员角色可以查看所有的,发起者可查看自己的,审批者可查看流程中有自己的且是自己审批过的,未走到的后续节点的审批人看不到 + * 已取消:管理员角色可以查看所有的,发起者可查看自己的,审批者无意义 + */ + @ApiOperation("文件审批列表及详情中基础信息(分页)") + @PostMapping("/approval/listPage") + @ResponseBody + public ReturnDTO> approvalListPage(@RequestBody @Valid FileApprovalListRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + List responseList = meterFileService.approvalListPage(page, request); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + /** + * 删除(发起者或具有删除权限的用户可以删除,已通过/未通过状态不可删除) + * 前端控制按钮权限 + */ + @ApiOperation("审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.approvalDelete(request); + } + + /** + * 审批操作-编辑 + * 驳回的流程放置在未通过列表中,实现进行编辑后自动审核通过发起人节点 + */ + @ApiOperation("未通过文件编辑(驳回后的文件重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid MeterFile meterFile, BindingResult bindingResult) { + Assert.isFalse(Objects.isNull(meterFile.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return meterFileService.failUpdate(meterFile); + } + + @ApiOperation("用于选择下拉所依据的技术文件查询") + @PostMapping("/querySelectList") + @ResponseBody + public ReturnDTO querySelectList() { + return meterFileService.querySelectList(); + } + + +} diff --git a/casic-metering-api/src/main/resources/config/application-dev.yml b/casic-metering-api/src/main/resources/config/application-dev.yml index b7c6a3a..5200b6a 100644 --- a/casic-metering-api/src/main/resources/config/application-dev.yml +++ b/casic-metering-api/src/main/resources/config/application-dev.yml @@ -38,7 +38,10 @@ calibration: "现场检定审批报告" environmental: "现场环境记录" testOrder: "检测委托单" + testOrderExcel: "检测委托单excel" calibrationOrder: "检定或校准委托单" + calibrationOrderExcel: "检定或校准委托单excel" + interchange: "设备交接单" logging: level.root: info diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java index 47c655c..ba2a1d5 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/business/FilePrintTypeEnum.java @@ -6,4 +6,5 @@ String TEST_ORDER = "检测委托单"; String CALIBRATION_ORDER = "检定或校准委托单"; String ORIGINAL_RECORD = "原始记录"; + String SAMPLE_INTERCHANGE = "设备交接单"; } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java index 54da2d3..72e52b2 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareFilePrintTypeEnum.java @@ -13,6 +13,7 @@ put(TEST_ORDER, TEST_ORDER_BEAN); //检测委托单 put(CALIBRATION_ORDER, CALIBRATION_ORDER_BEAN); //检定或校准委托单 put(ORIGINAL_RECORD, ORIGINAL_RECORD_BEAN); //原始记录 + put(SAMPLE_INTERCHANGE, SAMPLE_INTERCHANGE_BEAN); //设备交接单 } }); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java index b3b12ad..b1793ac 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/PrintFileDataBeanNameAliasEnum.java @@ -14,5 +14,8 @@ String CALIBRATION_ORDER_BEAN = "calibrationOrderBean"; //校准证书 - String ORIGINAL_RECORD_BEAN = "originalRecord"; + String ORIGINAL_RECORD_BEAN = "originalRecordBean"; + + //设备交接单 + String SAMPLE_INTERCHANGE_BEAN = "sampleInterchangeBean"; } 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 f4e180e..5e4eeed 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessInterchangeMapper.xml @@ -11,7 +11,7 @@ - + @@ -35,17 +35,16 @@ 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 - SELECT - bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever + bif.id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee FROM ( - SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS - "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel" + SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer, + deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee FROM business_interchange WHERE is_del = 0 - AND interchange_Code=#{request.interchangeCode} + AND interchange_code=#{request.interchangeCode} AND reciever=#{request.reciever} @@ -87,41 +86,22 @@ diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml index e884b36..1b433f8 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml @@ -33,7 +33,7 @@ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, - blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark + blei.measure_status, blei.measure_person_id, csi.label_bind,blei.remark AS remark, bo.bus_person_id, bo.bus_person_name 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 ff086d9..a4614d5 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -12,8 +12,7 @@ - id - , order_id, sample_id, sample_status + id, order_id, sample_id, sample_status @@ -99,7 +98,15 @@ AND csi.sample_belong = #{request.sampleBelong} ) csi ON csi.id = bosr.sample_id - ORDER BY bosr.create_time DESC + + ORDER BY bosr.create_time DESC + + + ORDER BY bosr.real_deliver_time DESC + + + ORDER BY bosr.return_time DESC + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java index 51b6500..80138a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "委托书编号", dataType = "String") private String orderNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "是否加急", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java index 1610b44..adb7ded 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceDispatchVO.java @@ -47,8 +47,8 @@ @ExcelProperty(value = "出厂编号", order = 3) private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 4) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 4) private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java index bf88436..bad5477 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/DeviceScanVO.java @@ -38,7 +38,7 @@ @ApiModelProperty(value = "出厂编号", dataType = "String") private String manufacturingNo; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "要求检完时间", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java index c364e03..8937a2f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/dispatch/ReadSampleDTO.java @@ -26,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java index f821873..b65ac49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/interchange/BusinessInterchangeDetailResponse.java @@ -1,7 +1,6 @@ package com.casic.missiles.dto.business.interchange; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import io.swagger.annotations.ApiModelProperty; @@ -23,191 +22,49 @@ public class BusinessInterchangeDetailResponse implements Serializable { private static final long serialVersionUID = 1L; - - - @TableId("id") private Long id; - /** - * 交接单编号 - */ @ApiModelProperty(value = "交接单编号", dataType = "String") - @TableField("interchange_code") private String interchangeCode; - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书id", dataType = "String") - @TableField("order_id") - private Long orderId; - - /** - * 委托书id - */ - @ApiModelProperty(value = "委托书编号", dataType = "String") - private String orderCode; - - /** - * 证书单位名称 - */ - @ApiModelProperty(value = "证书单位名称", dataType = "String") - @TableField("certification_company") - private String certificationCompany; - - /** - * 证书单位传真 - */ - @ApiModelProperty(value = "证书单位传真", dataType = "String") - @TableField("certification_company_fex") - private String certificationCompanyFex; - - /** - * 证书单位邮编 - */ - @ApiModelProperty(value = "证书单位邮编", dataType = "String") - @TableField("certification_company_email") - private String certificationCompanyEmail; - - /** - * 接收人 - */ - @ApiModelProperty(value = "接收人", dataType = "String") - @TableField("reciever") - private String reciever; - - /** - * 接收人电话/手机 - */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; - - /** - * 证书单位地址 - */ - @ApiModelProperty(value = "证书单位地址", dataType = "String") - @TableField("certification_company_address") - private String certificationCompanyAddress; - - /** - * 委托方id(客户id) - */ - @ApiModelProperty(value = "委托方id", dataType = "String") - @TableField("customer_id") - private Long customerId; - - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方地址", dataType = "String") + @ApiModelProperty(value = "客户地址", dataType = "String") private String customerAddress; - @ApiModelProperty(value = "委托日期", dataType = "String") - private String orderTime; - /** - * 完成时间 - */ - @ApiModelProperty(value = "完成时间", dataType = "String") - @TableField("require_over_time") - private String requireOverTime; - - /** - * 交接时间 - */ - @ApiModelProperty(value = "交接时间", dataType = "String") - @TableField("deliver_time") - private String deliverTime; - - /** - * 检校类别(字典code) - */ - @ApiModelProperty(value = "检校类别(字典code)", dataType = "String") - @TableField("measure_category") - private String measureCategory; - - /** - * 保密要求(字典code) - */ - @ApiModelProperty(value = "保密要求(字典code)", dataType = "String") - @TableField("secrecy") - private String secrecy; - - /** - * 样品外观说明(手填) - */ - @ApiModelProperty(value = "样品外观说明(手填)", dataType = "String") - @TableField("appearance") - private String appearance; - - /** - * 依据文件说明(手填) - */ - @ApiModelProperty(value = "依据文件说明(手填)", dataType = "String") - @TableField("rely_file") - private String relyFile; - - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer") + @ApiModelProperty(value = "联系人", dataType = "String") private String deliverer; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检时间", dataType = "String") - private String delivererTime; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人(可改写,以实际送检人为准)", dataType = "String") - @TableField("deliverer_tel") + @ApiModelProperty(value = "联系人电话", dataType = "String") private String delivererTel; - /** - * 送检人签名文件,minio存储文件名(为空时打印签字) - */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "证书单位名称", dataType = "String") + private String certificationCompany; - /** - * 送检人签字时间 - */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "证书地址", dataType = "String") + private String certificationCompanyAddress; - /** - * 接收人签名文件,minio存储文件名(系统签名模块获取) - */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") + @ApiModelProperty(value = "收发员", dataType = "String") + private String reciever; + + @ApiModelProperty(value = "签收人", dataType = "String") + private String signee; + + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") private String recieverSignFile; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + private String recieverSignTime; - @TableField("is_del") - private Integer isDel; - - @TableField("create_user") - private Long createUser; - - @TableField("create_time") - private String createTime; - - @TableField("update_time") - private String updateTime; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + private String signeeSignFile; @TableField(exist = false) private List customerSampleList; 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 index 9178cf2..e777f14 100644 --- 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 @@ -1,9 +1,7 @@ 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.Builder; import lombok.Data; import java.util.List; @@ -15,17 +13,17 @@ @ApiModelProperty(value = "交接单编号", dataType = "String") private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "交接人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - private String deliverer; //委托书中自带 + @ApiModelProperty(value = "联系人/送检人", dataType = "String") + private String deliverer; /** * 导出ids 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 index b3720fb..ef125a3 100644 --- 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 @@ -7,8 +7,6 @@ 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.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,46 +23,40 @@ private Long id; @ApiModelProperty(value = "交接单编号", dataType = "String") - @ExcelProperty(value = "交接单编号", order = 0) private String interchangeCode; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 1) - @TableField(exist = false) + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; + @ApiModelProperty(value = "委托单编号", dataType = "String") + @ExcelProperty(value = "委托单编号", order = 1) + private String orderNo; + @ApiModelProperty(value = "委托方名称", dataType = "String") @ExcelProperty(value = "委托方名称", order = 2) - @TableField(exist = false) private String customerName; - @ApiModelProperty(value = "接收人", dataType = "String") - @ExcelProperty(value = "接收人", order = 3) + @ApiModelProperty(value = "联系人", dataType = "String") + @ExcelProperty(value = "联系人", order = 3) + private String deliverer; + + @ApiModelProperty(value = "联系人电话", dataType = "String") + @ExcelProperty(value = "联系人电话", order = 4) + private String delivererTel; + + @ApiModelProperty(value = "证书单位名称", dataType = "String") + @ExcelProperty(value = "证书单位名称", order = 5) + private String certificationCompany; + + @ApiModelProperty(value = "收发员", dataType = "String") + @ExcelProperty(value = "收发员", order = 6) private String reciever; - @ApiModelProperty(value = "送检人", dataType = "String") - @ExcelProperty(value = "送检人", order = 4) - private String deliverer; //以实际送检人为准 + @ApiModelProperty(value = "签收人", dataType = "String") + @ExcelProperty(value = "签收人", order = 7) + private String signee; - @ApiModelProperty(value = "送检人联系方式", dataType = "String") - private String delivererTel; //以实际送检人联系方式为准 - - - @ApiModelProperty(value = "交接时间", dataType = "String") - @ExcelProperty(value = "交接时间", order = 5) - private String deliverTime; - - @ApiModelProperty(value = "委托书编号", dataType = "String") - @TableField(exist = false) - private String orderNo; - - @ApiModelProperty(value = "要求捡完时间", dataType = "String") - private String requireOverTime; //委托书中自带 - - @ApiModelProperty(value = "是否加急", dataType = "String") - private String isUrgent; - - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty(value = "备注", order = 8) - private String remark; + @ApiModelProperty(value = "交接样品数量", dataType = "int") + @ExcelProperty(value = "交接样品数量", order = 8) + private long sampleAmount; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java index f74d14a..c2a05a3 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutDetailResponse.java @@ -47,7 +47,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java index 04deaba..d20879f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleHandOutListResponse.java @@ -49,8 +49,8 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java index ebc0bf5..7258759 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/labExecutive/SampleLabExecutiveListResponse.java @@ -53,8 +53,8 @@ // @ExcelProperty(value = "委托方id", order = 5) private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -107,10 +107,15 @@ @ApiModelProperty(value = "委托书id", dataType = "Long") private Long orderId; - @ApiModelProperty(value = "备注", dataType = "String") private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @JSONField(serialize = false) private String measureStatus; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java index 43d6f5c..f91b66c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderListResponse.java @@ -43,8 +43,8 @@ // @ExcelProperty(value = "委托方id",order = 1) private String customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码",order = 1) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号",order = 1) private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java new file mode 100644 index 0000000..e0e399a --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/order/OrderPrintDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.dto.business.order; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/1 14:12 + */ +@Data +public class OrderPrintDTO { + @NotNull(message = "主键ID不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @ApiModelProperty(value = "是否为excel", dataType = "int") + private int excel; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java index 4ee9515..778b1b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificatePrintDetail.java @@ -101,7 +101,7 @@ private Long orderId; /** - * 委托方代码 + * 委托方编号 */ @TableField(exist = false) private String customerNo; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java index 6861a6c..783f97e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/siteExecutive/BusinessSiteExecutiveDetail.java @@ -74,7 +74,7 @@ @TableField("executive_address") private String executiveAddress; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") 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 cd29832..91ce535 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 @@ -22,7 +22,7 @@ @ApiModelProperty(value = "样品所属", dataType = "String") private String sampleBelong; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 0dc9233..53316ec 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 @@ -50,8 +50,8 @@ @ApiModelProperty(value = "生产厂家", dataType = "String") private String manufacturer; - @ApiModelProperty(value = "委托方代码", dataType = "String") - @ExcelProperty(value = "委托方代码", order = 5) + @ApiModelProperty(value = "委托方编号", dataType = "String") + @ExcelProperty(value = "委托方编号", order = 5) private String customerNo; @TableField(exist = false) @@ -90,4 +90,10 @@ @ExcelProperty(value = "备注", order = 12) private String remark; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java index 099ad47..000c492 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/CustomerSampleListVO.java @@ -21,15 +21,18 @@ private String sampleName; @ApiModelProperty(value = "样品型号", dataType = "String") private String sampleModel; - @ApiModelProperty(value = "出厂编号", dataType = "String") + @ApiModelProperty(value = "出厂编号/仪器编号", dataType = "String") private String manufacturingNo; + @ApiModelProperty(value = "外观状态", dataType = "String") + private String appearanceStatus; @ApiModelProperty(value = "是否存库", dataType = "Integer") private Integer isExistSample; @ApiModelProperty(value = "附件说明", dataType = "String") private String appendixDescn; - @ApiModelProperty(value = "检定要求", dataType = "Integer") + @ApiModelProperty(value = "检定要求", dataType = "String") private String measureContent; - @ApiModelProperty(value = "外观", dataType = "String") - private String remark; + @ApiModelProperty(value = "备注", dataType = "String") + private String interchangeRemark; + private int seq; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java index 7b071a0..61704b9 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/InterchangeSampleListRequest.java @@ -18,7 +18,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerId; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java index 5ce6b3e..ed73682 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/MultiItemSampleListResponse.java @@ -8,7 +8,7 @@ @ApiModel("多场景样品列表") public class MultiItemSampleListResponse { - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java index b7ead9a..2a3bd49 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/customer/sample/SubpackageSampleListRequest.java @@ -15,7 +15,7 @@ @ApiModelProperty(value = "样品名称", dataType = "String") private String sampleName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @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 5663ba0..e7dcb8b 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; -import com.casic.missiles.model.customer.CustomerSampleInfo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -65,18 +64,18 @@ private String certificationCompanyEmail; /** - * 接收人 + * 收发员 */ - @ApiModelProperty(value = "接收人", dataType = "String") + @ApiModelProperty(value = "收发员", dataType = "String") @TableField("reciever") private String reciever; /** - * 接收人电话/手机 + * 签收人 */ - @ApiModelProperty(value = "接收人电话/手机", dataType = "String") - @TableField("reciever_phone") - private String recieverPhone; + @ApiModelProperty(value = "签收人", dataType = "String") + @TableField("signee") + private String signee; /** * 证书单位地址 @@ -151,23 +150,23 @@ /** * 送检人签名文件,minio存储文件名(为空时打印签字) */ - @ApiModelProperty(value = "送检人签名文件,minio存储文件名(为空时打印签字)", dataType = "String") - @TableField("deliverer_sign_file") - private String delivererSignFile; + @ApiModelProperty(value = "收发员签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") + @TableField("reciever_sign_file") + private String recieverSignFile; /** * 送检人签字时间 */ - @ApiModelProperty(value = "送检人签字时间", dataType = "String") - @TableField("deliverer_sign_time") - private String delivererSignTime; + @ApiModelProperty(value = "收发员签字时间", dataType = "String") + @TableField("reciever_sign_time") + private String recieverSignTime; /** * 接收人签名文件,minio存储文件名(系统签名模块获取) */ - @ApiModelProperty(value = "接收人签名文件,minio存储文件名(系统签名模块获取)", dataType = "String") - @TableField("reciever_sign_file") - private String recieverSignFile; + @ApiModelProperty(value = "签收人签名文件,minio存储文件名(为空时手填)", dataType = "String") + @TableField("signee_sign_file") + private String signeeSignFile; /** * 备注 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java index 440d296..15c56b4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOrder.java @@ -130,7 +130,7 @@ @ApiModelProperty(value = "委托方名称", dataType = "String") private String customerName; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方联系方式(固话)", dataType = "String") @@ -162,6 +162,12 @@ @ApiModelProperty(value = "创建人", dataType = "String") private Long createUser; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + private String createTime; private String updateTime; 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 c531052..9381bc3 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 @@ -36,6 +36,17 @@ @TableField("sample_id") private Long sampleId; + @TableField("sample_name") + private String sampleName; + + @TableField("sample_model") + private String sampleModel; + + @TableField("manufacturing_no") + private String manufacturingNo; + + @TableField("appearance_status") + private String appearanceStatus; /** * 交接单id @@ -55,6 +66,9 @@ @TableField("remark") private String remark; + @TableField("interchange_remark") + private String interchangeRemark; + /** * 样品在本次委托中的检定项目 */ 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 c7ae4d4..e1cddfb 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 @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; -import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NoArgsConstructor; @@ -27,7 +26,7 @@ @ApiModelProperty(value = "委托方id", dataType = "Long") private Long customerId; - @ApiModelProperty(value = "委托方代码", dataType = "String") + @ApiModelProperty(value = "委托方编号", dataType = "String") private String customerNo; @ApiModelProperty(value = "委托方名称", dataType = "String") @@ -81,7 +80,6 @@ @ApiModelProperty(value = "接收时间", dataType = "String") private String deliverTime; - @ApiModelProperty(value = " 检定方式", dataType = "String") @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE) private String measureType; @@ -149,6 +147,12 @@ @ApiModelProperty(value = "送检人联系方式", dataType = "String") private String delivererTel; + @ApiModelProperty(value = "业务员id", dataType = "Long") + private Long busPersonId; + + @ApiModelProperty(value = "业务员名字", dataType = "String") + private String busPersonName; + @TableField(exist = false) @ApiModelProperty(value = "委托方地址", dataType = "String") private String customerAddress; 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 ca6cd6f..4961c24 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,5 +1,6 @@ package com.casic.missiles.service.Impl.business; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -9,7 +10,10 @@ 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.*; +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +import com.casic.missiles.dto.business.interchange.InterchangeListRequest; +import com.casic.missiles.dto.business.interchange.InterchangeListResponse; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; @@ -20,17 +24,21 @@ import com.casic.missiles.model.business.BusinessInterchange; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import com.casic.missiles.service.business.IBusinessInterchangeService; -import com.casic.missiles.utils.DictCodeUtils; +import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.NumberGeneratorUtil; +import com.casic.missiles.utils.SpringContextUtil; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; import java.util.List; +import static com.casic.missiles.enums.business.FilePrintTypeEnum.SAMPLE_INTERCHANGE; + /** *

* 业务管理-设备交接单 服务实现类 @@ -39,6 +47,7 @@ * @author cz * @since 2023-02-02 */ +@Slf4j @Service @AllArgsConstructor public class BusinessInterchangeServiceImpl extends ServiceImpl implements IBusinessInterchangeService { @@ -46,12 +55,18 @@ private final IBaseExportService iBaseExportService; private final BusinessOrderSampleRelationMapper sampleRelationMapper; - /** - * 送检人查询条件不在设备交接单中,需要联查才可以实现 - */ @Override - public Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception { - page.setRecords(this.baseMapper.selectInterchangeListPage(page, request)); + public Page exchangeListPage(Page page, InterchangeListRequest request) { + List interchangeList = this.baseMapper.selectInterchangeListPage(page, request); + if (!CollectionUtils.isEmpty(interchangeList)) { + for (InterchangeListResponse interchange : interchangeList) { + //样品数量 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("interchange_id", interchange.getId()); + interchange.setSampleAmount(sampleRelationMapper.selectCount(wrapper)); + } + } + page.setRecords(interchangeList); return page; } @@ -59,13 +74,14 @@ public BusinessInterchangeDetailResponse exchangeDetail(Long id) { BusinessInterchangeDetailResponse businessExchange = this.baseMapper.getInfoById(id); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("order_id", businessExchange.getOrderId()); + queryWrapper.eq("interchange_id", id); List orderSampleList = sampleRelationMapper.selectList(queryWrapper); - List customerSampleList = new ArrayList<>(); - for (BusinessOrderSampleRelation businessOrderSampleRelation : orderSampleList) { - CustomerSampleListVO customerSampleListVO = sampleRelationMapper.getInterChangeSampleList(businessOrderSampleRelation.getOrderId(), businessOrderSampleRelation.getSampleId()); - customerSampleList.add(customerSampleListVO); - } + List customerSampleList = ConvertUtils.sourceToTarget(orderSampleList, CustomerSampleListVO.class); +// List customerSampleList = new ArrayList<>(); +// for (BusinessOrderSampleRelation businessOrderSampleRelation : orderSampleList) { +// CustomerSampleListVO customerSampleListVO = sampleRelationMapper.getInterChangeSampleList(businessOrderSampleRelation.getOrderId(), businessOrderSampleRelation.getSampleId()); +// customerSampleList.add(customerSampleListVO); +// } businessExchange.setCustomerSampleList(customerSampleList); return businessExchange; } @@ -82,13 +98,22 @@ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } - /** - * 更新只是交接单的变更,没有任何其他单位的变化 - */ @Override + @Transactional public ReturnDTO updateExchange(BusinessInterchange businessInterchange) { int updateFlag = this.baseMapper.updateById(businessInterchange); if (updateFlag > 0) { + //先删除,再新增 + if (!CollectionUtils.isEmpty(businessInterchange.getCustomerSampleList())) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("interchange_id", businessInterchange.getId()); + BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); + businessOrderSampleRelation.setInterchangeId((long) 0); + sampleRelationMapper.update(businessOrderSampleRelation, wrapper); + for (CustomerSampleListVO sampleInfo : businessInterchange.getCustomerSampleList()) { + sampleStatusUpdator(sampleInfo, businessInterchange.getId()); + } + } return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); @@ -137,6 +162,25 @@ } } + @Override + public void formExport(Long id, HttpServletResponse response) { + BusinessInterchangeDetailResponse interchangeDetail = this.exchangeDetail(id); + PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); + try { + printFileRegister.registerPrintFile( + RegisterCustomParameters.builder() + .customObject(interchangeDetail) + .prefixType(SAMPLE_INTERCHANGE) + .pdf(false) + .response(response) + //文件自定义命名 委托方名称+委托单编号 + .customFileName(interchangeDetail.getCustomerName() + interchangeDetail.getOrderNo()) + .build()); + } catch (Exception ex) { + log.error("交接单表单导出/打印异常,表单信息:{},异常信息:{}", JSONObject.toJSON(interchangeDetail), ex); + } + } + private void initFlushEmpty(InterchangeListRequest request) { request.setEndTime(null); @@ -144,7 +188,6 @@ request.setCustomerNo(null); request.setCustomerName(null); request.setDeliverer(null); - request.setReciever(null); request.setStartTime(null); } @@ -160,7 +203,7 @@ QueryWrapper orderSampleWrapper = new QueryWrapper<>(); orderSampleWrapper.eq("interchange_id", interChangeId); BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); - businessOrderSampleRelation.setInterchangeId(null); + businessOrderSampleRelation.setInterchangeId((long) 0); return sampleRelationMapper.update(businessOrderSampleRelation, orderSampleWrapper); } @@ -170,6 +213,11 @@ orderSampleWrapper.eq("sample_id", sampleInfo.getSampleId()); BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation(); businessOrderSampleRelation.setInterchangeId(interChangeId); + businessOrderSampleRelation.setSampleName(sampleInfo.getSampleName()); + businessOrderSampleRelation.setSampleModel(sampleInfo.getSampleModel()); + businessOrderSampleRelation.setManufacturingNo(sampleInfo.getManufacturingNo()); + businessOrderSampleRelation.setAppearanceStatus(sampleInfo.getAppearanceStatus()); + businessOrderSampleRelation.setInterchangeRemark(sampleInfo.getInterchangeRemark()); return sampleRelationMapper.update(businessOrderSampleRelation, orderSampleWrapper); } 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 9317967..50b014b 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 @@ -44,14 +44,9 @@ import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; -import static com.casic.missiles.enums.business.FilePrintTypeEnum.CALIBRATION_CERTIFICATE; - /** *

* 业务管理-委托书 服务实现类 @@ -263,14 +258,19 @@ } @Override - public void formExport(Long id, HttpServletResponse response) { + public void formExport(Long id, int excel, HttpServletResponse response) { BusinessOrder businessOrder = this.orderDetail(id); if (Objects.nonNull(businessOrder)) { PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); try { DictCodeUtils.convertDictCodeToName(businessOrder); + Map map = new HashMap<>(); + if (Objects.nonNull(excel) && 1 == excel) { + map.put("excel", "1"); + } printFileRegister.registerPrintFile( RegisterCustomParameters.builder() + .customParam(map) .customObject(businessOrder) .prefixType(businessOrder.getOrderTypeName()) .pdf(false) diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java index 3fa16c6..107adac 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterFileServiceImpl.java @@ -35,8 +35,8 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; -import org.flowable.engine.TaskService; import org.flowable.engine.runtime.ProcessInstance; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -66,8 +66,6 @@ @Autowired private ApprovalOperateService approvalOperateService; @Resource - private TaskService taskService; - @Resource private RuntimeService runtimeService; @Override @@ -397,4 +395,81 @@ public List list(List ids) { return this.baseMapper.selectBatchIds(ids); } + + @Override + public Page fileListPage(Page page, FileListRequest request) { + QueryWrapper wrapper = getMeterFileWrapper(request); + Page meterFilePage = meterFileMapper.selectPage(page, wrapper); + meterFilePage.getRecords().stream().forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + return meterFilePage; + } + + @Override + public List fileList(FileListRequest request) { + QueryWrapper wrapper = getMeterFileWrapper(request); + List meterFiles = meterFileMapper.selectList(wrapper); + meterFiles.forEach(result -> { + result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, result.getApprovalStatus())); + result.setEffectiveStatusName(dictService.getDictNameByCode(MeterDictEnum.EFFECTIVE_STATUS, result.getEffectiveStatus())); + result.setFileTypeName(dictService.getDictNameByCode(MeterDictEnum.FILE_TYPE, result.getFileType())); + }); + return meterFiles; + } + + @Override + @Transactional + public ReturnDTO addFile(MeterFile file) { + //生成文件编号 + Long maxNo = meterFileMapper.selectMaxFileNo(); + String fileNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.FILE_PREFIX, maxNo); + file.setFileNo(fileNo); + Assert.isFalse(Objects.isNull(ShiroKit.getUser()), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + file.setCreateUserId(ShiroKit.getUser().getId()); //登录者用户id + file.setCreateUser(ShiroKit.getUser().getName()); + int row = meterFileMapper.insert(file); + if (row <= 0) { + return ReturnUtil.failed("文件新建失败"); + } + FileSaveResponse fileSaveResponse = new FileSaveResponse(); + fileSaveResponse.setId(file.getId()); + fileSaveResponse.setFileNo(fileNo); + return ReturnUtil.success(fileSaveResponse); + + } + + @Override + public ReturnDTO fileUpdate(MeterFile file) { + if (meterFileMapper.updateById(file) > 0) { + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + + @NotNull + private QueryWrapper getMeterFileWrapper(FileListRequest request) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.like(StringUtils.isNotBlank(request.getFileNo()), "file_no", request.getFileNo()); + wrapper.like(StringUtils.isNotBlank(request.getFileName()), "file_name", request.getFileName()); + wrapper.like(StringUtils.isNotBlank(request.getFileCode()), "file_code", request.getFileCode()); + wrapper.like(StringUtils.isNotBlank(request.getFileType()), "file_type", request.getFileType()); + wrapper.like(!Objects.isNull(request.getEffectiveStatus()), "effective_status", request.getEffectiveStatus()); + wrapper.apply(StringUtils.isNotBlank(request.getPublishStartTime()),//apply方法传入参数名不能为空 + "{0} <= DATE_FORMAT(publish_time,'%Y-%m-%d')", request.getPublishStartTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getPublishEndTime()), + "{0} >= DATE_FORMAT(publish_time,'%Y-%m-%d')", request.getPublishEndTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getEffectiveStartTime()), + "{0} <= DATE_FORMAT(effective_time,'%Y-%m-%d')", request.getEffectiveStartTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getEffectiveEndTime()), + "{0} >= DATE_FORMAT(effective_time,'%Y-%m-%d')", request.getEffectiveEndTime().split(" ")[0]); + wrapper.eq("is_del", 0); + wrapper.orderByAsc("effective_status").orderByDesc("create_time"); + return wrapper; + } } 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 97d106b..27ccf14 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 @@ -3,11 +3,12 @@ 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.*; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +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; /** *

@@ -19,7 +20,7 @@ */ public interface IBusinessInterchangeService extends IService { - Page exchangeListPage(Page page, InterchangeListRequest request) throws Exception; + Page exchangeListPage(Page page, InterchangeListRequest request); BusinessInterchangeDetailResponse exchangeDetail(Long id); @@ -31,4 +32,5 @@ void exportExchange(InterchangeListRequest request, HttpServletResponse response); + void formExport(Long id, HttpServletResponse response); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java index d610ef8..f557f93 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOrderService.java @@ -38,5 +38,5 @@ List optionRecord(Long id); - void formExport(Long id, HttpServletResponse response); + void formExport(Long id, int excel, HttpServletResponse response); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/interchange/SampleInterchangePrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/interchange/SampleInterchangePrintFileData.java new file mode 100644 index 0000000..b47a2d2 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/interchange/SampleInterchangePrintFileData.java @@ -0,0 +1,76 @@ +package com.casic.missiles.service.listeners.register.data.interchange; + +import com.casic.missiles.dto.business.certificate.RegisterCustomParameters; +import com.casic.missiles.dto.business.file.FilePrintRegister; +import com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse; +import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; +import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; +import com.casic.missiles.service.listeners.register.data.PrintFileDataGeneric; +import com.casic.missiles.service.listeners.register.data.PrintFileDataSupport; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2024/7/2 15:38 + */ +@Component(PrintFileDataBeanNameAliasEnum.SAMPLE_INTERCHANGE_BEAN) +public class SampleInterchangePrintFileData extends PrintFileDataSupport implements PrintFileDataGeneric { + @Value("${casic.template.interchange}") + private String interchangeTemplateName; + + @Override + public FilePrintRegister CustomizedPrintFileRegister(RegisterCustomParameters registerParameters, String templateFileDir) { + BusinessInterchangeDetailResponse metaData = (BusinessInterchangeDetailResponse) registerParameters.getCustomObject(); + //初始化,生成模板文件 + FilePrintRegister filePrintRegister; + filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(interchangeTemplateName)); + + //关联数据 + this.interchangeBaseInfoPopulate(filePrintRegister, metaData) + //样品数据 + .sampleInfoPopulate(filePrintRegister, metaData.getCustomerSampleList()); + return filePrintRegister; + } + + private SampleInterchangePrintFileData interchangeBaseInfoPopulate(FilePrintRegister filePrintRegister, BusinessInterchangeDetailResponse metaData) { + Map map = new HashMap<>(); + map.put("customerName", metaData.getCustomerName()); + map.put("customerAddress", metaData.getCustomerAddress()); + map.put("deliverer", metaData.getDeliverer()); + map.put("delivererTel", metaData.getDelivererTel()); + map.put("certificationCompany", metaData.getCertificationCompany()); + map.put("certificationCompanyAddress", metaData.getCertificationCompanyAddress()); + map.put("recieverSignFile", metaData.getRecieverSignFile()); + map.put("recieverSignTime", metaData.getRecieverSignTime()); + map.put("signeeSignFile", metaData.getSigneeSignFile()); + filePrintRegister.setParams(map); + return this; + } + + private SampleInterchangePrintFileData sampleInfoPopulate(FilePrintRegister filePrintRegister, List customerSampleList) { + List> sampleList = new ArrayList<>(); + if(!CollectionUtils.isEmpty(customerSampleList)) { + for (int i = 0; i < customerSampleList.size(); i++) { + customerSampleList.get(i).setSeq(i + 1); + Map map = new HashMap<>(); + map.put("seq", customerSampleList.get(i).getSeq()); + map.put("sampleName", customerSampleList.get(i).getSampleName()); + map.put("sampleModel", customerSampleList.get(i).getSampleModel()); + map.put("manufacturingNo", customerSampleList.get(i).getManufacturingNo()); + map.put("appearanceStatus", customerSampleList.get(i).getAppearanceStatus()); + map.put("remark", customerSampleList.get(i).getInterchangeRemark()); + sampleList.add(map); + } + } + filePrintRegister.getParams().put("sampleList", sampleList); + return this; + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/order/CalibrationOrderPrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/order/CalibrationOrderPrintFileData.java index 93109ef..ed0b350 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/order/CalibrationOrderPrintFileData.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/order/CalibrationOrderPrintFileData.java @@ -20,12 +20,19 @@ public class CalibrationOrderPrintFileData extends PrintFileDataSupport implements PrintFileDataGeneric { @Value("${casic.template.calibrationOrder}") private String calibrationOrderTemplateName; + @Value("${casic.template.calibrationOrderExcel}") + private String calibrationOrderExcelTemplateName; @Override public FilePrintRegister CustomizedPrintFileRegister(RegisterCustomParameters registerParameters, String templateFileDir) { BusinessOrder metaData = (BusinessOrder) registerParameters.getCustomObject(); //初始化,生成模板文件 - FilePrintRegister filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(calibrationOrderTemplateName)); + FilePrintRegister filePrintRegister; + if ("1".equals(registerParameters.getCustomParam().get("excel"))) { + filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(calibrationOrderExcelTemplateName)); + } else { + filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(calibrationOrderTemplateName)); + } //关联数据 this.orderBaseInfoPopulate(filePrintRegister, metaData) //样品数据 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/order/TestOrderPrintFileData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/order/TestOrderPrintFileData.java index 00a2119..bd4151f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/order/TestOrderPrintFileData.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/order/TestOrderPrintFileData.java @@ -20,12 +20,19 @@ public class TestOrderPrintFileData extends PrintFileDataSupport implements PrintFileDataGeneric { @Value("${casic.template.testOrder}") private String testOrderTemplateName; + @Value("${casic.template.testOrderExcel}") + private String testOrderExcelTemplateName; @Override public FilePrintRegister CustomizedPrintFileRegister(RegisterCustomParameters registerParameters, String templateFileDir) { BusinessOrder metaData = (BusinessOrder) registerParameters.getCustomObject(); //初始化,生成模板文件 - FilePrintRegister filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(testOrderTemplateName)); + FilePrintRegister filePrintRegister; + if ("1".equals(registerParameters.getCustomParam().get("excel"))) { + filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(testOrderExcelTemplateName)); + } else { + filePrintRegister = initialization(templateFileDir, metaData.getId(), getTemplateName(testOrderTemplateName)); + } //关联数据 this.orderBaseInfoPopulate(filePrintRegister, metaData) //样品数据 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/meter/IMeterFileService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/meter/IMeterFileService.java index 945343c..865f47a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/meter/IMeterFileService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/meter/IMeterFileService.java @@ -30,19 +30,28 @@ ReturnDTO draftUpdate(MeterFile meterFile); - ReturnDTO updateFile(Long id); - - ReturnDTO deleteFile(Long id); - - ReturnDTO deleteBatchFile(List ids); - List approvalListPage(Page page, FileApprovalListRequest request); ReturnDTO approvalDelete(ApprovalDeleteRequest request); ReturnDTO failUpdate(MeterFile meterFile); - ReturnDTO querySelectList(); - List list(List ids); + + //===================================新需求不使用功能上述废弃接口,不走审批====================================== + Page fileListPage(Page page, FileListRequest request); + + List fileList(FileListRequest request); + + ReturnDTO addFile(MeterFile meterFile); + + ReturnDTO fileUpdate(MeterFile meterFile); + + ReturnDTO deleteFile(Long id); + + ReturnDTO deleteBatchFile(List ids); + + ReturnDTO updateFile(Long id); + + ReturnDTO querySelectList(); }