From d2b814bb7de5f6fdfc6b922cdd3e556d3848708e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BD=98=E8=8D=A3=E6=99=9F?= <9691125+pan-rongsheng@user.noreply.gitee.com> Date: Fri, 23 Jan 2026 18:31:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=A5=E6=96=99=E5=8A=A0=E5=B7=A5=E8=AE=A2?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ErrorCodeConstants.java | 17 ++ .../EntrustOrderOrderController.java | 52 ++-- .../vo/EntrustOrderDetailPageReqVO.java | 27 ++ .../vo/EntrustOrderDetailRespVO.java | 33 +++ .../vo/EntrustOrderDetailSaveReqVO.java | 27 ++ .../vo/EntrustOrderOrderPageReqVO.java | 2 +- .../vo/EntrustOrderOrderRespVO.java | 8 +- .../vo/EntrustOrderOrderSaveReqVO.java | 2 +- .../OriginalMaterialProcessingController.java | 151 +++++++++++ ...nalMaterialProcessingDetailController.java | 110 ++++++++ ...inalMaterialProcessingDetailPageReqVO.java | 107 ++++++++ ...riginalMaterialProcessingDetailRespVO.java | 136 ++++++++++ ...inalMaterialProcessingDetailSaveReqVO.java | 102 ++++++++ .../OriginalMaterialProcessingPageReqVO.java | 125 +++++++++ .../vo/OriginalMaterialProcessingRespVO.java | 164 ++++++++++++ .../OriginalMaterialProcessingSaveReqVO.java | 146 +++++++++++ .../entrustorder/EntrustOrderDetailDO.java | 30 +++ .../entrustorder/EntrustOrderOrderDO.java | 12 +- .../OriginalMaterialProcessingDO.java | 215 ++++++++++++++++ .../OriginalMaterialProcessingDetailDO.java | 180 +++++++++++++ .../EntrustOrderDetailMapper.java | 12 +- .../entrustorder/EntrustOrderOrderMapper.java | 4 +- ...riginalMaterialProcessingDetailMapper.java | 54 ++++ .../OriginalMaterialProcessingMapper.java | 53 ++++ .../EntrustOrderDetailService.java | 20 ++ .../EntrustOrderDetailServiceImpl.java | 18 ++ .../EntrustOrderOrderService.java | 7 +- .../EntrustOrderOrderServiceImplImpl.java | 55 +++- ...iginalMaterialProcessingDetailService.java | 90 +++++++ ...alMaterialProcessingDetailServiceImpl.java | 113 +++++++++ .../OriginalMaterialProcessingService.java | 105 ++++++++ ...inalMaterialProcessingServiceImplImpl.java | 240 ++++++++++++++++++ 32 files changed, 2375 insertions(+), 42 deletions(-) create mode 100644 zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/originalmaterialprocessing/ErrorCodeConstants.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/OriginalMaterialProcessingController.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/OriginalMaterialProcessingDetailController.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingDetailPageReqVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingDetailRespVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingDetailSaveReqVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingPageReqVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingRespVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingSaveReqVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/originalmaterialprocessing/OriginalMaterialProcessingDO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/originalmaterialprocessing/OriginalMaterialProcessingDetailDO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/originalmaterialprocessing/OriginalMaterialProcessingDetailMapper.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/originalmaterialprocessing/OriginalMaterialProcessingMapper.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/originalmaterialprocessing/OriginalMaterialProcessingDetailService.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/originalmaterialprocessing/OriginalMaterialProcessingDetailServiceImpl.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/originalmaterialprocessing/OriginalMaterialProcessingService.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/originalmaterialprocessing/OriginalMaterialProcessingServiceImplImpl.java diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/originalmaterialprocessing/ErrorCodeConstants.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/originalmaterialprocessing/ErrorCodeConstants.java new file mode 100644 index 00000000..076f1cd1 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/originalmaterialprocessing/ErrorCodeConstants.java @@ -0,0 +1,17 @@ +package com.zt.plat.module.contractorder.enums.originalmaterialprocessing; + +import com.zt.plat.framework.common.exception.ErrorCode; + +/** + * contract-order 错误码枚举类 + * + * contract-order 系统,使用 1-xxx-xxx-xxx 段 + * + * @author ZT + */ +public interface ErrorCodeConstants { + + // ========== 合同模块 1-027-000-000 ========== + ErrorCode ORIGINAL_MATERIAL_PROCESSING_DETAIL_NOT_EXISTS = new ErrorCode(1_027_130_000, "来料加工订单明细不存在"); + ErrorCode ORIGINAL_MATERIAL_PROCESSING_DO_NOT_EXISTS = new ErrorCode(1_027_130_001, "来料加工订单不存在"); +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/EntrustOrderOrderController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/EntrustOrderOrderController.java index e72f8fe9..ce5d2255 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/EntrustOrderOrderController.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/EntrustOrderOrderController.java @@ -21,6 +21,7 @@ import io.swagger.v3.oas.annotations.Operation; import jakarta.validation.*; import jakarta.servlet.http.*; + import java.util.*; import java.io.IOException; @@ -29,18 +30,19 @@ import com.zt.plat.framework.common.pojo.PageParam; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.util.object.BeanUtils; + import static com.zt.plat.framework.common.pojo.CommonResult.success; import com.zt.plat.framework.excel.core.util.ExcelUtils; import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; + import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*; - -@Tag(name = "管理后台 - 采购订单") +@Tag(name = "管理后台 - 委托订单") @RestController -@RequestMapping("/bse/purchase-order") +@RequestMapping("/base/entrust-order") @Validated public class EntrustOrderOrderController implements BusinessControllerMarker { @@ -49,14 +51,14 @@ public class EntrustOrderOrderController implements BusinessControllerMarker { private EntrustOrderOrderService entrustOrderOrderService; @PostMapping("/create") - @Operation(summary = "创建采购订单") + @Operation(summary = "创建委托订单") @PreAuthorize("@ss.hasPermission('bse:purchase-order:create')") public CommonResult createEntrustOrderOrder(@Valid @RequestBody EntrustOrderOrderSaveReqVO createReqVO) { return success(entrustOrderOrderService.createEntrustOrderOrder(createReqVO)); } @PutMapping("/update") - @Operation(summary = "更新采购订单") + @Operation(summary = "更新委托订单") @PreAuthorize("@ss.hasPermission('bse:purchase-order:update')") public CommonResult updateEntrustOrderOrder(@Valid @RequestBody EntrustOrderOrderSaveReqVO updateReqVO) { entrustOrderOrderService.updateEntrustOrderOrder(updateReqVO); @@ -64,7 +66,7 @@ public class EntrustOrderOrderController implements BusinessControllerMarker { } @DeleteMapping("/delete") - @Operation(summary = "删除采购订单") + @Operation(summary = "删除委托订单") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('bse:purchase-order:delete')") public CommonResult deleteEntrustOrderOrder(@RequestParam("id") Long id) { @@ -74,42 +76,53 @@ public class EntrustOrderOrderController implements BusinessControllerMarker { @DeleteMapping("/delete-list") @Parameter(name = "ids", description = "编号", required = true) - @Operation(summary = "批量删除采购订单") - @PreAuthorize("@ss.hasPermission('bse:purchase-order:delete')") + @Operation(summary = "批量删除委托订单") + @PreAuthorize("@ss.hasPermission('bse:purchase-order:delete')") public CommonResult deleteEntrustOrderOrderList(@RequestBody BatchDeleteReqVO req) { entrustOrderOrderService.deleteEntrustOrderOrderListByIds(req.getIds()); return success(true); } @GetMapping("/get") - @Operation(summary = "获得采购订单") + @Operation(summary = "获得委托订单") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('bse:purchase-order:query')") public CommonResult getEntrustOrderOrder(@RequestParam("id") Long id) { EntrustOrderOrderDO EntrustOrderOrder = entrustOrderOrderService.getEntrustOrderOrder(id); - return success(BeanUtils.toBean(EntrustOrderOrder, EntrustOrderOrderRespVO.class)); + EntrustOrderOrderRespVO bean = BeanUtils.toBean(EntrustOrderOrder, EntrustOrderOrderRespVO.class); + if (bean != null) { + bean.setEntrustOrderDetails(entrustOrderOrderService.getEntrustOrderDetailListByOrderId(bean.getId())); + } + return success(bean); } @GetMapping("/page") - @Operation(summary = "获得采购订单分页") + @Operation(summary = "获得委托订单分页") @PreAuthorize("@ss.hasPermission('bse:purchase-order:query')") public CommonResult> getEntrustOrderOrderPage(@Valid EntrustOrderOrderPageReqVO pageReqVO) { PageResult pageResult = entrustOrderOrderService.getEntrustOrderOrderPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, EntrustOrderOrderRespVO.class)); + PageResult bean = BeanUtils.toBean(pageResult, EntrustOrderOrderRespVO.class); + if (bean != null && !bean.getList().isEmpty()) { + bean.getList().forEach(item -> { + item.setEntrustOrderDetails(entrustOrderOrderService.getEntrustOrderDetailListByOrderId(item.getId())); + }); + } + return success(bean); } @GetMapping("/export-excel") - @Operation(summary = "导出采购订单 Excel") + @Operation(summary = "导出委托订单 Excel") @PreAuthorize("@ss.hasPermission('bse:purchase-order:export')") @ApiAccessLog(operateType = EXPORT) public void exportEntrustOrderOrderExcel(@Valid EntrustOrderOrderPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { + HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List list = entrustOrderOrderService.getEntrustOrderOrderPage(pageReqVO).getList(); // 导出 Excel - ExcelUtils.write(response, "采购订单.xls", "数据", EntrustOrderOrderRespVO.class, - BeanUtils.toBean(list, EntrustOrderOrderRespVO.class)); + ExcelUtils.write(response, "委托订单.xls", "数据", EntrustOrderOrderRespVO.class, + BeanUtils.toBean(list, EntrustOrderOrderRespVO.class)); } + //关联订单 //关联订单 @PostMapping("/link-order") @@ -123,7 +136,7 @@ public class EntrustOrderOrderController implements BusinessControllerMarker { @Operation(summary = "根据订单id和方式获取上或下游订单") @PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:query')") public CommonResult> getOrderByOrderIdAndType(@RequestBody DownOrUpOrderReqVO reqVO) { - return success( entrustOrderOrderService.getOrderByOrderIdAndType(reqVO)); + return success(entrustOrderOrderService.getOrderByOrderIdAndType(reqVO)); } @@ -138,8 +151,9 @@ public class EntrustOrderOrderController implements BusinessControllerMarker { @PostMapping("/close-order") @Operation(summary = "关闭订单") @PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:update')") - public CommonResult closeOrder(@RequestParam("id") Long id) { - return success(entrustOrderOrderService.closeOrder(id)); + public CommonResult closeOrder(@RequestBody List ids) { + entrustOrderOrderService.closeOrder(ids); + return success(true); } } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailPageReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailPageReqVO.java index 60440f27..75aa7208 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailPageReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailPageReqVO.java @@ -1,5 +1,6 @@ package com.zt.plat.module.contractorder.controller.admin.entrustorder.vo; +import com.baomidou.mybatisplus.annotation.TableField; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; @@ -17,6 +18,9 @@ public class EntrustOrderDetailPageReqVO extends PageParam { @Schema(description = "收货工厂名称", example = "赵六") private String receiveFactoryName; + @Schema(description = "订单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8625") + private Long orderId; + @Schema(description = "收货工厂编码") private String receiveFactoryNumber; @@ -59,4 +63,27 @@ public class EntrustOrderDetailPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; + @Schema(description = "税码") + private String taxNumber; + //科目类别 + @Schema(description = "科目类别") + private String accountingItemType; + //MTRL_CPNT_NUM 物料组 + @Schema(description = "物料组") + private String materialGroup; + //RET_ITM 退货标识 + @Schema(description = "退货标识") + private String returnItem; + //免费标识FREE_ITM + @Schema(description = "免费标识") + private String freeItem; + //VNDB 外部行号 + @Schema(description = "外部行号") + private String externalLineNumber; + //ACTS_CTGR_DTL 科目分配 + @Schema(description = "科目分配") + private String accountingItemAllocation; + @Schema(description = "备注") + private String remark; + } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailRespVO.java index 6596ee75..81f4e090 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailRespVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailRespVO.java @@ -17,6 +17,8 @@ public class EntrustOrderDetailRespVO { @ExcelProperty("主键ID") private Long id; + @Schema(description = "订单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8625") + private Long orderId; @Schema(description = "收货工厂名称", example = "赵六") @ExcelProperty("收货工厂名称") private String receiveFactoryName; @@ -73,4 +75,35 @@ public class EntrustOrderDetailRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; + @Schema(description = "税码") + @ExcelProperty("税码") + private String taxNumber; + //科目类别 + @Schema(description = "科目类别") + @ExcelProperty("科目类别") + private String accountingItemType; + //MTRL_CPNT_NUM 物料组 + @Schema(description = "物料组") + @ExcelProperty("物料组") + private String materialGroup; + //RET_ITM 退货标识 + @Schema(description = "退货标识") + @ExcelProperty("退货标识") + private String returnItem; + //免费标识FREE_ITM + @Schema(description = "免费标识") + @ExcelProperty("免费标识") + private String freeItem; + //VNDB 外部行号 + @Schema(description = "外部行号") + @ExcelProperty("外部行号") + private String externalLineNumber; + //ACTS_CTGR_DTL 科目分配 + @Schema(description = "科目分配") + @ExcelProperty("科目分配") + private String accountingItemAllocation; + @Schema(description = "备注") + @ExcelProperty("备注") + private String remark; + } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailSaveReqVO.java index 24c12c71..2d3be565 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderDetailSaveReqVO.java @@ -12,9 +12,13 @@ import java.time.LocalDateTime; @Data public class EntrustOrderDetailSaveReqVO { + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8625") private Long id; + @Schema(description = "订单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8625") + private Long orderId; + @Schema(description = "收货工厂名称", example = "赵六") private String receiveFactoryName; @@ -54,4 +58,27 @@ public class EntrustOrderDetailSaveReqVO { @Schema(description = "短文本") private String shortText; + @Schema(description = "税码") + private String taxNumber; + //科目类别 + @Schema(description = "科目类别") + private String accountingItemType; + //MTRL_CPNT_NUM 物料组 + @Schema(description = "物料组") + private String materialGroup; + //RET_ITM 退货标识 + @Schema(description = "退货标识") + private String returnItem; + //免费标识FREE_ITM + @Schema(description = "免费标识") + private String freeItem; + //VNDB 外部行号 + @Schema(description = "外部行号") + private String externalLineNumber; + //ACTS_CTGR_DTL 科目分配 + @Schema(description = "科目分配") + private String accountingItemAllocation; + @Schema(description = "备注") + private String remark; + } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderPageReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderPageReqVO.java index b4a4b669..f1323d01 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderPageReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderPageReqVO.java @@ -20,7 +20,7 @@ public class EntrustOrderOrderPageReqVO extends PageParam { private String systemOrderNumber; @Schema(description = "公司编码;推送ERP(必须)") - private String companyNumber; + private String cpName; @Schema(description = "客商编码;推送ERP(必须)") private String supplierNumber; diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderRespVO.java index e59bb0ca..d6726c67 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderRespVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderRespVO.java @@ -5,6 +5,8 @@ import lombok.*; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.List; + import com.alibaba.excel.annotation.*; @Schema(description = "管理后台 - 采购订单 Response VO") @@ -26,7 +28,7 @@ public class EntrustOrderOrderRespVO { @Schema(description = "公司编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("公司编码;推送ERP(必须)") - private String companyNumber; + private String cpName; @Schema(description = "客商编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("客商编码;推送ERP(必须)") @@ -160,4 +162,8 @@ public class EntrustOrderOrderRespVO { @ExcelProperty("采购组名称") private String purchaseGroupName; + @Schema(description = "委托加工订单明细") + @ExcelProperty("委托加工订单明细") + private List entrustOrderDetails; + } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderSaveReqVO.java index f5310089..fa6b0cf1 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/vo/EntrustOrderOrderSaveReqVO.java @@ -23,7 +23,7 @@ public class EntrustOrderOrderSaveReqVO { @Schema(description = "公司编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) //@NotEmpty(message = "公司编码;推送ERP(必须)不能为空") - private String companyNumber; + private String cpName; @Schema(description = "客商编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) //@NotEmpty(message = "客商编码;推送ERP(必须)不能为空") diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/OriginalMaterialProcessingController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/OriginalMaterialProcessingController.java new file mode 100644 index 00000000..792e4596 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/OriginalMaterialProcessingController.java @@ -0,0 +1,151 @@ +package com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing; + +import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; +import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.framework.excel.core.util.ExcelUtils; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderOrderPageReqVO; + +import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingRespVO; +import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingSaveReqVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.DownOrUpOrderReqVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.DownOrUpOrderRespVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.LinkOrderReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.entrustorder.EntrustOrderOrderDO; +import com.zt.plat.module.contractorder.dal.dataobject.originalmaterialprocessing.OriginalMaterialProcessingDO; +import com.zt.plat.module.contractorder.service.originalmaterialprocessing.OriginalMaterialProcessingService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.List; + +import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 来料加工") +@RestController +@RequestMapping("/base/original-material-processing") +@Validated +public class OriginalMaterialProcessingController { + + @Resource + private OriginalMaterialProcessingService originalMaterialProcessingService; + + @PostMapping("/create") + @Operation(summary = "创建来料加工订单") + @PreAuthorize("@ss.hasPermission('bse:purchase-order:create')") + public CommonResult createEntrustOrderOrder(@Valid @RequestBody OriginalMaterialProcessingSaveReqVO createReqVO) { + return success(originalMaterialProcessingService.createOriginalMaterialProcessing(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新来料加工订单") + @PreAuthorize("@ss.hasPermission('bse:purchase-order:update')") + public CommonResult updateEntrustOrderOrder(@Valid @RequestBody OriginalMaterialProcessingSaveReqVO updateReqVO) { + originalMaterialProcessingService.updateOriginalMaterialProcessing(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除来料加工订单") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('bse:purchase-order:delete')") + public CommonResult deleteEntrustOrderOrder(@RequestParam("id") Long id) { + originalMaterialProcessingService.deleteOriginalMaterialProcessing(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除来料加工订单") + @PreAuthorize("@ss.hasPermission('bse:purchase-order:delete')") + public CommonResult deleteEntrustOrderOrderList(@RequestBody BatchDeleteReqVO req) { + originalMaterialProcessingService.deleteOriginalMaterialProcessingListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得来料加工订单") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('bse:purchase-order:query')") + public CommonResult getEntrustOrderOrder(@RequestParam("id") Long id) { + OriginalMaterialProcessingDO originalMaterialProcessingDO = originalMaterialProcessingService.getOriginalMaterialProcessing(id); + OriginalMaterialProcessingRespVO bean = BeanUtils.toBean(originalMaterialProcessingDO, OriginalMaterialProcessingRespVO.class); + if (bean != null) { + bean.setDetails(originalMaterialProcessingService.getOriginalMaterialProcessingDetailListByOrderId(bean.getId())); + } + return success(bean); + } + + @GetMapping("/page") + @Operation(summary = "获得来料加工订单分页") + @PreAuthorize("@ss.hasPermission('bse:purchase-order:query')") + public CommonResult> getEntrustOrderOrderPage(@Valid OriginalMaterialProcessingPageReqVO pageReqVO) { + PageResult pageResult = originalMaterialProcessingService.getOriginalMaterialProcessingPage(pageReqVO); + PageResult bean = BeanUtils.toBean(pageResult, OriginalMaterialProcessingRespVO.class); + if (bean != null && !bean.getList().isEmpty()) { + bean.getList().forEach(item -> { + item.setDetails(originalMaterialProcessingService.getOriginalMaterialProcessingDetailListByOrderId(item.getId())); + }); + } + return success(bean); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出来料加工订单 Excel") + @PreAuthorize("@ss.hasPermission('bse:purchase-order:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportEntrustOrderOrderExcel(@Valid OriginalMaterialProcessingPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = originalMaterialProcessingService.getOriginalMaterialProcessingPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "来料加工订单.xls", "数据", OriginalMaterialProcessingRespVO.class, + BeanUtils.toBean(list, OriginalMaterialProcessingRespVO.class)); + } + + //关联订单 + //关联订单 + @PostMapping("/link-order") + @Operation(summary = "关联订单") + @PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:update','purchase:order:list:OrderList:edit')") + public CommonResult linkOrder(@RequestBody @Validated LinkOrderReqVO req) { + return success(originalMaterialProcessingService.linkOrder(req)); + } + + @PostMapping("/order-by-order-id-and-type") + @Operation(summary = "根据订单id和方式获取上或下游订单") + @PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:query')") + public CommonResult> getOrderByOrderIdAndType(@RequestBody DownOrUpOrderReqVO reqVO) { + return success(originalMaterialProcessingService.getOrderByOrderIdAndType(reqVO)); + } + + + @PostMapping("/bound-order") + @Operation(summary = "获取已绑定的订单") + @PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:query')") + public CommonResult> boundOrder(@RequestBody DownOrUpOrderReqVO reqVO) { + return success(originalMaterialProcessingService.getBindOrderByOrder(reqVO)); + } + + //关闭订单 + @PostMapping("/close-order") + @Operation(summary = "关闭订单") + @PreAuthorize("@ss.hasAnyPermissions('base:purchase-order:update')") + public CommonResult closeOrder(@RequestBody List ids) { + originalMaterialProcessingService.closeOrder(ids); + return success(true); + } +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/OriginalMaterialProcessingDetailController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/OriginalMaterialProcessingDetailController.java new file mode 100644 index 00000000..cf0f217a --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/OriginalMaterialProcessingDetailController.java @@ -0,0 +1,110 @@ +package com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing; + +import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailRespVO; +import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailSaveReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.originalmaterialprocessing.OriginalMaterialProcessingDetailDO; +import com.zt.plat.module.contractorder.service.originalmaterialprocessing.OriginalMaterialProcessingDetailService; +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.util.object.BeanUtils; +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +import com.zt.plat.framework.excel.core.util.ExcelUtils; + +import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; +import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*; + + +@Tag(name = "管理后台 - 来料加工订单明细") +@RestController +@RequestMapping("/bse/original-material-processing-detail") +@Validated +public class OriginalMaterialProcessingDetailController implements BusinessControllerMarker { + + + @Resource + private OriginalMaterialProcessingDetailService originalMaterialProcessingDetailService; + + @PostMapping("/create") + @Operation(summary = "创建来料加工订单明细") + @PreAuthorize("@ss.hasPermission('bse:original-material-processing-detail:create')") + public CommonResult createOriginalMaterialProcessingDetail(@Valid @RequestBody OriginalMaterialProcessingDetailSaveReqVO createReqVO) { + return success(originalMaterialProcessingDetailService.createOriginalMaterialProcessingDetail(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新来料加工订单明细") + @PreAuthorize("@ss.hasPermission('bse:original-material-processing-detail:update')") + public CommonResult updateOriginalMaterialProcessingDetail(@Valid @RequestBody OriginalMaterialProcessingDetailSaveReqVO updateReqVO) { + originalMaterialProcessingDetailService.updateOriginalMaterialProcessingDetail(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除来料加工订单明细") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('bse:original-material-processing-detail:delete')") + public CommonResult deleteOriginalMaterialProcessingDetail(@RequestParam("id") Long id) { + originalMaterialProcessingDetailService.deleteOriginalMaterialProcessingDetail(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除来料加工订单明细") + @PreAuthorize("@ss.hasPermission('bse:original-material-processing-detail:delete')") + public CommonResult deleteOriginalMaterialProcessingDetailList(@RequestBody BatchDeleteReqVO req) { + originalMaterialProcessingDetailService.deleteOriginalMaterialProcessingDetailListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得来料加工订单明细") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('bse:original-material-processing-detail:query')") + public CommonResult getOriginalMaterialProcessingDetail(@RequestParam("id") Long id) { + OriginalMaterialProcessingDetailDO originalMaterialProcessingDetail = originalMaterialProcessingDetailService.getOriginalMaterialProcessingDetail(id); + return success(BeanUtils.toBean(originalMaterialProcessingDetail, OriginalMaterialProcessingDetailRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得来料加工订单明细分页") + @PreAuthorize("@ss.hasPermission('bse:original-material-processing-detail:query')") + public CommonResult> getOriginalMaterialProcessingDetailPage(@Valid OriginalMaterialProcessingDetailPageReqVO pageReqVO) { + PageResult pageResult = originalMaterialProcessingDetailService.getOriginalMaterialProcessingDetailPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, OriginalMaterialProcessingDetailRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出来料加工订单明细 Excel") + @PreAuthorize("@ss.hasPermission('bse:original-material-processing-detail:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportOriginalMaterialProcessingDetailExcel(@Valid OriginalMaterialProcessingDetailPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = originalMaterialProcessingDetailService.getOriginalMaterialProcessingDetailPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "来料加工订单明细.xls", "数据", OriginalMaterialProcessingDetailRespVO.class, + BeanUtils.toBean(list, OriginalMaterialProcessingDetailRespVO.class)); + } + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingDetailPageReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingDetailPageReqVO.java new file mode 100644 index 00000000..d71e7bf4 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingDetailPageReqVO.java @@ -0,0 +1,107 @@ +package com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zt.plat.framework.common.pojo.PageParam; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 来料加工订单明细分页 Request VO") +@Data +public class OriginalMaterialProcessingDetailPageReqVO extends PageParam { + + @Schema(description = "订单ID", example = "21244") + private Long orderId; + + @Schema(description = "收货工厂名称", example = "张三") + private String receiveFactoryName; + + @Schema(description = "收货工厂编码") + private String receiveFactoryNumber; + + @Schema(description = "收货库位名称", example = "张三") + private String receiveWarehouseName; + + @Schema(description = "收货库位编码") + private String receiveWarehouseNumber; + + @Schema(description = "发货工厂名称", example = "张三") + private String sendFactoryName; + + @Schema(description = "发货工厂编码") + private String sendFactoryNumber; + + @Schema(description = "发货库位名称", example = "赵六") + private String sendWarehouseName; + + @Schema(description = "发货库位编码") + private String sendWarehouseNumber; + + @Schema(description = "物料名称", example = "李四") + private String materialName; + + @Schema(description = "物料编码") + private String materialNumber; + + @Schema(description = "计量单位") + private String uom; + + @Schema(description = "暂估数量") + private BigDecimal forecastQuantity; + + @Schema(description = "含税单价", example = "971") + private BigDecimal inTaxUnitPrice; + + @Schema(description = "税码") + private String taxNumber; + + @Schema(description = "交货起始日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] deliveryCargoBeginDate; + + @Schema(description = "交货截止日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] deliveryCargoEndDate; + + @Schema(description = "是否启用") + private Boolean isEnable; + + @Schema(description = "短文本") + private String shortText; + + @Schema(description = "税分类") + private String taxCategory; + + @Schema(description = "项目类别") + private String projectCategory; + + @Schema(description = "装运地点") + private String shippingPlace; + + @Schema(description = "物料科目分配组") + private String materialAssignGroup; + + @Schema(description = "总额") + private BigDecimal gross; + + @Schema(description = "金属元素名称", example = "王五") + private String metalElementName; + + @Schema(description = "金属元素缩写") + private String metalElementAbbreviation; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "价格条件") + private String priceCondition; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingDetailRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingDetailRespVO.java new file mode 100644 index 00000000..4347e993 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingDetailRespVO.java @@ -0,0 +1,136 @@ +package com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 来料加工订单明细 Response VO") +@Data +@ExcelIgnoreUnannotated +public class OriginalMaterialProcessingDetailRespVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12973") + @ExcelProperty("主键ID") + private Long id; + + @Schema(description = "订单ID", example = "21244") + @ExcelProperty("订单ID") + private Long orderId; + + @Schema(description = "收货工厂名称", example = "张三") + @ExcelProperty("收货工厂名称") + private String receiveFactoryName; + + @Schema(description = "收货工厂编码") + @ExcelProperty("收货工厂编码") + private String receiveFactoryNumber; + + @Schema(description = "收货库位名称", example = "张三") + @ExcelProperty("收货库位名称") + private String receiveWarehouseName; + + @Schema(description = "收货库位编码") + @ExcelProperty("收货库位编码") + private String receiveWarehouseNumber; + + @Schema(description = "发货工厂名称", example = "张三") + @ExcelProperty("发货工厂名称") + private String sendFactoryName; + + @Schema(description = "发货工厂编码") + @ExcelProperty("发货工厂编码") + private String sendFactoryNumber; + + @Schema(description = "发货库位名称", example = "赵六") + @ExcelProperty("发货库位名称") + private String sendWarehouseName; + + @Schema(description = "发货库位编码") + @ExcelProperty("发货库位编码") + private String sendWarehouseNumber; + + @Schema(description = "物料名称", example = "李四") + @ExcelProperty("物料名称") + private String materialName; + + @Schema(description = "物料编码") + @ExcelProperty("物料编码") + private String materialNumber; + + @Schema(description = "计量单位") + @ExcelProperty("计量单位") + private String uom; + + @Schema(description = "暂估数量") + @ExcelProperty("暂估数量") + private BigDecimal forecastQuantity; + + @Schema(description = "含税单价", example = "971") + @ExcelProperty("含税单价") + private BigDecimal inTaxUnitPrice; + + @Schema(description = "税码") + @ExcelProperty("税码") + private String taxNumber; + + @Schema(description = "交货起始日期") + @ExcelProperty("交货起始日期") + private LocalDateTime deliveryCargoBeginDate; + + @Schema(description = "交货截止日期") + @ExcelProperty("交货截止日期") + private LocalDateTime deliveryCargoEndDate; + + @Schema(description = "是否启用") + @ExcelProperty("是否启用") + private Boolean isEnable; + + @Schema(description = "短文本") + @ExcelProperty("短文本") + private String shortText; + + @Schema(description = "税分类") + @ExcelProperty("税分类") + private String taxCategory; + + @Schema(description = "项目类别") + @ExcelProperty("项目类别") + private String projectCategory; + + @Schema(description = "装运地点") + @ExcelProperty("装运地点") + private String shippingPlace; + + @Schema(description = "物料科目分配组") + @ExcelProperty("物料科目分配组") + private String materialAssignGroup; + + @Schema(description = "总额") + @ExcelProperty("总额") + private BigDecimal gross; + + @Schema(description = "金属元素名称", example = "王五") + @ExcelProperty("金属元素名称") + private String metalElementName; + + @Schema(description = "金属元素缩写") + @ExcelProperty("金属元素缩写") + private String metalElementAbbreviation; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "价格条件") + @ExcelProperty("价格条件") + private String priceCondition; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingDetailSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingDetailSaveReqVO.java new file mode 100644 index 00000000..2d066a4a --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingDetailSaveReqVO.java @@ -0,0 +1,102 @@ +package com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 来料加工订单明细新增/修改 Request VO") +@Data +public class OriginalMaterialProcessingDetailSaveReqVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12973") + private Long id; + + @Schema(description = "订单ID", example = "21244") + private Long orderId; + + @Schema(description = "收货工厂名称", example = "张三") + private String receiveFactoryName; + + @Schema(description = "收货工厂编码") + private String receiveFactoryNumber; + + @Schema(description = "收货库位名称", example = "张三") + private String receiveWarehouseName; + + @Schema(description = "收货库位编码") + private String receiveWarehouseNumber; + + @Schema(description = "发货工厂名称", example = "张三") + private String sendFactoryName; + + @Schema(description = "发货工厂编码") + private String sendFactoryNumber; + + @Schema(description = "发货库位名称", example = "赵六") + private String sendWarehouseName; + + @Schema(description = "发货库位编码") + private String sendWarehouseNumber; + + @Schema(description = "物料名称", example = "李四") + private String materialName; + + @Schema(description = "物料编码") + private String materialNumber; + + @Schema(description = "计量单位") + private String uom; + + @Schema(description = "暂估数量") + private BigDecimal forecastQuantity; + + @Schema(description = "含税单价", example = "971") + private BigDecimal inTaxUnitPrice; + + @Schema(description = "税码") + private String taxNumber; + + @Schema(description = "交货起始日期") + private LocalDateTime deliveryCargoBeginDate; + + @Schema(description = "交货截止日期") + private LocalDateTime deliveryCargoEndDate; + + @Schema(description = "是否启用") + private Boolean isEnable; + + @Schema(description = "短文本") + private String shortText; + + @Schema(description = "税分类") + private String taxCategory; + + @Schema(description = "项目类别") + private String projectCategory; + + @Schema(description = "装运地点") + private String shippingPlace; + + @Schema(description = "物料科目分配组") + private String materialAssignGroup; + + @Schema(description = "总额") + private BigDecimal gross; + + @Schema(description = "金属元素名称", example = "王五") + private String metalElementName; + + @Schema(description = "金属元素缩写") + private String metalElementAbbreviation; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "价格条件") + private String priceCondition; + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingPageReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingPageReqVO.java new file mode 100644 index 00000000..eaeeaef5 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingPageReqVO.java @@ -0,0 +1,125 @@ +package com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo; + +import com.zt.plat.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; +@Schema(description = "原始物料处理分页查询ReqVO") +@Data +public class OriginalMaterialProcessingPageReqVO extends PageParam { + @Schema(description = "ERP订单号") + private String orderSAPNumber; + + @Schema(description = "订单号") + private String systemOrderNumber; + + @Schema(description = "公司编码;推送ERP(必须)") + private String cpName; + + @Schema(description = "客商编码;推送ERP(必须)") + private String supplierNumber; + + @Schema(description = "客商名称", example = "芋艿") + private String supplierName; + + @Schema(description = "订单类型(字典:PRCH_ORD_TP);推送ERP(必须)", example = "2") + private String type; + + @Schema(description = "凭证日期;推送ERP(必须)") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] voucherDate; + + @Schema(description = "采购组织编码;推送ERP(必须)") + private String purchaseOrganizationCustomsDeclaration; + + @Schema(description = "收货工厂名称", example = "芋艿") + private String receiveFactoryName; + + @Schema(description = "收货工厂编码;推送ERP(必须)") + private String receiveFactoryNumber; + + @Schema(description = "收货库位名称", example = "王五") + private String receiveWarehouseName; + + @Schema(description = "收货库位编码;推送ERP") + private String receiveWarehouseNumber; + + @Schema(description = "采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)") + private String purchaseGroup; + + @Schema(description = "货币码(字典:CUR);推送ERP(必须)") + private String currencyNumber; + + @Schema(description = "汇率;推送ERP") + private BigDecimal exchangeRate; + + @Schema(description = "合同纸质合同号;推送ERP(必须)") + private String paperContractNumber; + + @Schema(description = "小协议号;推送ERP") + private String agreementNumber; + + @Schema(description = "备注;推送ERP") + private String remark; + + @Schema(description = "代理方编码;推送ERP") + private String agentNumber; + + @Schema(description = "代理方名称", example = "张三") + private String agentName; + + @Schema(description = "订单编码") + private String orderNumber; + + @Schema(description = "系统合同编号") + private String contractNumber; + + @Schema(description = "物料编码") + private String materialNumber; + + @Schema(description = "物料名称", example = "王五") + private String materialName; + + @Schema(description = "合同名称", example = "赵六") + private String contractName; + + @Schema(description = "小户头号") + private String tenantNumber; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "ERP公司编号") + private String erpPurchaseCompanyNumber; + + @Schema(description = "ERP公司名称", example = "王五") + private String erpPurchaseCompanyName; + + @Schema(description = "ERP客商公司编码") + private String erpSalesCompanyNumber; + + @Schema(description = "ERP客商公司名称", example = "芋艿") + private String erpSalesCompanyName; + + @Schema(description = "采购组织名称", example = "赵六") + private String purchaseOrganizationName; + + @Schema(description = "ERP状态(字典: ERP_REQ_STS)", example = "2") + private String erpStatus; + + @Schema(description = "请求ERP失败原因") + private String cause; + + @Schema(description = "订单状态(字典:PRCH_ORD_STS)", example = "2") + private String status; + + @Schema(description = "采购组名称", example = "张三") + private String purchaseGroupName; + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingRespVO.java new file mode 100644 index 00000000..d06ea064 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingRespVO.java @@ -0,0 +1,164 @@ +package com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +@Schema(description = "原始物料处理响应VO") +@Data +public class OriginalMaterialProcessingRespVO { + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "6074") + @ExcelProperty("主键") + private Long id; + + @Schema(description = "ERP订单号") + @ExcelProperty("ERP订单号") + private String orderSAPNumber; + + @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("订单号") + private String systemOrderNumber; + + @Schema(description = "公司编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("公司编码;推送ERP(必须)") + private String cpName; + + @Schema(description = "客商编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("客商编码;推送ERP(必须)") + private String supplierNumber; + + @Schema(description = "客商名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("客商名称") + private String supplierName; + + @Schema(description = "订单类型(字典:PRCH_ORD_TP);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @ExcelProperty("订单类型(字典:PRCH_ORD_TP);推送ERP(必须)") + private String type; + + @Schema(description = "凭证日期;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("凭证日期;推送ERP(必须)") + private LocalDateTime voucherDate; + + @Schema(description = "采购组织编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("采购组织编码;推送ERP(必须)") + private String purchaseOrganizationCustomsDeclaration; + + @Schema(description = "收货工厂名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("收货工厂名称") + private String receiveFactoryName; + + @Schema(description = "收货工厂编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("收货工厂编码;推送ERP(必须)") + private String receiveFactoryNumber; + + @Schema(description = "收货库位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @ExcelProperty("收货库位名称") + private String receiveWarehouseName; + + @Schema(description = "收货库位编码;推送ERP", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("收货库位编码;推送ERP") + private String receiveWarehouseNumber; + + @Schema(description = "采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)") + private String purchaseGroup; + + @Schema(description = "货币码(字典:CUR);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("货币码(字典:CUR);推送ERP(必须)") + private String currencyNumber; + + @Schema(description = "汇率;推送ERP") + @ExcelProperty("汇率;推送ERP") + private BigDecimal exchangeRate; + + @Schema(description = "合同纸质合同号;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("合同纸质合同号;推送ERP(必须)") + private String paperContractNumber; + + @Schema(description = "小协议号;推送ERP") + @ExcelProperty("小协议号;推送ERP") + private String agreementNumber; + + @Schema(description = "备注;推送ERP") + @ExcelProperty("备注;推送ERP") + private String remark; + + @Schema(description = "代理方编码;推送ERP") + @ExcelProperty("代理方编码;推送ERP") + private String agentNumber; + + @Schema(description = "代理方名称", example = "张三") + @ExcelProperty("代理方名称") + private String agentName; + + @Schema(description = "订单编码", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("订单编码") + private String orderNumber; + + @Schema(description = "系统合同编号", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("系统合同编号") + private String contractNumber; + + @Schema(description = "物料编码") + @ExcelProperty("物料编码") + private String materialNumber; + + @Schema(description = "物料名称", example = "王五") + @ExcelProperty("物料名称") + private String materialName; + + @Schema(description = "合同名称", example = "赵六") + @ExcelProperty("合同名称") + private String contractName; + + @Schema(description = "小户头号") + @ExcelProperty("小户头号") + private String tenantNumber; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "ERP公司编号", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("ERP公司编号") + private String erpPurchaseCompanyNumber; + + @Schema(description = "ERP公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @ExcelProperty("ERP公司名称") + private String erpPurchaseCompanyName; + + @Schema(description = "ERP客商公司编码", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("ERP客商公司编码") + private String erpSalesCompanyNumber; + + @Schema(description = "ERP客商公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("ERP客商公司名称") + private String erpSalesCompanyName; + + @Schema(description = "采购组织名称", example = "赵六") + @ExcelProperty("采购组织名称") + private String purchaseOrganizationName; + + @Schema(description = "ERP状态(字典: ERP_REQ_STS)", example = "2") + @ExcelProperty("ERP状态(字典: ERP_REQ_STS)") + private String erpStatus; + + @Schema(description = "请求ERP失败原因") + @ExcelProperty("请求ERP失败原因") + private String cause; + + @Schema(description = "订单状态(字典:PRCH_ORD_STS)", example = "2") + @ExcelProperty("订单状态(字典:PRCH_ORD_STS)") + private String status; + + @Schema(description = "采购组名称", example = "张三") + @ExcelProperty("采购组名称") + private String purchaseGroupName; + + private List details; + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingSaveReqVO.java new file mode 100644 index 00000000..3dcef368 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/originalmaterialprocessing/vo/OriginalMaterialProcessingSaveReqVO.java @@ -0,0 +1,146 @@ +package com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +@Schema(description = "原始物料处理保存ReqVO") +@Data +public class OriginalMaterialProcessingSaveReqVO { + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "6074") + private Long id; + + @Schema(description = "ERP订单号") + private String orderSAPNumber; + + @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED) + // @NotEmpty(message = "订单号不能为空") + private String systemOrderNumber; + + @Schema(description = "公司编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + //@NotEmpty(message = "公司编码;推送ERP(必须)不能为空") + private String cpName; + + @Schema(description = "客商编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + //@NotEmpty(message = "客商编码;推送ERP(必须)不能为空") + private String supplierNumber; + + @Schema(description = "客商名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + // @NotEmpty(message = "客商名称不能为空") + private String supplierName; + + @Schema(description = "订单类型(字典:PRCH_ORD_TP);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + // @NotEmpty(message = "订单类型(字典:PRCH_ORD_TP);推送ERP(必须)不能为空") + private String type; + + @Schema(description = "凭证日期;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + //@NotNull(message = "凭证日期;推送ERP(必须)不能为空") + private LocalDateTime voucherDate; + + @Schema(description = "采购组织编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + // @NotEmpty(message = "采购组织编码;推送ERP(必须)不能为空") + private String purchaseOrganizationCustomsDeclaration; + + @Schema(description = "收货工厂名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + // @NotEmpty(message = "收货工厂名称不能为空") + private String receiveFactoryName; + + @Schema(description = "收货工厂编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + //@NotEmpty(message = "收货工厂编码;推送ERP(必须)不能为空") + private String receiveFactoryNumber; + + @Schema(description = "收货库位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + // @NotEmpty(message = "收货库位名称不能为空") + private String receiveWarehouseName; + + @Schema(description = "收货库位编码;推送ERP", requiredMode = Schema.RequiredMode.REQUIRED) + //@NotEmpty(message = "收货库位编码;推送ERP不能为空") + private String receiveWarehouseNumber; + + @Schema(description = "采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + //@NotEmpty(message = "采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)不能为空") + private String purchaseGroup; + + @Schema(description = "货币码(字典:CUR);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + //@NotEmpty(message = "货币码(字典:CUR);推送ERP(必须)不能为空") + private String currencyNumber; + + @Schema(description = "汇率;推送ERP") + private BigDecimal exchangeRate; + + @Schema(description = "合同纸质合同号;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + // @NotEmpty(message = "合同纸质合同号;推送ERP(必须)不能为空") + private String paperContractNumber; + + @Schema(description = "小协议号;推送ERP") + private String agreementNumber; + + @Schema(description = "备注;推送ERP") + private String remark; + + @Schema(description = "代理方编码;推送ERP") + private String agentNumber; + + @Schema(description = "代理方名称", example = "张三") + private String agentName; + + @Schema(description = "订单编码", requiredMode = Schema.RequiredMode.REQUIRED) + //@NotEmpty(message = "订单编码不能为空") + private String orderNumber; + + @Schema(description = "系统合同编号", requiredMode = Schema.RequiredMode.REQUIRED) + // @NotEmpty(message = "系统合同编号不能为空") + private String contractNumber; + + @Schema(description = "物料编码") + private String materialNumber; + + @Schema(description = "物料名称", example = "王五") + private String materialName; + + @Schema(description = "合同名称", example = "赵六") + private String contractName; + + @Schema(description = "小户头号") + private String tenantNumber; + + @Schema(description = "ERP公司编号", requiredMode = Schema.RequiredMode.REQUIRED) + //@NotEmpty(message = "ERP公司编号不能为空") + private String erpPurchaseCompanyNumber; + + @Schema(description = "ERP公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + // @NotEmpty(message = "ERP公司名称不能为空") + private String erpPurchaseCompanyName; + + @Schema(description = "ERP客商公司编码", requiredMode = Schema.RequiredMode.REQUIRED) + // @NotEmpty(message = "ERP客商公司编码不能为空") + private String erpSalesCompanyNumber; + + @Schema(description = "ERP客商公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + //@NotEmpty(message = "ERP客商公司名称不能为空") + private String erpSalesCompanyName; + + @Schema(description = "采购组织名称", example = "赵六") + private String purchaseOrganizationName; + + @Schema(description = "ERP状态(字典: ERP_REQ_STS)", example = "2") + private String erpStatus; + + @Schema(description = "请求ERP失败原因") + private String cause; + + @Schema(description = "订单状态(字典:PRCH_ORD_STS)", example = "2") + private String status; + + @Schema(description = "采购组名称", example = "张三") + private String purchaseGroupName; + @Schema(description = "创建时间") + private LocalDateTime createTime; + + @Schema(description = "来料加工订单明细") + private List details; + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderDetailDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderDetailDO.java index df381b78..49a97fcd 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderDetailDO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderDetailDO.java @@ -36,6 +36,11 @@ public class EntrustOrderDetailDO extends BusinessBaseDO { @TableId(type = IdType.ASSIGN_ID) private Long id; /** + * 委托加工订单ID + */ + @TableField("ORD_ID") + private Long orderId; + /** * 收货工厂名称 */ @TableField("RCV_FACT_NAME") @@ -101,4 +106,29 @@ public class EntrustOrderDetailDO extends BusinessBaseDO { @TableField("SHRT_TXT") private String shortText; + /** + * 税码 + */ + @TableField("TAX_NUM") + private String taxNumber; + //科目类别 + @TableField("ACTS_CTGR") + private String accountingItemType; + //MTRL_CPNT_NUM 物料组 + @TableField("MTRL_CPNT_NUM") + private String materialGroup; + //RET_ITM 退货标识 + @TableField("RET_ITM") + private String returnItem; + //免费标识FREE_ITM + @TableField("FREE_ITM") + private String freeItem; + //VNDB 外部行号 + @TableField("VNDB") + private String externalLineNumber; + //ACTS_CTGR_DTL 科目分配 + @TableField("ACTS_CTGR_DTL") + private String accountingItemAllocation; + @TableField("RMK") + private String remark; } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderOrderDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderOrderDO.java index 85bc2f2a..0747c820 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderOrderDO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderOrderDO.java @@ -47,7 +47,7 @@ public class EntrustOrderOrderDO extends BusinessBaseDO { * 公司编码;推送ERP(必须) */ @TableField("CPN_NUM") - private String companyNumber; + private String cpName; /** * 客商编码;推送ERP(必须) */ @@ -136,8 +136,8 @@ public class EntrustOrderOrderDO extends BusinessBaseDO { /** * 订单编码 */ - @TableField("ORD_NUM") - private String orderNumber; +// @TableField("ORD_NUM") +// private String orderNumber; /** * 系统合同编号 */ @@ -208,5 +208,9 @@ public class EntrustOrderOrderDO extends BusinessBaseDO { */ @TableField("PRCH_GRP_NAME") private String purchaseGroupName; - + /** + * 是否需要审批 + */ + @TableField("IS_PUSH") + private int isPush; } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/originalmaterialprocessing/OriginalMaterialProcessingDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/originalmaterialprocessing/OriginalMaterialProcessingDO.java new file mode 100644 index 00000000..9cf9ff27 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/originalmaterialprocessing/OriginalMaterialProcessingDO.java @@ -0,0 +1,215 @@ +package com.zt.plat.module.contractorder.dal.dataobject.originalmaterialprocessing; + +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +import lombok.*; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** +* 来料订单 DO +* +* @author 后台管理-1 +*/ +@TableName("bse_prch_ord") +@KeySequence("bse_prch_ord_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class OriginalMaterialProcessingDO extends BusinessBaseDO { + + + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * ERP订单号 + */ + @TableField("ORD_SAP_NUM") + private String orderSAPNumber; + /** + * 订单号 + */ + @TableField("SYS_ORD_NUM") + private String systemOrderNumber; + /** + * 公司编码;推送ERP(必须) + */ + @TableField("CPN_NUM") + private String cpName; + /** + * 客商编码;推送ERP(必须) + */ + @TableField("SPLR_NUM") + private String supplierNumber; + /** + * 客商名称 + */ + @TableField("SPLR_NAME") + private String supplierName; + /** + * 订单类型(字典:PRCH_ORD_TP);推送ERP(必须) + */ + @TableField("TP") + private String type; + /** + * 凭证日期;推送ERP(必须) + */ + @TableField("VCHR_DT") + private LocalDateTime voucherDate; + /** + * 采购组织编码;推送ERP(必须) + */ + @TableField("PRCH_ORGZ_CD") + private String purchaseOrganizationCustomsDeclaration; + /** + * 收货工厂名称 + */ + @TableField("RCV_FACT_NAME") + private String receiveFactoryName; + /** + * 收货工厂编码;推送ERP(必须) + */ + @TableField("RCV_FACT_NUM") + private String receiveFactoryNumber; + /** + * 收货库位名称 + */ + @TableField("RCV_WRH_NAME") + private String receiveWarehouseName; + /** + * 收货库位编码;推送ERP + */ + @TableField("RCV_WRH_NUM") + private String receiveWarehouseNumber; + /** + * 采购组编码(字典:PRCH_GRP_TP);推送ERP(必须) + */ + @TableField("PRCH_GRP") + private String purchaseGroup; + /** + * 货币码(字典:CUR);推送ERP(必须) + */ + @TableField("CUR_NUM") + private String currencyNumber; + /** + * 汇率;推送ERP + */ + @TableField("EXCH_RTE") + private BigDecimal exchangeRate; + /** + * 合同纸质合同号;推送ERP(必须) + */ + @TableField("PPR_CTRT_NUM") + private String paperContractNumber; + /** + * 小协议号;推送ERP + */ + @TableField("AGR_NUM") + private String agreementNumber; + /** + * 备注;推送ERP + */ + @TableField("RMK") + private String remark; + /** + * 代理方编码;推送ERP + */ + @TableField("AGT_NUM") + private String agentNumber; + /** + * 代理方名称 + */ + @TableField("AGT_NAME") + private String agentName; + /** + * 订单编码 + */ +// @TableField("ORD_NUM") +// private String orderNumber; + /** + * 系统合同编号 + */ + @TableField("CTRT_NUM") + private String contractNumber; + /** + * 物料编码 + */ + @TableField("MTRL_NUM") + private String materialNumber; + /** + * 物料名称 + */ + @TableField("MTRL_NAME") + private String materialName; + /** + * 合同名称 + */ + @TableField("CTRT_NAME") + private String contractName; + /** + * 小户头号 + */ + @TableField("TNT_NUM") + private String tenantNumber; + /** + * ERP公司编号 + */ + @TableField("ERP_PRCH_CPN_NUM") + private String erpPurchaseCompanyNumber; + /** + * ERP公司名称 + */ + @TableField("ERP_PRCH_CPN_NAME") + private String erpPurchaseCompanyName; + /** + * ERP客商公司编码 + */ + @TableField("ERP_SALE_CPN_NUM") + private String erpSalesCompanyNumber; + /** + * ERP客商公司名称 + */ + @TableField("ERP_SALE_CPN_NAME") + private String erpSalesCompanyName; + /** + * 采购组织名称 + */ + @TableField("PRCH_ORGZ_NAME") + private String purchaseOrganizationName; + /** + * ERP状态(字典: ERP_REQ_STS) + */ + @TableField("ERP_STS") + private String erpStatus; + /** + * 请求ERP失败原因 + */ + @TableField("CAUS") + private String cause; + /** + * 订单状态(字典:PRCH_ORD_STS) + */ + @TableField("STS") + private String status; + /** + * 采购组名称 + */ + @TableField("PRCH_GRP_NAME") + private String purchaseGroupName; + /** + * 是否需要审批 + */ + @TableField("IS_PUSH") + private int isPush; +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/originalmaterialprocessing/OriginalMaterialProcessingDetailDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/originalmaterialprocessing/OriginalMaterialProcessingDetailDO.java new file mode 100644 index 00000000..fc654a67 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/originalmaterialprocessing/OriginalMaterialProcessingDetailDO.java @@ -0,0 +1,180 @@ +package com.zt.plat.module.contractorder.dal.dataobject.originalmaterialprocessing; + +import lombok.*; +import java.util.*; + import java.math.BigDecimal; + import java.math.BigDecimal; + import java.time.LocalDateTime; + import java.time.LocalDateTime; + import java.math.BigDecimal; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +/** +* 来料加工订单明细 DO +* +* @author 易门采购员测试账号 +*/ +@TableName("bse_orig_mtrl_prces_dtl") +@KeySequence("bse_orig_mtrl_prces_dtl_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class OriginalMaterialProcessingDetailDO extends BusinessBaseDO { + + + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 订单ID + */ + @TableField("ORD_ID") + private Long orderId; + /** + * 收货工厂名称 + */ + @TableField("RCV_FACT_NAME") + private String receiveFactoryName; + /** + * 收货工厂编码 + */ + @TableField("RCV_FACT_NUM") + private String receiveFactoryNumber; + /** + * 收货库位名称 + */ + @TableField("RCV_WRH_NAME") + private String receiveWarehouseName; + /** + * 收货库位编码 + */ + @TableField("RCV_WRH_NUM") + private String receiveWarehouseNumber; + /** + * 发货工厂名称 + */ + @TableField("SND_FACT_NAME") + private String sendFactoryName; + /** + * 发货工厂编码 + */ + @TableField("SND_FACT_NUM") + private String sendFactoryNumber; + /** + * 发货库位名称 + */ + @TableField("SND_WRH_NAME") + private String sendWarehouseName; + /** + * 发货库位编码 + */ + @TableField("SND_WRH_NUM") + private String sendWarehouseNumber; + /** + * 物料名称 + */ + @TableField("MTRL_NAME") + private String materialName; + /** + * 物料编码 + */ + @TableField("MTRL_NUM") + private String materialNumber; + /** + * 计量单位 + */ + @TableField("UOM") + private String uom; + /** + * 暂估数量 + */ + @TableField("FRCST_QTY") + private BigDecimal forecastQuantity; + /** + * 含税单价 + */ + @TableField("IN_TAX_UPRC") + private BigDecimal inTaxUnitPrice; + /** + * 税码 + */ + @TableField("TAX_NUM") + private String taxNumber; + /** + * 交货起始日期 + */ + @TableField("DLVY_CGO_BGN_DT") + private LocalDateTime deliveryCargoBeginDate; + /** + * 交货截止日期 + */ + @TableField("DLVY_CGO_END_DT") + private LocalDateTime deliveryCargoEndDate; + /** + * 是否启用 + */ + @TableField("IS_ENB") + private Boolean isEnable; + /** + * 短文本 + */ + @TableField("SHRT_TXT") + private String shortText; + /** + * 税分类 + */ + @TableField("TAX_CTGR") + private String taxCategory; + /** + * 项目类别 + */ + @TableField("PRJ_CTGR") + private String projectCategory; + /** + * 装运地点 + */ + @TableField("SHPP_PLCE") + private String shippingPlace; + /** + * 物料科目分配组 + */ + @TableField("MTRL_ASN_GRP") + private String materialAssignGroup; + /** + * 总额 + */ + @TableField("GRS") + private BigDecimal gross; + /** + * 金属元素名称 + */ + @TableField("MTL_ELEM_NAME") + private String metalElementName; + /** + * 金属元素缩写 + */ + @TableField("MTL_ELEM_ABBR") + private String metalElementAbbreviation; + /** + * 备注 + */ + @TableField("RMK") + private String remark; + /** + * 价格条件 + */ + @TableField("PRC_CND") + private String priceCondition; + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/entrustorder/EntrustOrderDetailMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/entrustorder/EntrustOrderDetailMapper.java index b106fd21..dea70798 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/entrustorder/EntrustOrderDetailMapper.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/entrustorder/EntrustOrderDetailMapper.java @@ -21,20 +21,22 @@ public interface EntrustOrderDetailMapper extends BaseMapperX selectPage(EntrustOrderDetailPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(EntrustOrderDetailDO::getOrderId, reqVO.getOrderId()) .likeIfPresent(EntrustOrderDetailDO::getReceiveFactoryName, reqVO.getReceiveFactoryName()) - .eqIfPresent(EntrustOrderDetailDO::getReceiveFactoryNumber, reqVO.getReceiveFactoryNumber()) + .likeIfPresent(EntrustOrderDetailDO::getReceiveFactoryNumber, reqVO.getReceiveFactoryNumber()) .likeIfPresent(EntrustOrderDetailDO::getReceiveWarehouseName, reqVO.getReceiveWarehouseName()) - .eqIfPresent(EntrustOrderDetailDO::getReceiveWarehouseNumber, reqVO.getReceiveWarehouseNumber()) + .likeIfPresent(EntrustOrderDetailDO::getReceiveWarehouseNumber, reqVO.getReceiveWarehouseNumber()) .likeIfPresent(EntrustOrderDetailDO::getMaterialName, reqVO.getMaterialName()) - .eqIfPresent(EntrustOrderDetailDO::getMaterialNumber, reqVO.getMaterialNumber()) - .eqIfPresent(EntrustOrderDetailDO::getUom, reqVO.getUom()) + .likeIfPresent(EntrustOrderDetailDO::getMaterialNumber, reqVO.getMaterialNumber()) + .likeIfPresent(EntrustOrderDetailDO::getUom, reqVO.getUom()) .eqIfPresent(EntrustOrderDetailDO::getForecastQuantity, reqVO.getForecastQuantity()) .eqIfPresent(EntrustOrderDetailDO::getInTaxUnitPrice, reqVO.getInTaxUnitPrice()) .betweenIfPresent(EntrustOrderDetailDO::getDeliveryCargoBeginDate, reqVO.getDeliveryCargoBeginDate()) .betweenIfPresent(EntrustOrderDetailDO::getDeliveryCargoEndDate, reqVO.getDeliveryCargoEndDate()) .eqIfPresent(EntrustOrderDetailDO::getIsEnable, reqVO.getIsEnable()) - .eqIfPresent(EntrustOrderDetailDO::getShortText, reqVO.getShortText()) + .likeIfPresent(EntrustOrderDetailDO::getShortText, reqVO.getShortText()) .betweenIfPresent(EntrustOrderDetailDO::getCreateTime, reqVO.getCreateTime()) + .likeIfPresent(EntrustOrderDetailDO::getRemark, reqVO.getRemark()) .orderByDesc(EntrustOrderDetailDO::getId)); } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/entrustorder/EntrustOrderOrderMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/entrustorder/EntrustOrderOrderMapper.java index 2a4b42b1..574bcdea 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/entrustorder/EntrustOrderOrderMapper.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/entrustorder/EntrustOrderOrderMapper.java @@ -25,7 +25,7 @@ public interface EntrustOrderOrderMapper extends BaseMapperX() .eqIfPresent(EntrustOrderOrderDO::getOrderSAPNumber, reqVO.getOrderSAPNumber()) .eqIfPresent(EntrustOrderOrderDO::getSystemOrderNumber, reqVO.getSystemOrderNumber()) - .eqIfPresent(EntrustOrderOrderDO::getCompanyNumber, reqVO.getCompanyNumber()) + .eqIfPresent(EntrustOrderOrderDO::getCpName, reqVO.getCpName()) .eqIfPresent(EntrustOrderOrderDO::getSupplierNumber, reqVO.getSupplierNumber()) .likeIfPresent(EntrustOrderOrderDO::getSupplierName, reqVO.getSupplierName()) .eqIfPresent(EntrustOrderOrderDO::getType, reqVO.getType()) @@ -43,7 +43,7 @@ public interface EntrustOrderOrderMapper extends BaseMapperX { + + default PageResult selectPage(OriginalMaterialProcessingDetailPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(OriginalMaterialProcessingDetailDO::getOrderId, reqVO.getOrderId()) + .likeIfPresent(OriginalMaterialProcessingDetailDO::getReceiveFactoryName, reqVO.getReceiveFactoryName()) + .eqIfPresent(OriginalMaterialProcessingDetailDO::getReceiveFactoryNumber, reqVO.getReceiveFactoryNumber()) + .likeIfPresent(OriginalMaterialProcessingDetailDO::getReceiveWarehouseName, reqVO.getReceiveWarehouseName()) + .eqIfPresent(OriginalMaterialProcessingDetailDO::getReceiveWarehouseNumber, reqVO.getReceiveWarehouseNumber()) + .likeIfPresent(OriginalMaterialProcessingDetailDO::getSendFactoryName, reqVO.getSendFactoryName()) + .eqIfPresent(OriginalMaterialProcessingDetailDO::getSendFactoryNumber, reqVO.getSendFactoryNumber()) + .likeIfPresent(OriginalMaterialProcessingDetailDO::getSendWarehouseName, reqVO.getSendWarehouseName()) + .eqIfPresent(OriginalMaterialProcessingDetailDO::getSendWarehouseNumber, reqVO.getSendWarehouseNumber()) + .likeIfPresent(OriginalMaterialProcessingDetailDO::getMaterialName, reqVO.getMaterialName()) + .eqIfPresent(OriginalMaterialProcessingDetailDO::getMaterialNumber, reqVO.getMaterialNumber()) + .eqIfPresent(OriginalMaterialProcessingDetailDO::getUom, reqVO.getUom()) + .eqIfPresent(OriginalMaterialProcessingDetailDO::getForecastQuantity, reqVO.getForecastQuantity()) + .eqIfPresent(OriginalMaterialProcessingDetailDO::getInTaxUnitPrice, reqVO.getInTaxUnitPrice()) + .eqIfPresent(OriginalMaterialProcessingDetailDO::getTaxNumber, reqVO.getTaxNumber()) + .betweenIfPresent(OriginalMaterialProcessingDetailDO::getDeliveryCargoBeginDate, reqVO.getDeliveryCargoBeginDate()) + .betweenIfPresent(OriginalMaterialProcessingDetailDO::getDeliveryCargoEndDate, reqVO.getDeliveryCargoEndDate()) + .eqIfPresent(OriginalMaterialProcessingDetailDO::getIsEnable, reqVO.getIsEnable()) + .eqIfPresent(OriginalMaterialProcessingDetailDO::getShortText, reqVO.getShortText()) + .eqIfPresent(OriginalMaterialProcessingDetailDO::getTaxCategory, reqVO.getTaxCategory()) + .eqIfPresent(OriginalMaterialProcessingDetailDO::getProjectCategory, reqVO.getProjectCategory()) + .eqIfPresent(OriginalMaterialProcessingDetailDO::getShippingPlace, reqVO.getShippingPlace()) + .eqIfPresent(OriginalMaterialProcessingDetailDO::getMaterialAssignGroup, reqVO.getMaterialAssignGroup()) + .eqIfPresent(OriginalMaterialProcessingDetailDO::getGross, reqVO.getGross()) + .likeIfPresent(OriginalMaterialProcessingDetailDO::getMetalElementName, reqVO.getMetalElementName()) + .eqIfPresent(OriginalMaterialProcessingDetailDO::getMetalElementAbbreviation, reqVO.getMetalElementAbbreviation()) + .eqIfPresent(OriginalMaterialProcessingDetailDO::getRemark, reqVO.getRemark()) + .eqIfPresent(OriginalMaterialProcessingDetailDO::getPriceCondition, reqVO.getPriceCondition()) + .betweenIfPresent(OriginalMaterialProcessingDetailDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(OriginalMaterialProcessingDetailDO::getId)); + } + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/originalmaterialprocessing/OriginalMaterialProcessingMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/originalmaterialprocessing/OriginalMaterialProcessingMapper.java new file mode 100644 index 00000000..a7c26dc7 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/originalmaterialprocessing/OriginalMaterialProcessingMapper.java @@ -0,0 +1,53 @@ +package com.zt.plat.module.contractorder.dal.mysql.originalmaterialprocessing; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingPageReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.originalmaterialprocessing.OriginalMaterialProcessingDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface OriginalMaterialProcessingMapper extends BaseMapperX { + + default PageResult selectPage(OriginalMaterialProcessingPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(OriginalMaterialProcessingDO::getOrderSAPNumber, reqVO.getOrderSAPNumber()) + .eqIfPresent(OriginalMaterialProcessingDO::getSystemOrderNumber, reqVO.getSystemOrderNumber()) + .eqIfPresent(OriginalMaterialProcessingDO::getCpName, reqVO.getCpName()) + .eqIfPresent(OriginalMaterialProcessingDO::getSupplierNumber, reqVO.getSupplierNumber()) + .likeIfPresent(OriginalMaterialProcessingDO::getSupplierName, reqVO.getSupplierName()) + .eqIfPresent(OriginalMaterialProcessingDO::getType, reqVO.getType()) + .eqIfPresent(OriginalMaterialProcessingDO::getVoucherDate, reqVO.getVoucherDate()) + .eqIfPresent(OriginalMaterialProcessingDO::getPurchaseOrganizationCustomsDeclaration, reqVO.getPurchaseOrganizationCustomsDeclaration()) + .likeIfPresent(OriginalMaterialProcessingDO::getReceiveFactoryName, reqVO.getReceiveFactoryName()) + .eqIfPresent(OriginalMaterialProcessingDO::getReceiveFactoryNumber, reqVO.getReceiveFactoryNumber()) + .likeIfPresent(OriginalMaterialProcessingDO::getReceiveWarehouseName, reqVO.getReceiveWarehouseName()) + .eqIfPresent(OriginalMaterialProcessingDO::getReceiveWarehouseNumber, reqVO.getReceiveWarehouseNumber()) + .eqIfPresent(OriginalMaterialProcessingDO::getPurchaseGroup, reqVO.getPurchaseGroup()) + .eqIfPresent(OriginalMaterialProcessingDO::getCurrencyNumber, reqVO.getCurrencyNumber()) + .eqIfPresent(OriginalMaterialProcessingDO::getExchangeRate, reqVO.getExchangeRate()) + .eqIfPresent(OriginalMaterialProcessingDO::getPaperContractNumber, reqVO.getPaperContractNumber()) + .eqIfPresent(OriginalMaterialProcessingDO::getAgreementNumber, reqVO.getAgreementNumber()) + .eqIfPresent(OriginalMaterialProcessingDO::getRemark, reqVO.getRemark()) + .eqIfPresent(OriginalMaterialProcessingDO::getAgentNumber, reqVO.getAgentNumber()) + .likeIfPresent(OriginalMaterialProcessingDO::getAgentName, reqVO.getAgentName()) + .eqIfPresent(OriginalMaterialProcessingDO::getContractNumber, reqVO.getContractNumber()) + .eqIfPresent(OriginalMaterialProcessingDO::getMaterialNumber, reqVO.getMaterialNumber()) + .likeIfPresent(OriginalMaterialProcessingDO::getMaterialName, reqVO.getMaterialName()) + .likeIfPresent(OriginalMaterialProcessingDO::getContractName, reqVO.getContractName()) + .eqIfPresent(OriginalMaterialProcessingDO::getTenantNumber, reqVO.getTenantNumber()) + .betweenIfPresent(OriginalMaterialProcessingDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(OriginalMaterialProcessingDO::getErpPurchaseCompanyNumber, reqVO.getErpPurchaseCompanyNumber()) + .likeIfPresent(OriginalMaterialProcessingDO::getErpPurchaseCompanyName, reqVO.getErpPurchaseCompanyName()) + .eqIfPresent(OriginalMaterialProcessingDO::getErpSalesCompanyNumber, reqVO.getErpSalesCompanyNumber()) + .likeIfPresent(OriginalMaterialProcessingDO::getErpSalesCompanyName, reqVO.getErpSalesCompanyName()) + .likeIfPresent(OriginalMaterialProcessingDO::getPurchaseOrganizationName, reqVO.getPurchaseOrganizationName()) + .eqIfPresent(OriginalMaterialProcessingDO::getErpStatus, reqVO.getErpStatus()) + .eqIfPresent(OriginalMaterialProcessingDO::getCause, reqVO.getCause()) + .eqIfPresent(OriginalMaterialProcessingDO::getStatus, reqVO.getStatus()) + .likeIfPresent(OriginalMaterialProcessingDO::getPurchaseGroupName, reqVO.getPurchaseGroupName()) + .orderByDesc(OriginalMaterialProcessingDO::getId)); + } + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderDetailService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderDetailService.java index 68d42686..7e6983b2 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderDetailService.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderDetailService.java @@ -63,4 +63,24 @@ public interface EntrustOrderDetailService { */ PageResult getEntrustOrderDetailPage(EntrustOrderDetailPageReqVO pageReqVO); + /** + * 批量插入委托加工订单明细 + * + * @param entrustOrderOrderDetails 委托加工订单明细 + * @return 插入结果 + */ + List insertBatchSomeColumn(List entrustOrderOrderDetails); + /** + * 批量更新委托加工订单明细 + * + * @param entrustOrderOrderDetails 委托加工订单明细 + */ + void updateBatchSomeColumn(List entrustOrderOrderDetails); + /** + * 根据订单id获得委托加工订单明细列表 + * + * @param orderId 订单编号 + * @return 委托加工订单明细列表 + */ + List getEntrustOrderDetailListByOrderId(Long orderId); } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderDetailServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderDetailServiceImpl.java index 5a121cbe..51f9b342 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderDetailServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderDetailServiceImpl.java @@ -92,4 +92,22 @@ public class EntrustOrderDetailServiceImpl implements EntrustOrderDetailService return entrustOrderDetailMapper.selectPage(pageReqVO); } + @Override + public List insertBatchSomeColumn(List entrustOrderOrderDetails) { + List entrustOrderDetail = BeanUtils.toBean(entrustOrderOrderDetails, EntrustOrderDetailDO.class); + entrustOrderDetailMapper.insertBatch(entrustOrderDetail); + return BeanUtils.toBean(entrustOrderDetail, EntrustOrderDetailRespVO.class); + } + + @Override + public void updateBatchSomeColumn(List entrustOrderOrderDetails) { + List updateList = BeanUtils.toBean(entrustOrderOrderDetails, EntrustOrderDetailDO.class); + entrustOrderDetailMapper.insertOrUpdate(updateList); + } + + @Override + public List getEntrustOrderDetailListByOrderId(Long orderId) { + return BeanUtils.toBean(entrustOrderDetailMapper.selectList(EntrustOrderDetailDO::getOrderId, orderId), EntrustOrderDetailRespVO.class); + } + } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderOrderService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderOrderService.java index fb5b5845..0013c9dc 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderOrderService.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderOrderService.java @@ -1,6 +1,7 @@ package com.zt.plat.module.contractorder.service.entrustorder; import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderDetailRespVO; import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderOrderPageReqVO; import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderOrderRespVO; import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderOrderSaveReqVO; @@ -87,9 +88,9 @@ public interface EntrustOrderOrderService { /** * 关闭订单 * - * @param id 编号 - * @return 是否成功 + * @param ids 编号 */ - boolean closeOrder(Long id); + void closeOrder(List ids); + List getEntrustOrderDetailListByOrderId(Long id); } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderOrderServiceImplImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderOrderServiceImplImpl.java index 8d7f7b01..7125cd6b 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderOrderServiceImplImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderOrderServiceImplImpl.java @@ -2,7 +2,9 @@ package com.zt.plat.module.contractorder.service.entrustorder; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.zt.plat.module.contractorder.api.vo.contract.ContractRespVO; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderDetailRespVO; import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderOrderPageReqVO; import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderOrderRespVO; import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderOrderSaveReqVO; @@ -14,9 +16,12 @@ import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativity import com.zt.plat.module.contractorder.dal.dataobject.entrustorder.EntrustOrderOrderDO; import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO; import com.zt.plat.module.contractorder.dal.mysql.contract.SystemRelativityMapper; +import com.zt.plat.module.contractorder.dal.mysql.entrustorder.EntrustOrderDetailMapper; import com.zt.plat.module.contractorder.dal.mysql.entrustorder.EntrustOrderOrderMapper; import com.zt.plat.module.contractorder.enums.contract.DictEnum; +import com.zt.plat.module.contractorder.enums.purchaseorder.OrderStatusEnum; import com.zt.plat.module.contractorder.service.contract.ContractService; +import com.zt.plat.module.system.api.sequence.SequenceApi; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; @@ -48,29 +53,59 @@ public class EntrustOrderOrderServiceImplImpl implements EntrustOrderOrderServic @Resource private EntrustOrderOrderMapper entrustOrderOrderMapper; + @Resource + private EntrustOrderDetailService entrustOrderDetailService; @Resource private SystemRelativityMapper systemRelativityMapper; + @Resource + private SequenceApi sequenceApi; @Resource private ContractService contractService; @Override + @Transactional(rollbackFor = Exception.class) public EntrustOrderOrderRespVO createEntrustOrderOrder(EntrustOrderOrderSaveReqVO createReqVO) { // 插入 - EntrustOrderOrderDO EntrustOrderOrder = BeanUtils.toBean(createReqVO, EntrustOrderOrderDO.class); - entrustOrderOrderMapper.insert(EntrustOrderOrder); + EntrustOrderOrderDO entrustOrderOrder = BeanUtils.toBean(createReqVO, EntrustOrderOrderDO.class); + entrustOrderOrder.setIsPush(0); + entrustOrderOrder.setStatus(OrderStatusEnum.IN_PROGRESS.getCode()); + entrustOrderOrder.setSystemOrderNumber(this.generateOrderNumber("")); + entrustOrderOrderMapper.insert(entrustOrderOrder); + EntrustOrderOrderRespVO bean = BeanUtils.toBean(entrustOrderOrder, EntrustOrderOrderRespVO.class); + //批量插入委托加工订单明细 + if (createReqVO.getEntrustOrderDetails() != null && !createReqVO.getEntrustOrderDetails().isEmpty()) { + createReqVO.getEntrustOrderDetails().forEach(entrustOrderDetail -> entrustOrderDetail.setOrderId(entrustOrderOrder.getId())); + List entrustOrderDetailRespVOS = entrustOrderDetailService.insertBatchSomeColumn(createReqVO.getEntrustOrderDetails()); + bean.setEntrustOrderDetails(entrustOrderDetailRespVOS); + } // 返回 - return BeanUtils.toBean(EntrustOrderOrder, EntrustOrderOrderRespVO.class); + return bean; } + private String generateOrderNumber(String materialType) { + return sequenceApi.getNextSequence("ENTRUST_ORDER_NUMBER", null, null).getData(); + } + + @Override + @Transactional(rollbackFor = Exception.class) public void updateEntrustOrderOrder(EntrustOrderOrderSaveReqVO updateReqVO) { // 校验存在 validateEntrustOrderOrderExists(updateReqVO.getId()); // 更新 EntrustOrderOrderDO updateObj = BeanUtils.toBean(updateReqVO, EntrustOrderOrderDO.class); entrustOrderOrderMapper.updateById(updateObj); + if (updateReqVO.getEntrustOrderDetails() != null && !updateReqVO.getEntrustOrderDetails().isEmpty()) { + //如果明细ID为空(表示新增),则设置订单ID + updateReqVO.getEntrustOrderDetails().forEach(item -> { + if (item.getId() == null) { + item.setOrderId(updateReqVO.getId()); + } + }); + entrustOrderDetailService.updateBatchSomeColumn(updateReqVO.getEntrustOrderDetails()); + } } @Override @@ -190,10 +225,18 @@ public class EntrustOrderOrderServiceImplImpl implements EntrustOrderOrderServic } @Override - public boolean closeOrder(Long id) { + @Transactional(rollbackFor = Exception.class) + public void closeOrder(List ids) { EntrustOrderOrderDO updateObj = new EntrustOrderOrderDO(); - updateObj.setStatus("closed"); - return entrustOrderOrderMapper.updateById(updateObj) > 0; + updateObj.setStatus(OrderStatusEnum.CLOSED.getCode()); + entrustOrderOrderMapper.update(new LambdaUpdateWrapper() + .set(EntrustOrderOrderDO::getStatus, OrderStatusEnum.CLOSED.getCode()) + .in(EntrustOrderOrderDO::getId, ids)); + } + + @Override + public List getEntrustOrderDetailListByOrderId(Long id) { + return entrustOrderDetailService.getEntrustOrderDetailListByOrderId(id); } } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/originalmaterialprocessing/OriginalMaterialProcessingDetailService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/originalmaterialprocessing/OriginalMaterialProcessingDetailService.java new file mode 100644 index 00000000..0cd183f7 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/originalmaterialprocessing/OriginalMaterialProcessingDetailService.java @@ -0,0 +1,90 @@ +package com.zt.plat.module.contractorder.service.originalmaterialprocessing; + +import java.util.*; + +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderDetailRespVO; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderDetailSaveReqVO; +import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailRespVO; +import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailSaveReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.originalmaterialprocessing.OriginalMaterialProcessingDetailDO; +import jakarta.validation.*; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; + +/** + * 来料加工订单明细 Service 接口 + * + * @author 易门采购员测试账号 + */ +public interface OriginalMaterialProcessingDetailService { + + /** + * 创建来料加工订单明细 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + OriginalMaterialProcessingDetailRespVO createOriginalMaterialProcessingDetail(@Valid OriginalMaterialProcessingDetailSaveReqVO createReqVO); + + /** + * 更新来料加工订单明细 + * + * @param updateReqVO 更新信息 + */ + void updateOriginalMaterialProcessingDetail(@Valid OriginalMaterialProcessingDetailSaveReqVO updateReqVO); + + /** + * 删除来料加工订单明细 + * + * @param id 编号 + */ + void deleteOriginalMaterialProcessingDetail(Long id); + + /** + * 批量删除来料加工订单明细 + * + * @param ids 编号 + */ + void deleteOriginalMaterialProcessingDetailListByIds(List ids); + + /** + * 获得来料加工订单明细 + * + * @param id 编号 + * @return 来料加工订单明细 + */ + OriginalMaterialProcessingDetailDO getOriginalMaterialProcessingDetail(Long id); + + /** + * 获得来料加工订单明细分页 + * + * @param pageReqVO 分页查询 + * @return 来料加工订单明细分页 + */ + PageResult getOriginalMaterialProcessingDetailPage(OriginalMaterialProcessingDetailPageReqVO pageReqVO); + + + /** + * 批量插入来料加工订单明细 + * + * @param originalMaterialProcessingDetailSaveReqVOS 来料加工订单明细 + * @return 插入结果 + */ + List insertBatchSomeColumn(List originalMaterialProcessingDetailSaveReqVOS); + + /** + * 批量更新来料加工订单明细 + * + * @param originalMaterialProcessingDetailSaveReqVOS 来料加工订单明细 + */ + void updateBatchSomeColumn(List originalMaterialProcessingDetailSaveReqVOS); + + /** + * 根据订单id获得来料加工订单明细列表 + * + * @param orderId 订单编号 + * @return 来料加工订单明细列表 + */ + List getOriginalMaterialProcessingDetailListByOrderId(Long orderId); +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/originalmaterialprocessing/OriginalMaterialProcessingDetailServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/originalmaterialprocessing/OriginalMaterialProcessingDetailServiceImpl.java new file mode 100644 index 00000000..18bdb4f9 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/originalmaterialprocessing/OriginalMaterialProcessingDetailServiceImpl.java @@ -0,0 +1,113 @@ +package com.zt.plat.module.contractorder.service.originalmaterialprocessing; + +import cn.hutool.core.collection.CollUtil; +import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailRespVO; +import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailSaveReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.originalmaterialprocessing.OriginalMaterialProcessingDetailDO; +import com.zt.plat.module.contractorder.dal.mysql.originalmaterialprocessing.OriginalMaterialProcessingDetailMapper; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.util.object.BeanUtils; + +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; +import static com.zt.plat.framework.common.util.collection.CollectionUtils.diffList; +import static com.zt.plat.module.contractorder.enums.originalmaterialprocessing.ErrorCodeConstants.ORIGINAL_MATERIAL_PROCESSING_DETAIL_NOT_EXISTS; + + +/** + * 来料加工订单明细 Service 实现类 + * + * @author 易门采购员测试账号 + */ +@Service +@Validated +public class OriginalMaterialProcessingDetailServiceImpl implements OriginalMaterialProcessingDetailService { + + @Resource + private OriginalMaterialProcessingDetailMapper originalMaterialProcessingDetailMapper; + + @Override + public OriginalMaterialProcessingDetailRespVO createOriginalMaterialProcessingDetail(OriginalMaterialProcessingDetailSaveReqVO createReqVO) { + // 插入 + OriginalMaterialProcessingDetailDO originalMaterialProcessingDetail = BeanUtils.toBean(createReqVO, OriginalMaterialProcessingDetailDO.class); + originalMaterialProcessingDetailMapper.insert(originalMaterialProcessingDetail); + // 返回 + return BeanUtils.toBean(originalMaterialProcessingDetail, OriginalMaterialProcessingDetailRespVO.class); + } + + @Override + public void updateOriginalMaterialProcessingDetail(OriginalMaterialProcessingDetailSaveReqVO updateReqVO) { + // 校验存在 + validateOriginalMaterialProcessingDetailExists(updateReqVO.getId()); + // 更新 + OriginalMaterialProcessingDetailDO updateObj = BeanUtils.toBean(updateReqVO, OriginalMaterialProcessingDetailDO.class); + originalMaterialProcessingDetailMapper.updateById(updateObj); + } + + @Override + public void deleteOriginalMaterialProcessingDetail(Long id) { + // 校验存在 + validateOriginalMaterialProcessingDetailExists(id); + // 删除 + originalMaterialProcessingDetailMapper.deleteById(id); + } + + @Override + public void deleteOriginalMaterialProcessingDetailListByIds(List ids) { + // 校验存在 + validateOriginalMaterialProcessingDetailExists(ids); + // 删除 + originalMaterialProcessingDetailMapper.deleteByIds(ids); + } + + private void validateOriginalMaterialProcessingDetailExists(List ids) { + List list = originalMaterialProcessingDetailMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(ORIGINAL_MATERIAL_PROCESSING_DETAIL_NOT_EXISTS); + } + } + + private void validateOriginalMaterialProcessingDetailExists(Long id) { + if (originalMaterialProcessingDetailMapper.selectById(id) == null) { + throw exception(ORIGINAL_MATERIAL_PROCESSING_DETAIL_NOT_EXISTS); + } + } + + @Override + public OriginalMaterialProcessingDetailDO getOriginalMaterialProcessingDetail(Long id) { + return originalMaterialProcessingDetailMapper.selectById(id); + } + + @Override + public PageResult getOriginalMaterialProcessingDetailPage(OriginalMaterialProcessingDetailPageReqVO pageReqVO) { + return originalMaterialProcessingDetailMapper.selectPage(pageReqVO); + } + + @Override + public List insertBatchSomeColumn(List originalMaterialProcessingDetailSaveReqVOS) { + List originalMaterialProcessingDetails = BeanUtils.toBean(originalMaterialProcessingDetailSaveReqVOS, OriginalMaterialProcessingDetailDO.class); + originalMaterialProcessingDetailMapper.insertBatch(originalMaterialProcessingDetails); + return BeanUtils.toBean(originalMaterialProcessingDetails, OriginalMaterialProcessingDetailRespVO.class); + } + + @Override + public void updateBatchSomeColumn(List originalMaterialProcessingDetailSaveReqVOS) { + List updateList = BeanUtils.toBean(originalMaterialProcessingDetailSaveReqVOS, OriginalMaterialProcessingDetailDO.class); + originalMaterialProcessingDetailMapper.insertOrUpdate(updateList); + } + + @Override + public List getOriginalMaterialProcessingDetailListByOrderId(Long orderId) { + List originalMaterialProcessingDetails = originalMaterialProcessingDetailMapper.selectList(OriginalMaterialProcessingDetailDO::getOrderId, orderId); + return BeanUtils.toBean(originalMaterialProcessingDetails, OriginalMaterialProcessingDetailRespVO.class); + } + +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/originalmaterialprocessing/OriginalMaterialProcessingService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/originalmaterialprocessing/OriginalMaterialProcessingService.java new file mode 100644 index 00000000..d4c59eb1 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/originalmaterialprocessing/OriginalMaterialProcessingService.java @@ -0,0 +1,105 @@ +package com.zt.plat.module.contractorder.service.originalmaterialprocessing; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderDetailRespVO; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderOrderPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.entrustorder.vo.EntrustOrderOrderSaveReqVO; +import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailRespVO; +import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingRespVO; +import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingSaveReqVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.DownOrUpOrderReqVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.DownOrUpOrderRespVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.LinkOrderReqVO; + +import com.zt.plat.module.contractorder.dal.dataobject.originalmaterialprocessing.OriginalMaterialProcessingDO; +import jakarta.validation.Valid; + +import java.util.List; + +/** + * 采购订单 Service 接口 + * + * @author 后台管理-1 + */ +public interface OriginalMaterialProcessingService { + + /** + * 创建采购订单 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + OriginalMaterialProcessingRespVO createOriginalMaterialProcessing(@Valid OriginalMaterialProcessingSaveReqVO createReqVO); + + /** + * 更新采购订单 + * + * @param updateReqVO 更新信息 + */ + void updateOriginalMaterialProcessing(@Valid OriginalMaterialProcessingSaveReqVO updateReqVO); + + /** + * 删除采购订单 + * + * @param id 编号 + */ + void deleteOriginalMaterialProcessing(Long id); + + /** + * 批量删除采购订单 + * + * @param ids 编号 + */ + void deleteOriginalMaterialProcessingListByIds(List ids); + + /** + * 获得采购订单 + * + * @param id 编号 + * @return 采购订单 + */ + OriginalMaterialProcessingDO getOriginalMaterialProcessing(Long id); + + /** + * 获得采购订单分页 + * + * @param pageReqVO 分页查询 + * @return 采购订单分页 + */ + PageResult getOriginalMaterialProcessingPage(OriginalMaterialProcessingPageReqVO pageReqVO); + /** + * 关联订单 + * + * @param req 关联订单请求 + * @return 是否成功 + */ + boolean linkOrder(LinkOrderReqVO req); + /** + * 获取上或下游订单 + * + * @param reqVO 查询条件 + * @return 上或下游订单 + */ + List getOrderByOrderIdAndType(DownOrUpOrderReqVO reqVO); + /** + * 获取关联订单 + * + * @param reqVO 查询条件 + * @return 关联订单 + */ + List getBindOrderByOrder(DownOrUpOrderReqVO reqVO); + /** + * 关闭订单 + * + * @param ids 编号 + */ + void closeOrder(List ids); + /** + * 获取来料订单详情列表 + * + * @param id 编号 + * @return 来料订单详情列表 + */ + List getOriginalMaterialProcessingDetailListByOrderId(Long id); +} \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/originalmaterialprocessing/OriginalMaterialProcessingServiceImplImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/originalmaterialprocessing/OriginalMaterialProcessingServiceImplImpl.java new file mode 100644 index 00000000..b40735fa --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/originalmaterialprocessing/OriginalMaterialProcessingServiceImplImpl.java @@ -0,0 +1,240 @@ +package com.zt.plat.module.contractorder.service.originalmaterialprocessing; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.module.contractorder.api.vo.contract.ContractRespVO; +import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingDetailRespVO; +import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingRespVO; +import com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo.OriginalMaterialProcessingSaveReqVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.DownOrUpOrderReqVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.DownOrUpOrderRespVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.LinkOrderReqVO; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PurchaseOrderRespVO; +import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativityDO; +import com.zt.plat.module.contractorder.dal.dataobject.entrustorder.EntrustOrderOrderDO; +import com.zt.plat.module.contractorder.dal.dataobject.originalmaterialprocessing.OriginalMaterialProcessingDO; +import com.zt.plat.module.contractorder.dal.mysql.contract.SystemRelativityMapper; +import com.zt.plat.module.contractorder.dal.mysql.originalmaterialprocessing.OriginalMaterialProcessingMapper; +import com.zt.plat.module.contractorder.enums.contract.DictEnum; +import com.zt.plat.module.contractorder.enums.purchaseorder.OrderStatusEnum; +import com.zt.plat.module.contractorder.service.contract.ContractService; +import com.zt.plat.module.system.api.sequence.SequenceApi; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import java.util.ArrayList; +import java.util.List; + +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.module.contractorder.enums.ErrorCodeConstants.CONTRACT_ORDER_EXISTS; +import static com.zt.plat.module.contractorder.enums.entrustorder.ErrorCodeConstants.ENTRUST_ORDER_NOT_EXISTS; +import static com.zt.plat.module.contractorder.enums.originalmaterialprocessing.ErrorCodeConstants.ORIGINAL_MATERIAL_PROCESSING_DO_NOT_EXISTS; + + +/** + * 采购订单 Service 实现类 + * + * @author 后台管理-1 + */ +@Service +@Validated +@Slf4j +public class OriginalMaterialProcessingServiceImplImpl implements OriginalMaterialProcessingService { + + @Resource + private OriginalMaterialProcessingMapper originalMaterialProcessingMapper; + + @Resource + private OriginalMaterialProcessingDetailService originalMaterialProcessingDetailService; + @Resource + private SystemRelativityMapper systemRelativityMapper; + + @Resource + private SequenceApi sequenceApi; + + @Resource + private ContractService contractService; + + @Override + @Transactional(rollbackFor = Exception.class) + public OriginalMaterialProcessingRespVO createOriginalMaterialProcessing(OriginalMaterialProcessingSaveReqVO createReqVO) { + // 插入 + OriginalMaterialProcessingDO originalMaterialProcessingDO = BeanUtils.toBean(createReqVO, OriginalMaterialProcessingDO.class); + originalMaterialProcessingDO.setIsPush(0); + originalMaterialProcessingDO.setStatus(OrderStatusEnum.IN_PROGRESS.getCode()); + originalMaterialProcessingDO.setSystemOrderNumber(this.generateOrderNumber("")); + originalMaterialProcessingMapper.insert(originalMaterialProcessingDO); + OriginalMaterialProcessingRespVO bean = BeanUtils.toBean(originalMaterialProcessingDO, OriginalMaterialProcessingRespVO.class); + //批量插入委托加工订单明细 + if (createReqVO.getDetails() != null && !createReqVO.getDetails().isEmpty()) { + createReqVO.getDetails().forEach(entrustOrderDetail -> entrustOrderDetail.setOrderId(originalMaterialProcessingDO.getId())); + List originalMaterialProcessingDetailRespVOS = originalMaterialProcessingDetailService.insertBatchSomeColumn(createReqVO.getDetails()); + bean.setDetails(originalMaterialProcessingDetailRespVOS); + } + // 返回 + return bean; + } + + private String generateOrderNumber(String materialType) { + return sequenceApi.getNextSequence("ENTRUST_ORDER_NUMBER", null, null).getData(); + } + + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateOriginalMaterialProcessing(OriginalMaterialProcessingSaveReqVO updateReqVO) { + // 校验存在 + validateEntrustOrderOrderExists(updateReqVO.getId()); + // 更新 + OriginalMaterialProcessingDO updateObj = BeanUtils.toBean(updateReqVO, OriginalMaterialProcessingDO.class); + originalMaterialProcessingMapper.updateById(updateObj); + if (updateReqVO.getDetails() != null && !updateReqVO.getDetails().isEmpty()) { + //如果明细ID为空(表示新增),则设置订单ID + updateReqVO.getDetails().forEach(item -> { + if (item.getId() == null) { + item.setOrderId(updateReqVO.getId()); + } + }); + originalMaterialProcessingDetailService.updateBatchSomeColumn(updateReqVO.getDetails()); + } + } + + @Override + public void deleteOriginalMaterialProcessing(Long id) { + // 校验存在 + validateEntrustOrderOrderExists(id); + // 删除 + originalMaterialProcessingMapper.deleteById(id); + } + + @Override + public void deleteOriginalMaterialProcessingListByIds(List ids) { + // 校验存在 + validateEntrustOrderOrderExists(ids); + // 删除 + originalMaterialProcessingMapper.deleteByIds(ids); + } + + private void validateEntrustOrderOrderExists(List ids) { + List list = originalMaterialProcessingMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(ENTRUST_ORDER_NOT_EXISTS); + } + } + + private void validateEntrustOrderOrderExists(Long id) { + if (originalMaterialProcessingMapper.selectById(id) == null) { + throw exception(ENTRUST_ORDER_NOT_EXISTS); + } + } + + @Override + public OriginalMaterialProcessingDO getOriginalMaterialProcessing(Long id) { + return originalMaterialProcessingMapper.selectById(id); + } + + @Override + public PageResult getOriginalMaterialProcessingPage(OriginalMaterialProcessingPageReqVO pageReqVO) { + return originalMaterialProcessingMapper.selectPage(pageReqVO); + } + + @Override + public boolean linkOrder(LinkOrderReqVO req) { + SystemRelativityDO saveDO = new SystemRelativityDO(); + saveDO.setStatus(DictEnum.BSE_SYS_REL_TP_ORDER.getCode()); + saveDO.setUpId(req.getUpOrderId()); + saveDO.setDownId(req.getDownOrderId()); + //判断订单有没有关联过 + if (systemRelativityMapper.selectCount(new LambdaQueryWrapper().eq(SystemRelativityDO::getUpId, saveDO.getUpId()).eq(SystemRelativityDO::getDownId, saveDO.getDownId())) > 0) { + throw exception(CONTRACT_ORDER_EXISTS); + } + return systemRelativityMapper.insert(saveDO) > 0; + } + + @Override + public List getOrderByOrderIdAndType(DownOrUpOrderReqVO reqVO) { + OriginalMaterialProcessingDO originalMaterialProcessingDO = originalMaterialProcessingMapper.selectById(reqVO.getOrderId()); + if (originalMaterialProcessingDO == null) { + throw exception(ORIGINAL_MATERIAL_PROCESSING_DO_NOT_EXISTS); + } + String contractNumber = originalMaterialProcessingDO.getContractNumber();// 合同号 + ContractRespVO contractRespVO = contractService.getBySystemContractNumber(contractNumber); + + ContractRespVO upRelation = null; + if ("up".equals(reqVO.getOrderType())) { + log.info("获取上游订单"); + //上游 + upRelation = contractService.getUpRelation(contractRespVO.getId()); + } else { + //下游 + log.info("获取下游订单"); + upRelation = contractService.getDownRelation(contractRespVO.getId()); + } + List orderList = new ArrayList<>(); + if (upRelation != null) { + String systemContractNumber = upRelation.getSystemContractNumber(); + + List originalMaterialProcessingDOS = originalMaterialProcessingMapper.selectList(new LambdaQueryWrapper().eq(OriginalMaterialProcessingDO::getContractNumber, systemContractNumber)); + originalMaterialProcessingDOS.forEach(p -> { + DownOrUpOrderRespVO downOrUpOrderRespVO = new DownOrUpOrderRespVO(); + downOrUpOrderRespVO.setOrderId(String.valueOf(p.getId())); + downOrUpOrderRespVO.setOrderNo(p.getSystemOrderNumber()); + downOrUpOrderRespVO.setOrderType(reqVO.getOrderType()); + downOrUpOrderRespVO.setContractId(String.valueOf(p.getId())); + downOrUpOrderRespVO.setContractName(p.getContractName()); + downOrUpOrderRespVO.setContractNumber(p.getContractNumber()); + downOrUpOrderRespVO.setOrder(BeanUtils.toBean(p, PurchaseOrderRespVO.class)); + orderList.add(downOrUpOrderRespVO); + } + ); + + } + return orderList; + } + + @Override + public List getBindOrderByOrder(DownOrUpOrderReqVO reqVO) { + List orderList = new ArrayList<>(); + if ("up".equals(reqVO.getOrderType())) { + log.info("获取上游订单"); + //上游 + List systemRelativityDOS = systemRelativityMapper.selectList(new LambdaQueryWrapper().eq(SystemRelativityDO::getDownId, reqVO.getOrderId())); + if (!systemRelativityDOS.isEmpty()) { + List originalMaterialProcessingDOS = originalMaterialProcessingMapper.selectByIds(systemRelativityDOS.stream().map(SystemRelativityDO::getUpId).toList()); + orderList = BeanUtils.toBean(originalMaterialProcessingDOS, OriginalMaterialProcessingRespVO.class); + } + } else { + //下游 + log.info("获取下游订单"); + List systemRelativityDOS = systemRelativityMapper.selectList(new LambdaQueryWrapper().eq(SystemRelativityDO::getUpId, reqVO.getOrderId())); + if (!systemRelativityDOS.isEmpty()) { + List originalMaterialProcessingDOS = originalMaterialProcessingMapper.selectByIds(systemRelativityDOS.stream().map(SystemRelativityDO::getDownId).toList()); + orderList = BeanUtils.toBean(originalMaterialProcessingDOS, OriginalMaterialProcessingRespVO.class); + } + } + return orderList; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void closeOrder(List ids) { + EntrustOrderOrderDO updateObj = new EntrustOrderOrderDO(); + updateObj.setStatus(OrderStatusEnum.CLOSED.getCode()); + originalMaterialProcessingMapper.update(new LambdaUpdateWrapper() + .set(OriginalMaterialProcessingDO::getStatus, OrderStatusEnum.CLOSED.getCode()) + .in(OriginalMaterialProcessingDO::getId, ids)); + } + + @Override + public List getOriginalMaterialProcessingDetailListByOrderId(Long id) { + return originalMaterialProcessingDetailService.getOriginalMaterialProcessingDetailListByOrderId(id); + } + +} \ No newline at end of file