From efab6957a33508df78538c42c34668c55cb61123 Mon Sep 17 00:00:00 2001 From: liss <1780094091@qq.com> Date: Wed, 24 Sep 2025 10:02:03 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=B5=8B=E8=AF=95url,sply=E6=94=B9?= =?UTF-8?q?=E4=B8=BAerp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/erp/ErpAssetController.java | 2 +- .../admin/erp/ErpBomController.java | 2 +- .../admin/erp/ErpBomDetailController.java | 2 +- .../admin/erp/ErpCompanyController.java | 2 +- .../admin/erp/ErpCostcenterController.java | 2 +- .../admin/erp/ErpCustomerController.java | 2 +- .../admin/erp/ErpFactoryController.java | 2 +- .../admin/erp/ErpInternalOrderController.java | 2 +- .../admin/erp/ErpMaterialController.java | 2 +- .../admin/erp/ErpProcessController.java | 2 +- .../admin/erp/ErpProcessDetailController.java | 2 +- .../erp/ErpProductiveOrderController.java | 2 +- .../erp/ErpProductiveVersionController.java | 2 +- .../ErpPurchaseOrganizationController.java | 2 +- .../erp/ErpSalesOrganizationController.java | 2 +- .../admin/erp/ErpWarehouseController.java | 2 +- .../admin/erp/vo/ErpBomDetailPageReqVO.java | 2 +- .../admin/erp/vo/ErpBomDetailRespVO.java | 2 +- .../admin/erp/vo/ErpBomDetailSaveReqVO.java | 2 +- .../erp/dal/dataobject/erp/ErpBomDO.java | 4 - .../dal/dataobject/erp/ErpBomDetailDO.java | 2 +- .../erp/dal/mysql/erp/ErpBomMapper.java | 1 + .../erp/service/erp/ErpBomDetailService.java | 1 + .../service/erp/ErpBomDetailServiceImpl.java | 45 +++++++++- .../erp/service/erp/ErpBomServiceImpl.java | 89 +++++++++++-------- .../main/resources/mapper/ErpBomMapper.xml | 4 + 26 files changed, 120 insertions(+), 64 deletions(-) diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpAssetController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpAssetController.java index 2f09d5e..76a9a8f 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpAssetController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpAssetController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP资产卡片") @RestController -@RequestMapping("/sply/erp-asset") +@RequestMapping("/erp/erp-asset") @Validated public class ErpAssetController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpBomController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpBomController.java index bfb21f3..8a1a78a 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpBomController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpBomController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP物料清单(BOM)") @RestController -@RequestMapping("/sply/erp-bom") +@RequestMapping("/erp/erp-bom") @Validated public class ErpBomController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpBomDetailController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpBomDetailController.java index ade5e23..985ef85 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpBomDetailController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpBomDetailController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP物料清单(BOM)明细") @RestController -@RequestMapping("/sply/erp-bom-detail") +@RequestMapping("/erp/erp-bom-detail") @Validated public class ErpBomDetailController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCompanyController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCompanyController.java index a05399a..e4bbce7 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCompanyController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCompanyController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP公司") @RestController -@RequestMapping("/sply/erp-company") +@RequestMapping("/erp/erp-company") @Validated public class ErpCompanyController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCostcenterController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCostcenterController.java index 329a3dd..08c2f61 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCostcenterController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCostcenterController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP成本中心") @RestController -@RequestMapping("/sply/erp-costcenter") +@RequestMapping("/erp/erp-costcenter") @Validated public class ErpCostcenterController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCustomerController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCustomerController.java index 97c72bf..753f9a3 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCustomerController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCustomerController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP客商信息") @RestController -@RequestMapping("/sply/erp-customer") +@RequestMapping("/erp/erp-customer") @Validated public class ErpCustomerController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpFactoryController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpFactoryController.java index ba1026d..aa78d24 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpFactoryController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpFactoryController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP工厂") @RestController -@RequestMapping("/sply/erp-factory") +@RequestMapping("/erp/erp-factory") @Validated public class ErpFactoryController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpInternalOrderController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpInternalOrderController.java index 77ca90f..99ef3a3 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpInternalOrderController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpInternalOrderController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP内部订单") @RestController -@RequestMapping("/sply/erp-internal-order") +@RequestMapping("/erp/erp-internal-order") @Validated public class ErpInternalOrderController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java index 3d19c67..227bd07 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP物料信息") @RestController -@RequestMapping("/sply/erp-material") +@RequestMapping("/erp/erp-material") @Validated public class ErpMaterialController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProcessController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProcessController.java index a3ef944..fa1c8ba 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProcessController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProcessController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP工艺路线") @RestController -@RequestMapping("/sply/erp-process") +@RequestMapping("/erp/erp-process") @Validated public class ErpProcessController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProcessDetailController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProcessDetailController.java index 4a55078..ba78aab 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProcessDetailController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProcessDetailController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP工艺路线明细") @RestController -@RequestMapping("/sply/erp-process-detail") +@RequestMapping("/erp/erp-process-detail") @Validated public class ErpProcessDetailController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveOrderController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveOrderController.java index a18f52d..502fc5e 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveOrderController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveOrderController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP生产订单") @RestController -@RequestMapping("/sply/erp-productive-order") +@RequestMapping("/erp/erp-productive-order") @Validated public class ErpProductiveOrderController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveVersionController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveVersionController.java index 27cd2a6..aaee9a6 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveVersionController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveVersionController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP生产版本") @RestController -@RequestMapping("/sply/erp-productive-version") +@RequestMapping("/erp/erp-productive-version") @Validated public class ErpProductiveVersionController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpPurchaseOrganizationController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpPurchaseOrganizationController.java index 23978bf..525c2be 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpPurchaseOrganizationController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpPurchaseOrganizationController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP采购组织") @RestController -@RequestMapping("/sply/erp-purchase-organization") +@RequestMapping("/erp/erp-purchase-organization") @Validated public class ErpPurchaseOrganizationController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpSalesOrganizationController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpSalesOrganizationController.java index 0500b10..1fa1bc0 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpSalesOrganizationController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpSalesOrganizationController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP销售组织") @RestController -@RequestMapping("/sply/erp-sales-organization") +@RequestMapping("/erp/erp-sales-organization") @Validated public class ErpSalesOrganizationController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpWarehouseController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpWarehouseController.java index 98e464c..0759d1b 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpWarehouseController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpWarehouseController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP库位") @RestController -@RequestMapping("/sply/erp-warehouse") +@RequestMapping("/erp/erp-warehouse") @Validated public class ErpWarehouseController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpBomDetailPageReqVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpBomDetailPageReqVO.java index 009d960..06df364 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpBomDetailPageReqVO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpBomDetailPageReqVO.java @@ -20,7 +20,7 @@ public class ErpBomDetailPageReqVO extends PageParam { private String childMaterialNumber; @Schema(description = "子项物料描述") - private BigDecimal childMaterialDescription; + private String childMaterialDescription; @Schema(description = "子项类别") private String category; diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpBomDetailRespVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpBomDetailRespVO.java index 8aeb745..97a9bac 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpBomDetailRespVO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpBomDetailRespVO.java @@ -30,7 +30,7 @@ public class ErpBomDetailRespVO { @Schema(description = "子项物料描述", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("子项物料描述") - private BigDecimal childMaterialDescription; + private String childMaterialDescription; @Schema(description = "子项类别", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("子项类别") diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpBomDetailSaveReqVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpBomDetailSaveReqVO.java index 8a3b994..2f9ba8c 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpBomDetailSaveReqVO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpBomDetailSaveReqVO.java @@ -28,7 +28,7 @@ public class ErpBomDetailSaveReqVO { @Schema(description = "子项物料描述", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "子项物料描述不能为空") - private BigDecimal childMaterialDescription; + private String childMaterialDescription; @Schema(description = "子项类别", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "子项类别不能为空") diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/ErpBomDO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/ErpBomDO.java index 69dcb82..a60ac01 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/ErpBomDO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/ErpBomDO.java @@ -60,8 +60,4 @@ public class ErpBomDO { */ @TableField("UNT") private String unit; - - @TableField(fill = FieldFill.INSERT) - private List erpBomDetailDOList; - } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/ErpBomDetailDO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/ErpBomDetailDO.java index 00a166b..a3bd057 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/ErpBomDetailDO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/ErpBomDetailDO.java @@ -49,7 +49,7 @@ public class ErpBomDetailDO { * 子项物料描述 */ @TableField("CHD_MTRL_DSP") - private BigDecimal childMaterialDescription; + private String childMaterialDescription; /** * 子项类别 */ diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/mysql/erp/ErpBomMapper.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/mysql/erp/ErpBomMapper.java index 732ee7e..a00e6c7 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/mysql/erp/ErpBomMapper.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/mysql/erp/ErpBomMapper.java @@ -26,4 +26,5 @@ public interface ErpBomMapper extends BaseMapperX { .orderByDesc(ErpBomDO::getId)); } + Long insertGetId(ErpBomDO aDo); } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomDetailService.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomDetailService.java index bee2db8..cd4f518 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomDetailService.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomDetailService.java @@ -61,4 +61,5 @@ public interface ErpBomDetailService { */ PageResult getErpBomDetailPage(ErpBomDetailPageReqVO pageReqVO); + void saveOrUpdateErpBomDetail(List updateReqVO); } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomDetailServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomDetailServiceImpl.java index e6264ac..ccb4961 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomDetailServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomDetailServiceImpl.java @@ -3,16 +3,23 @@ package com.zt.plat.module.erp.service.erp; import cn.hutool.core.collection.CollUtil; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.module.erp.common.conf.ErpConfig; +import com.zt.plat.module.erp.common.enums.OftenEnum; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpBomDetailPageReqVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpBomDetailRespVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpBomDetailSaveReqVO; +import com.zt.plat.module.erp.dal.dataobject.erp.ErpBomDO; import com.zt.plat.module.erp.dal.dataobject.erp.ErpBomDetailDO; import com.zt.plat.module.erp.dal.mysql.erp.ErpBomDetailMapper; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.module.erp.enums.ErrorCodeConstants.ERP_BOM_DETAIL_NOT_EXISTS; @@ -29,6 +36,9 @@ public class ErpBomDetailServiceImpl implements ErpBomDetailService { @Resource private ErpBomDetailMapper erpBomDetailMapper; + @Resource + private ErpConfig erpConfig; + @Override public ErpBomDetailRespVO createErpBomDetail(ErpBomDetailSaveReqVO createReqVO) { // 插入 @@ -56,12 +66,12 @@ public class ErpBomDetailServiceImpl implements ErpBomDetailService { } @Override - public void deleteErpBomDetailListByIds(List ids) { + public void deleteErpBomDetailListByIds(List ids) { // 校验存在 validateErpBomDetailExists(ids); // 删除 erpBomDetailMapper.deleteByIds(ids); - } + } private void validateErpBomDetailExists(List ids) { List list = erpBomDetailMapper.selectByIds(ids); @@ -86,4 +96,35 @@ public class ErpBomDetailServiceImpl implements ErpBomDetailService { return erpBomDetailMapper.selectPage(pageReqVO); } + @Override + public void saveOrUpdateErpBomDetail(List updateReqVO) { + String key = "erpMap" + OftenEnum.FuncnrEnum.BOM清单.getFuncnr()+ "Detail"; + if (erpConfig.getRedisCacheMap(key).isEmpty()) { + initializeMap(key); + } + List toUpdate = new ArrayList<>(); + List toInsert = new ArrayList<>(); + + Map existingNumbers = erpConfig.getRedisCacheMap(key); +// for (ErpBomDetailDO updateReqVO : updateReqVO){ +// String mapKey = updateReqVO.getBomId() + "-" + updateReqVO.getErpBomId(); +// if (existingNumbers.get(mapKey)!=null) { +// +// updateReqVO.setId(existingNumbers.get(mapKey)); +// } +// } + + +// erpBomDetailMapper.saveOrUpdateErpBomDetail(updateReqVO); + } + + private void initializeMap(String key) { + List assets = erpBomDetailMapper.selectList(new LambdaQueryWrapperX()); + Map existingNumbers = new HashMap<>(); + for (ErpBomDetailDO asset : assets) { + String mapKey = asset.getBomId() + "-" + asset.getErpBomId(); + existingNumbers.put(mapKey, asset.getId()); + } + erpConfig.addRedisCacheMap(key, existingNumbers); + } } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomServiceImpl.java index bf9d4bd..5355fad 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomServiceImpl.java @@ -3,6 +3,7 @@ package com.zt.plat.module.erp.service.erp; import cn.hutool.core.collection.CollUtil; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zt.plat.module.erp.api.ErpExternalApi; import com.zt.plat.module.erp.api.dto.ErpSubmitReqDTO; import com.zt.plat.module.erp.common.conf.ErpConfig; @@ -10,6 +11,7 @@ import com.zt.plat.module.erp.common.enums.OftenEnum; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpBomPageReqVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpBomRespVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpBomSaveReqVO; +import com.zt.plat.module.erp.dal.dataobject.erp.ErpAssetDO; import com.zt.plat.module.erp.dal.dataobject.erp.ErpBomDO; import com.zt.plat.module.erp.dal.dataobject.erp.ErpBomDO; import com.zt.plat.module.erp.dal.dataobject.erp.ErpBomDetailDO; @@ -48,6 +50,9 @@ public class ErpBomServiceImpl implements ErpBomService { @Resource public ErpExternalApi erpExternalApi; + @Resource + private ErpBomDetailServiceImpl bomDetailService; + @Override public ErpBomRespVO createErpBom(ErpBomSaveReqVO createReqVO) { // 插入 @@ -112,13 +117,18 @@ public class ErpBomServiceImpl implements ErpBomService { try { OftenEnum.FuncnrEnum funcnrEnum = OftenEnum.FuncnrEnum.BOM清单; String funcnr = funcnrEnum.getFuncnr(); + String key = "erpMap" + funcnr; + if (erpConfig.getRedisCacheMap(key).isEmpty()) { + initializeMap(key); + } Map req = new HashMap<>(); JSONArray dataArrayALL = new JSONArray(); - List redisCache = erpConfig.getRedisCache(OftenEnum.FuncnrEnum.工厂信息.getFuncnr()); + String factKey = "erpMap" + OftenEnum.FuncnrEnum.工厂信息.getFuncnr(); + Map redisCache = erpConfig.getRedisCacheMap(factKey); if (CollUtil.isEmpty(redisCache)) { return; } - for (String factoryNumber : redisCache) { + for (String factoryNumber : redisCache.keySet()) { req.put("WERKS", factoryNumber); // 1. 调用ERP接口获取数据 JSONArray dataArray = erpConfig.fetchDataFromERP(funcnr, req); @@ -143,14 +153,13 @@ public class ErpBomServiceImpl implements ErpBomService { /** * 处理数据,区分新增和更新 */ - private ProcessingResult processData(JSONArray dataArray, OftenEnum.FuncnrEnum funcnr) { - String key = "erp" + funcnr.getFuncnr(); + private ProcessingResult processData(JSONArray dataArray, OftenEnum.FuncnrEnum funcnrEnum) { + String key = "erpMap" + funcnrEnum.getFuncnr(); Map numbers = erpConfig.getRedisCacheMap(key); - Map numberDetails = erpConfig.getRedisCacheMap(key+"details"); List toUpdate = new ArrayList<>(); - List toInsert = new ArrayList<>(); List allnumbers = new ArrayList<>(); + List erpBomDetailDOList = new ArrayList<>(); for (int i = 0; i < dataArray.size(); i++) { JSONObject dataJson = dataArray.getJSONObject(i); if (dataJson != null) { @@ -162,42 +171,37 @@ public class ErpBomServiceImpl implements ErpBomService { DO.setMaterialDescription(dataJson.getString("MAKTX")); DO.setQuantity(dataJson.getBigDecimal("BMENG")); DO.setUnit(dataJson.getString("BMEIN")); - String number =DO.getUpMaterial()+"-"+DO.getUseItem()+"-"+DO.getFactoryNumber(); - if (numbers.get(number)!=null) { + String number = DO.getFactoryNumber() + "-" + DO.getUpMaterial() + "-" + DO.getUseItem(); + if (numbers.get(number) != null) { // 更新 DO.setId(numbers.get(number)); toUpdate.add(DO); } else { - // 新增 - toInsert.add(DO); + // 为了避免数据重复,先将主表数据插入数据库,再获取主表ID,再插入子表数据 + erpBomMapper.insert(DO); + numbers.put(number, DO.getId()); } JSONArray dataJsonItem = dataJson.getJSONArray("ITEM"); if (dataJsonItem != null) { - List erpBomDetailDOList =new ArrayList<>(); - for (int j = 0; j < dataJsonItem.size(); j++){ + for (int j = 0; j < dataJsonItem.size(); j++) { JSONObject dataJsonItemJson = dataJsonItem.getJSONObject(j); ErpBomDetailDO detailDO = new ErpBomDetailDO(); - String numberDel = number+dataJsonItemJson.getString("STVKN"); - if (numberDetails.get( numberDel) != null){ - detailDO.setId(Long.valueOf(numberDetails.get( numberDel))); - } - detailDO.setBomId(String.valueOf(numbers.get(number))); + detailDO.setBomId(String.valueOf(DO.getId())); detailDO.setErpBomId(dataJsonItemJson.getString("STVKN")); - detailDO.setErpBomId(dataJsonItemJson.getString("IDNRK")); - detailDO.setErpBomId(dataJsonItemJson.getString("OJTXP")); - detailDO.setErpBomId(dataJsonItemJson.getString("POSTP")); - detailDO.setErpBomId(dataJsonItemJson.getString("MENGE")); - detailDO.setErpBomId(dataJsonItemJson.getString("MEINS")); - detailDO.setErpBomId(dataJsonItemJson.getString("WLCAT")); + detailDO.setChildMaterialNumber(dataJsonItemJson.getString("IDNRK")); + detailDO.setChildMaterialDescription(dataJsonItemJson.getString("OJTXP")); + detailDO.setCategory(dataJsonItemJson.getString("POSTP")); + detailDO.setQuantity(dataJsonItemJson.getBigDecimal("MENGE")); + detailDO.setUnit(dataJsonItemJson.getString("MEINS")); + detailDO.setIdentificationType(dataJsonItemJson.getString("WLCAT")); erpBomDetailDOList.add(detailDO); } - DO.setErpBomDetailDOList(erpBomDetailDOList); } } } - return new ProcessingResult(toUpdate, toInsert, key, allnumbers); + return new ProcessingResult(toUpdate, erpBomDetailDOList,key, allnumbers); } /** @@ -205,13 +209,12 @@ public class ErpBomServiceImpl implements ErpBomService { */ private void saveData(ProcessingResult result) { // 批量新增和更新 - if (!result.toInsert.isEmpty()) { - erpBomMapper.insertBatch(result.toInsert); - } if (!result.toUpdate.isEmpty()) { erpBomMapper.updateBatch(result.toUpdate); } - erpConfig.updateRedisCache(result.key, result.allnumbers); + if (!result.erpBomDetailDOList.isEmpty()) { + bomDetailService.saveOrUpdateErpBomDetail(result.erpBomDetailDOList); + } } /** @@ -219,34 +222,44 @@ public class ErpBomServiceImpl implements ErpBomService { */ private static class ProcessingResult { private final List toUpdate; - private final List toInsert; + private final List erpBomDetailDOList; private final String key; private final List allnumbers; - public ProcessingResult(List toUpdate, List toInsert, String key, List allnumbers) { + public ProcessingResult(List toUpdate, List erpBomDetailDOList, String key, List allnumbers) { this.toUpdate = toUpdate; - this.toInsert = toInsert; + this.erpBomDetailDOList = erpBomDetailDOList; this.key = key; this.allnumbers = allnumbers; } } + private void initializeMap(String key) { + List assets = erpBomMapper.selectList(new LambdaQueryWrapperX()); + Map existingNumbers = new HashMap<>(); + for (ErpBomDO asset : assets) { + String mapKey = asset.getFactoryNumber() + "-" + asset.getUpMaterial() + "-" + asset.getUseItem(); + existingNumbers.put(mapKey, asset.getId()); + } + erpConfig.addRedisCacheMap(key, existingNumbers); + } + @Override public void submitDataToErp() { - ErpSubmitReqDTO reqDTO = new ErpSubmitReqDTO(); + ErpSubmitReqDTO reqDTO = new ErpSubmitReqDTO(); reqDTO.setSrcsys("MOM"); reqDTO.setFuncnr("061"); reqDTO.setBskey("POTEST011"); reqDTO.setUsrid("cuibin"); reqDTO.setUsrnm("崔斌"); - + Map req = new HashMap<>(); - + Map exte = new HashMap<>(); exte.put("zzhth", "成品采购合同0406-1-xt"); req.put("exte", exte); - + Map head = new HashMap<>(); head.put("pur_group", "120"); head.put("purch_org", "3017"); @@ -258,7 +271,7 @@ public class ErpBomServiceImpl implements ErpBomService { head.put("doc_type", "PO01"); head.put("zzhth", "成品采购合同0406-1-xt"); req.put("head", head); - + List> items = new ArrayList<>(); Map item = new HashMap<>(); item.put("material", "000000000000226986"); @@ -275,7 +288,7 @@ public class ErpBomServiceImpl implements ErpBomService { req.put("item", items); reqDTO.setReq(req); ResponseEntity response = erpExternalApi.submitDataToErp(reqDTO); - if (response.getStatusCode() == HttpStatus.OK){ + if (response.getStatusCode() == HttpStatus.OK) { log.info("ERP数据提交成功"); } } diff --git a/zt-module-erp/zt-module-erp-server/src/main/resources/mapper/ErpBomMapper.xml b/zt-module-erp/zt-module-erp-server/src/main/resources/mapper/ErpBomMapper.xml index 4575a08..85d4dfb 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/resources/mapper/ErpBomMapper.xml +++ b/zt-module-erp/zt-module-erp-server/src/main/resources/mapper/ErpBomMapper.xml @@ -9,6 +9,10 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> + + + + UPDATE sply_erp_fact From 1dd55a02aea9cd77243feda6d0c9e6aaff26ccaa Mon Sep 17 00:00:00 2001 From: liss <1780094091@qq.com> Date: Wed, 24 Sep 2025 11:18:39 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=B5=8B=E8=AF=95url,erp=E6=94=B9=E4=B8=BA?= =?UTF-8?q?base?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/erp/ErpAssetController.java | 2 +- .../admin/erp/ErpBomController.java | 2 +- .../admin/erp/ErpBomDetailController.java | 2 +- .../admin/erp/ErpCompanyController.java | 2 +- .../admin/erp/ErpContractController.java | 2 +- .../admin/erp/ErpCostcenterController.java | 2 +- .../admin/erp/ErpCustomerController.java | 2 +- .../admin/erp/ErpFactoryController.java | 2 +- .../admin/erp/ErpInternalOrderController.java | 2 +- .../admin/erp/ErpMaterialController.java | 2 +- .../admin/erp/ErpProcessController.java | 2 +- .../admin/erp/ErpProcessDetailController.java | 2 +- .../erp/ErpProductiveOrderController.java | 2 +- .../erp/ErpProductiveVersionController.java | 2 +- .../ErpPurchaseOrganizationController.java | 2 +- .../erp/ErpSalesOrganizationController.java | 2 +- .../admin/erp/ErpWarehouseController.java | 2 +- .../service/erp/ErpBomDetailServiceImpl.java | 83 ++++++++++++++++--- .../erp/service/erp/ErpBomServiceImpl.java | 15 +++- 19 files changed, 103 insertions(+), 29 deletions(-) diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpAssetController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpAssetController.java index 76a9a8f..ca3d485 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpAssetController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpAssetController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP资产卡片") @RestController -@RequestMapping("/erp/erp-asset") +@RequestMapping("/base/erp-asset") @Validated public class ErpAssetController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpBomController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpBomController.java index 8a1a78a..c609995 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpBomController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpBomController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP物料清单(BOM)") @RestController -@RequestMapping("/erp/erp-bom") +@RequestMapping("/base/erp-bom") @Validated public class ErpBomController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpBomDetailController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpBomDetailController.java index 985ef85..25674e4 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpBomDetailController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpBomDetailController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP物料清单(BOM)明细") @RestController -@RequestMapping("/erp/erp-bom-detail") +@RequestMapping("/base/erp-bom-detail") @Validated public class ErpBomDetailController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCompanyController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCompanyController.java index e4bbce7..1e27352 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCompanyController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCompanyController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP公司") @RestController -@RequestMapping("/erp/erp-company") +@RequestMapping("/base/erp-company") @Validated public class ErpCompanyController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpContractController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpContractController.java index c32e793..c901871 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpContractController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpContractController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP合同映射") @RestController -@RequestMapping("/bse/erp-contract") +@RequestMapping("/base/erp-contract") @Validated public class ErpContractController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCostcenterController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCostcenterController.java index 08c2f61..e29bf1f 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCostcenterController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCostcenterController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP成本中心") @RestController -@RequestMapping("/erp/erp-costcenter") +@RequestMapping("/base/erp-costcenter") @Validated public class ErpCostcenterController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCustomerController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCustomerController.java index 753f9a3..90c1ea0 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCustomerController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCustomerController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP客商信息") @RestController -@RequestMapping("/erp/erp-customer") +@RequestMapping("/base/erp-customer") @Validated public class ErpCustomerController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpFactoryController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpFactoryController.java index aa78d24..21847ef 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpFactoryController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpFactoryController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP工厂") @RestController -@RequestMapping("/erp/erp-factory") +@RequestMapping("/base/erp-factory") @Validated public class ErpFactoryController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpInternalOrderController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpInternalOrderController.java index 99ef3a3..4f745fd 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpInternalOrderController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpInternalOrderController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP内部订单") @RestController -@RequestMapping("/erp/erp-internal-order") +@RequestMapping("/base/erp-internal-order") @Validated public class ErpInternalOrderController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java index 227bd07..8fc47fb 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP物料信息") @RestController -@RequestMapping("/erp/erp-material") +@RequestMapping("/base/erp-material") @Validated public class ErpMaterialController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProcessController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProcessController.java index fa1c8ba..17cd2aa 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProcessController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProcessController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP工艺路线") @RestController -@RequestMapping("/erp/erp-process") +@RequestMapping("/base/erp-process") @Validated public class ErpProcessController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProcessDetailController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProcessDetailController.java index ba78aab..451343b 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProcessDetailController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProcessDetailController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP工艺路线明细") @RestController -@RequestMapping("/erp/erp-process-detail") +@RequestMapping("/base/erp-process-detail") @Validated public class ErpProcessDetailController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveOrderController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveOrderController.java index 502fc5e..e807d36 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveOrderController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveOrderController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP生产订单") @RestController -@RequestMapping("/erp/erp-productive-order") +@RequestMapping("/base/erp-productive-order") @Validated public class ErpProductiveOrderController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveVersionController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveVersionController.java index aaee9a6..8add346 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveVersionController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveVersionController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP生产版本") @RestController -@RequestMapping("/erp/erp-productive-version") +@RequestMapping("/base/erp-productive-version") @Validated public class ErpProductiveVersionController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpPurchaseOrganizationController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpPurchaseOrganizationController.java index 525c2be..ea30d65 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpPurchaseOrganizationController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpPurchaseOrganizationController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP采购组织") @RestController -@RequestMapping("/erp/erp-purchase-organization") +@RequestMapping("/base/erp-purchase-organization") @Validated public class ErpPurchaseOrganizationController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpSalesOrganizationController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpSalesOrganizationController.java index 1fa1bc0..53b10a1 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpSalesOrganizationController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpSalesOrganizationController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP销售组织") @RestController -@RequestMapping("/erp/erp-sales-organization") +@RequestMapping("/base/erp-sales-organization") @Validated public class ErpSalesOrganizationController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpWarehouseController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpWarehouseController.java index 0759d1b..52ea813 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpWarehouseController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpWarehouseController.java @@ -30,7 +30,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - ERP库位") @RestController -@RequestMapping("/erp/erp-warehouse") +@RequestMapping("/base/erp-warehouse") @Validated public class ErpWarehouseController { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomDetailServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomDetailServiceImpl.java index ccb4961..c5ef5f3 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomDetailServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomDetailServiceImpl.java @@ -1,6 +1,8 @@ package com.zt.plat.module.erp.service.erp; import cn.hutool.core.collection.CollUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; @@ -9,6 +11,7 @@ import com.zt.plat.module.erp.common.enums.OftenEnum; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpBomDetailPageReqVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpBomDetailRespVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpBomDetailSaveReqVO; +import com.zt.plat.module.erp.dal.dataobject.erp.ErpAssetDO; import com.zt.plat.module.erp.dal.dataobject.erp.ErpBomDO; import com.zt.plat.module.erp.dal.dataobject.erp.ErpBomDetailDO; import com.zt.plat.module.erp.dal.mysql.erp.ErpBomDetailMapper; @@ -16,10 +19,12 @@ import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.module.erp.enums.ErrorCodeConstants.ERP_BOM_DETAIL_NOT_EXISTS; @@ -97,25 +102,83 @@ public class ErpBomDetailServiceImpl implements ErpBomDetailService { } @Override - public void saveOrUpdateErpBomDetail(List updateReqVO) { - String key = "erpMap" + OftenEnum.FuncnrEnum.BOM清单.getFuncnr()+ "Detail"; + public void saveOrUpdateErpBomDetail(List updateReqVOS) { + String key = "erpMap" + OftenEnum.FuncnrEnum.BOM清单.getFuncnr() + "Detail"; + // 1. 处理公司数据,区分新增和更新 + ProcessingResult result = processData(updateReqVOS, key); + + // 2. 批量保存数据 + saveData(result); + } + + private ProcessingResult processData(List updateReqVOS, String key) { if (erpConfig.getRedisCacheMap(key).isEmpty()) { initializeMap(key); } List toUpdate = new ArrayList<>(); List toInsert = new ArrayList<>(); + List dataArrayNumbers = new ArrayList<>(); Map existingNumbers = erpConfig.getRedisCacheMap(key); -// for (ErpBomDetailDO updateReqVO : updateReqVO){ -// String mapKey = updateReqVO.getBomId() + "-" + updateReqVO.getErpBomId(); -// if (existingNumbers.get(mapKey)!=null) { -// -// updateReqVO.setId(existingNumbers.get(mapKey)); -// } -// } + for (ErpBomDetailDO updateReqVO : updateReqVOS) { + String mapKey = updateReqVO.getBomId() + "-" + updateReqVO.getErpBomId(); + if (updateReqVO.getId() == null) { + toInsert.add(updateReqVO); + } else { + toUpdate.add(updateReqVO); + } + dataArrayNumbers.add(mapKey); + } + Map deleteNumbers = new HashMap<>(); + for (Map.Entry entry : existingNumbers.entrySet()) { + if (!dataArrayNumbers.contains(entry.getKey())) { + deleteNumbers.put(entry.getKey(), entry.getValue()); + } + } -// erpBomDetailMapper.saveOrUpdateErpBomDetail(updateReqVO); + return new ProcessingResult(toUpdate, toInsert, deleteNumbers, key); + } + + private void saveData(ProcessingResult result) { + // 批量新增和更新 + if (!result.toInsert.isEmpty()) { + erpBomDetailMapper.insertBatch(result.toInsert); + // 批量查询刚插入数据的id,提升效率 + List insertedRecords = erpBomDetailMapper.selectList( + new LambdaQueryWrapperX() + .in(ErpBomDetailDO::getBomId, result.toInsert.stream().map(ErpBomDetailDO::getBomId).distinct().collect(Collectors.toList())) + .in(ErpBomDetailDO::getErpBomId, result.toInsert.stream().map(ErpBomDetailDO::getErpBomId).distinct().collect(Collectors.toList())) + ); + Map numberIdMap = insertedRecords.stream() + .collect(Collectors.toMap(asset -> asset.getBomId() + "-" + asset.getErpBomId(), ErpBomDetailDO::getId)); + erpConfig.addRedisCacheMap(result.key, numberIdMap); + } + if (!result.toUpdate.isEmpty()) { + erpBomDetailMapper.updateBatch(result.toUpdate); + } + if (!result.deleteNumbers.isEmpty()) { + // 使用流式处理和批处理优化删除逻辑 + List idsToDelete = new ArrayList<>(result.deleteNumbers.values()); + if (!idsToDelete.isEmpty()) { + erpBomDetailMapper.deleteByIds(idsToDelete); + } + erpConfig.deleteRedisCacheMap(result.key, new ArrayList<>(result.deleteNumbers.keySet())); + } + } + + private static class ProcessingResult { + private final List toUpdate; + private final List toInsert; + private final Map deleteNumbers; + private final String key; + + public ProcessingResult(List toUpdate, List toInsert, Map deleteNumbers, String key) { + this.toUpdate = toUpdate; + this.toInsert = toInsert; + this.deleteNumbers = deleteNumbers; + this.key = key; + } } private void initializeMap(String key) { diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomServiceImpl.java index 5355fad..578c913 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomServiceImpl.java @@ -160,6 +160,8 @@ public class ErpBomServiceImpl implements ErpBomService { List allnumbers = new ArrayList<>(); List erpBomDetailDOList = new ArrayList<>(); + Map addnumbers = new HashMap<>(); + List dataArrayNumbers = new ArrayList<>(); for (int i = 0; i < dataArray.size(); i++) { JSONObject dataJson = dataArray.getJSONObject(i); if (dataJson != null) { @@ -179,8 +181,9 @@ public class ErpBomServiceImpl implements ErpBomService { } else { // 为了避免数据重复,先将主表数据插入数据库,再获取主表ID,再插入子表数据 erpBomMapper.insert(DO); - numbers.put(number, DO.getId()); + addnumbers.put(number, DO.getId()); } + dataArrayNumbers.add(number); JSONArray dataJsonItem = dataJson.getJSONArray("ITEM"); if (dataJsonItem != null) { @@ -201,7 +204,15 @@ public class ErpBomServiceImpl implements ErpBomService { } } - return new ProcessingResult(toUpdate, erpBomDetailDOList,key, allnumbers); + // 过滤出numbers中有,但dataArray中KOSTL没有的记录,即为需要删除的数据 + Map deleteNumbers = new HashMap<>(); + for (String number : numbers.keySet()) { + if (!dataArrayNumbers.contains(number)) { + deleteNumbers.put(number, numbers.get(number)); + } + } + + return new ProcessingResult(toUpdate, erpBomDetailDOList, key, allnumbers); } /** From 02f65c4f7425aa15ce02ad4eff29ac01bd802899 Mon Sep 17 00:00:00 2001 From: liss <1780094091@qq.com> Date: Wed, 24 Sep 2025 12:07:45 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/erp/api/dto/ErpSubmitReqDTO.java | 1 - .../module/erp/common/conf/ErpConfig.java | 2 +- .../admin/erp/ErpAssetController.java | 3 +- .../admin/erp/ErpBomController.java | 5 +- .../admin/erp/ErpCompanyController.java | 3 +- .../admin/erp/ErpContractController.java | 3 +- .../admin/erp/ErpCostcenterController.java | 3 +- .../admin/erp/ErpCustomerController.java | 3 +- .../admin/erp/ErpFactoryController.java | 3 +- .../admin/erp/ErpInternalOrderController.java | 3 +- .../admin/erp/ErpMaterialController.java | 3 +- .../admin/erp/ErpProcessController.java | 3 +- .../erp/ErpProductiveOrderController.java | 3 +- .../erp/ErpProductiveVersionController.java | 3 +- .../ErpPurchaseOrganizationController.java | 3 +- .../erp/ErpSalesOrganizationController.java | 3 +- .../admin/erp/ErpWarehouseController.java | 3 +- .../erp/service/erp/ErpBomServiceImpl.java | 104 ++++++++++-------- 18 files changed, 91 insertions(+), 63 deletions(-) diff --git a/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/api/dto/ErpSubmitReqDTO.java b/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/api/dto/ErpSubmitReqDTO.java index ce0cc58..1f8341a 100644 --- a/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/api/dto/ErpSubmitReqDTO.java +++ b/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/api/dto/ErpSubmitReqDTO.java @@ -23,7 +23,6 @@ public class ErpSubmitReqDTO { * "sign": 签名,uuid+srcsys+密码,MD5 32位小写签名,密码另行约定 * "req": {具体参数,参见RFC功能列表} */ - private String srcsys; private String funcnr; private String bskey; private String usrid; diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/common/conf/ErpConfig.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/common/conf/ErpConfig.java index 69dc671..487f5ed 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/common/conf/ErpConfig.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/common/conf/ErpConfig.java @@ -93,7 +93,7 @@ public ResponseEntity pushDataToErp(ErpSubmitReqDTO reqDTO) { JSONObject requestBody = new JSONObject(); requestBody.put("uuid", UUID.randomUUID().toString()); requestBody.put("sapsys", sapsys); - requestBody.put("srcsys", reqDTO.getSrcsys()); + requestBody.put("srcsys", "DSC"); requestBody.put("funcnr", reqDTO.getFuncnr()); requestBody.put("bskey", reqDTO.getBskey()); requestBody.put("usrid", reqDTO.getUsrid()); diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpAssetController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpAssetController.java index ca3d485..098191d 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpAssetController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpAssetController.java @@ -104,7 +104,8 @@ public class ErpAssetController { @PostMapping("/getErpAssetTask") @Operation(summary = "定时获得erp更新资产卡片") @PreAuthorize("@ss.hasPermission('sply:erp-asset:create')") - public void getErpCompanyTask() { + public CommonResult getErpCompanyTask() { erpAssetService.callErpRfcInterface(); + return success(true); } } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpBomController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpBomController.java index c609995..0ebb7bd 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpBomController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpBomController.java @@ -104,8 +104,9 @@ public class ErpBomController { @PostMapping("/getErpBomTask") @Operation(summary = "定时获得erp更新物料清单(BOM)") @PreAuthorize("@ss.hasPermission('sply:erp-bom:create')") - public void getErpBomTask() { - erpBomService.callErpRfcInterface(); + public CommonResult getErpBomTask() { + erpBomService.callErpRfcInterface(); + return CommonResult.success(true); } @PostMapping("/submitDataToErp") diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCompanyController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCompanyController.java index 1e27352..de38264 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCompanyController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCompanyController.java @@ -104,8 +104,9 @@ public class ErpCompanyController { @PostMapping("/getErpCompanyTask") @Operation(summary = "定时获得erp更新公司") @PreAuthorize("@ss.hasPermission('sply:erp-company:create')") - public void getErpCompanyTask() { + public CommonResult getErpCompanyTask() { erpCompanyService.callErpRfcInterface(); + return success(true); } diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpContractController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpContractController.java index c901871..3f1e326 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpContractController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpContractController.java @@ -104,7 +104,8 @@ public class ErpContractController { @PostMapping("/getErpContractTask") @Operation(summary = "定时获得erp更新合同") @PreAuthorize("@ss.hasPermission('sply:erp-contract:create')") - public void getErpContractTask() { + public CommonResult getErpContractTask() { erpContractService.callErpRfcInterface(); + return success(true); } } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCostcenterController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCostcenterController.java index e29bf1f..dbc7582 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCostcenterController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCostcenterController.java @@ -104,8 +104,9 @@ public class ErpCostcenterController { @PostMapping("/getErpCostcenterTask") @Operation(summary = "定时获得erp更新成本中心") @PreAuthorize("@ss.hasPermission('sply:erp-costcenter:create')") - public void getErpCostcenterTask() { + public CommonResult getErpCostcenterTask() { erpCostcenterService.callErpRfcInterface(); + return success(true); } diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCustomerController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCustomerController.java index 90c1ea0..ccef6de 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCustomerController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpCustomerController.java @@ -104,7 +104,8 @@ public class ErpCustomerController { @PostMapping("/getErpCustomerTask") @Operation(summary = "定时获得erp更新客商主数据") @PreAuthorize("@ss.hasPermission('sply:erp-customer:create')") - public void getErpCustomerTask() { + public CommonResult getErpCustomerTask() { erpCustomerService.callErpRfcInterface(); + return success(true); } } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpFactoryController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpFactoryController.java index 21847ef..529fd95 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpFactoryController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpFactoryController.java @@ -104,8 +104,9 @@ public class ErpFactoryController { @PostMapping("/getErpFactoryTask") @Operation(summary = "定时获得erp工厂数据") @PreAuthorize("@ss.hasPermission('sply:erp-factory:create')") - public void getErpFactoryTask() { + public CommonResult getErpFactoryTask() { erpFactoryService.callErpRfcInterface(); + return success(true); } } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpInternalOrderController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpInternalOrderController.java index 4f745fd..b23b6c6 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpInternalOrderController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpInternalOrderController.java @@ -104,8 +104,9 @@ public class ErpInternalOrderController { @PostMapping("/getErpInternalOrderTask") @Operation(summary = "定时获得erp更新内部订单数据") @PreAuthorize("@ss.hasPermission('sply:erp-internal-order:create')") - public void getErpInternalOrderTask() { + public CommonResult getErpInternalOrderTask() { erpInternalOrderService.callErpRfcInterface(); + return success(true); } } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java index 8fc47fb..f9d997f 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java @@ -104,8 +104,9 @@ public class ErpMaterialController { @PostMapping("/getErpMaterialTask") @Operation(summary = "定时获得erp更新物料") @PreAuthorize("@ss.hasPermission('sply:erp-material:create')") - public void getErpMaterialTask() { + public CommonResult getErpMaterialTask() { erpMaterialService.callErpRfcInterface(); + return success(true); } } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProcessController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProcessController.java index 17cd2aa..abec5f1 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProcessController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProcessController.java @@ -104,8 +104,9 @@ public class ErpProcessController { @PostMapping("/getErpProcessTask") @Operation(summary = "定时获得erp更新工艺路线") @PreAuthorize("@ss.hasPermission('sply:erp-process:create')") - public void getErpProcessTask() { + public CommonResult getErpProcessTask() { erpProcessService.callErpRfcInterface(); + return success(true); } } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveOrderController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveOrderController.java index e807d36..2918c1b 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveOrderController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveOrderController.java @@ -104,8 +104,9 @@ public class ErpProductiveOrderController { @PostMapping("/getErpProductiveOrderTask") @Operation(summary = "定时获得erp更新生产订单") @PreAuthorize("@ss.hasPermission('sply:erp-productive-order:create')") - public void getErpProductiveOrderTask() { + public CommonResult getErpProductiveOrderTask() { erpProductiveOrderService.callErpRfcInterface(); + return success(true); } } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveVersionController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveVersionController.java index 8add346..0ef7d5b 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveVersionController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpProductiveVersionController.java @@ -104,8 +104,9 @@ public class ErpProductiveVersionController { @PostMapping("/getErpProductiveVersionTask") @Operation(summary = "定时获得erp更新生产版本") @PreAuthorize("@ss.hasPermission('sply:erp-productive-version:create')") - public void getErpProductiveVersionTask() { + public CommonResult getErpProductiveVersionTask() { erpProductiveVersionService.callErpRfcInterface(); + return success(true); } } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpPurchaseOrganizationController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpPurchaseOrganizationController.java index ea30d65..f7d7d2e 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpPurchaseOrganizationController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpPurchaseOrganizationController.java @@ -104,8 +104,9 @@ public class ErpPurchaseOrganizationController { @PostMapping("/getErpPurchaseOrganizationTask") @Operation(summary = "定时获得erp更新采购组织") @PreAuthorize("@ss.hasPermission('sply:erp-purchase-organization:create')") - public void getErpPurchaseOrganizationTask() { + public CommonResult getErpPurchaseOrganizationTask() { erpPurchaseOrganizationService.callErpRfcInterface(); + return success(true); } } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpSalesOrganizationController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpSalesOrganizationController.java index 53b10a1..e06afad 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpSalesOrganizationController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpSalesOrganizationController.java @@ -104,8 +104,9 @@ public class ErpSalesOrganizationController { @PostMapping("/getErpSalesOrganizationTask") @Operation(summary = "定时获得erp更新销售组织") @PreAuthorize("@ss.hasPermission('sply:erp-sales-organization:create')") - public void getErpSalesOrganizationTask() { + public CommonResult getErpSalesOrganizationTask() { erpSalesOrganizationService.callErpRfcInterface(); + return success(true); } } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpWarehouseController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpWarehouseController.java index 52ea813..712da49 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpWarehouseController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpWarehouseController.java @@ -104,8 +104,9 @@ public class ErpWarehouseController { @PostMapping("/getErpWarehouseTask") @Operation(summary = "定时获得erp更新库位") @PreAuthorize("@ss.hasPermission('sply:erp-warehouse:create')") - public void getErpWarehouseTask() { + public CommonResult getErpWarehouseTask() { erpWarehouseService.callErpRfcInterface(); + return success(true); } } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomServiceImpl.java index 578c913..ee0ccce 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpBomServiceImpl.java @@ -126,7 +126,7 @@ public class ErpBomServiceImpl implements ErpBomService { String factKey = "erpMap" + OftenEnum.FuncnrEnum.工厂信息.getFuncnr(); Map redisCache = erpConfig.getRedisCacheMap(factKey); if (CollUtil.isEmpty(redisCache)) { - return; + throw exception(ERP_BOM_NOT_EXISTS); } for (String factoryNumber : redisCache.keySet()) { req.put("WERKS", factoryNumber); @@ -158,74 +158,86 @@ public class ErpBomServiceImpl implements ErpBomService { Map numbers = erpConfig.getRedisCacheMap(key); List toUpdate = new ArrayList<>(); - List allnumbers = new ArrayList<>(); List erpBomDetailDOList = new ArrayList<>(); Map addnumbers = new HashMap<>(); List dataArrayNumbers = new ArrayList<>(); + for (int i = 0; i < dataArray.size(); i++) { JSONObject dataJson = dataArray.getJSONObject(i); if (dataJson != null) { - ErpBomDO DO = new ErpBomDO(); - DO.setFactoryNumber(dataJson.getString("WERKS")); - DO.setUpMaterial(dataJson.getString("MATNR")); - DO.setUseItem(dataJson.getString("STLAL")); -// DO.set(dataJson.getString("STLAN"));数据库无这个字段 - DO.setMaterialDescription(dataJson.getString("MAKTX")); - DO.setQuantity(dataJson.getBigDecimal("BMENG")); - DO.setUnit(dataJson.getString("BMEIN")); - String number = DO.getFactoryNumber() + "-" + DO.getUpMaterial() + "-" + DO.getUseItem(); - if (numbers.get(number) != null) { - // 更新 - DO.setId(numbers.get(number)); - toUpdate.add(DO); - } else { - // 为了避免数据重复,先将主表数据插入数据库,再获取主表ID,再插入子表数据 - erpBomMapper.insert(DO); - addnumbers.put(number, DO.getId()); - } + ErpBomDO bomDO = new ErpBomDO(); + bomDO.setFactoryNumber(dataJson.getString("WERKS")); + bomDO.setUpMaterial(dataJson.getString("MATNR")); + bomDO.setUseItem(dataJson.getString("STLAL")); + bomDO.setMaterialDescription(dataJson.getString("MAKTX")); + bomDO.setQuantity(dataJson.getBigDecimal("BMENG")); + bomDO.setUnit(dataJson.getString("BMEIN")); + + String number = bomDO.getFactoryNumber() + "-" + bomDO.getUpMaterial() + "-" + bomDO.getUseItem(); dataArrayNumbers.add(number); + + if (numbers.containsKey(number)) { + // 更新 + bomDO.setId(numbers.get(number)); + toUpdate.add(bomDO); + } else { + // 新增 + erpBomMapper.insert(bomDO); + addnumbers.put(number, bomDO.getId()); + } JSONArray dataJsonItem = dataJson.getJSONArray("ITEM"); - if (dataJsonItem != null) { + if (dataJsonItem != null && !dataJsonItem.isEmpty()) { for (int j = 0; j < dataJsonItem.size(); j++) { - JSONObject dataJsonItemJson = dataJsonItem.getJSONObject(j); + JSONObject itemJson = dataJsonItem.getJSONObject(j); ErpBomDetailDO detailDO = new ErpBomDetailDO(); - detailDO.setBomId(String.valueOf(DO.getId())); - detailDO.setErpBomId(dataJsonItemJson.getString("STVKN")); - detailDO.setChildMaterialNumber(dataJsonItemJson.getString("IDNRK")); - detailDO.setChildMaterialDescription(dataJsonItemJson.getString("OJTXP")); - detailDO.setCategory(dataJsonItemJson.getString("POSTP")); - detailDO.setQuantity(dataJsonItemJson.getBigDecimal("MENGE")); - detailDO.setUnit(dataJsonItemJson.getString("MEINS")); - detailDO.setIdentificationType(dataJsonItemJson.getString("WLCAT")); + detailDO.setBomId(String.valueOf(bomDO.getId())); + detailDO.setErpBomId(itemJson.getString("STVKN")); + detailDO.setChildMaterialNumber(itemJson.getString("IDNRK")); + detailDO.setChildMaterialDescription(itemJson.getString("OJTXP")); + detailDO.setCategory(itemJson.getString("POSTP")); + detailDO.setQuantity(itemJson.getBigDecimal("MENGE")); + detailDO.setUnit(itemJson.getString("MEINS")); + detailDO.setIdentificationType(itemJson.getString("WLCAT")); erpBomDetailDOList.add(detailDO); } } } } - // 过滤出numbers中有,但dataArray中KOSTL没有的记录,即为需要删除的数据 - Map deleteNumbers = new HashMap<>(); + // 识别需要删除的数据 + List deleteNumbers = new ArrayList<>(); for (String number : numbers.keySet()) { if (!dataArrayNumbers.contains(number)) { - deleteNumbers.put(number, numbers.get(number)); + deleteNumbers.add(number); } } - return new ProcessingResult(toUpdate, erpBomDetailDOList, key, allnumbers); + return new ProcessingResult(toUpdate, key, addnumbers, deleteNumbers, erpBomDetailDOList); } /** * 批量保存数据 */ private void saveData(ProcessingResult result) { - // 批量新增和更新 + // 批量更新 if (!result.toUpdate.isEmpty()) { erpBomMapper.updateBatch(result.toUpdate); } + + // 保存或更新BOM详情 if (!result.erpBomDetailDOList.isEmpty()) { bomDetailService.saveOrUpdateErpBomDetail(result.erpBomDetailDOList); } + + // 更新Redis缓存 + if (!result.addnumbers.isEmpty()) { + erpConfig.addRedisCacheMap(result.key, result.addnumbers); + } + + if (!result.deleteNumbers.isEmpty()) { + erpConfig.deleteRedisCacheMap(result.key, result.deleteNumbers); + } } /** @@ -233,24 +245,27 @@ public class ErpBomServiceImpl implements ErpBomService { */ private static class ProcessingResult { private final List toUpdate; - private final List erpBomDetailDOList; private final String key; - private final List allnumbers; + private final Map addnumbers; + private final List deleteNumbers; + private final List erpBomDetailDOList; - public ProcessingResult(List toUpdate, List erpBomDetailDOList, String key, List allnumbers) { + public ProcessingResult(List toUpdate, String key, Map addnumbers, + List deleteNumbers, List erpBomDetailDOList) { this.toUpdate = toUpdate; - this.erpBomDetailDOList = erpBomDetailDOList; this.key = key; - this.allnumbers = allnumbers; + this.addnumbers = addnumbers; + this.deleteNumbers = deleteNumbers; + this.erpBomDetailDOList = erpBomDetailDOList; } } private void initializeMap(String key) { - List assets = erpBomMapper.selectList(new LambdaQueryWrapperX()); + List bomList = erpBomMapper.selectList(new LambdaQueryWrapperX()); Map existingNumbers = new HashMap<>(); - for (ErpBomDO asset : assets) { - String mapKey = asset.getFactoryNumber() + "-" + asset.getUpMaterial() + "-" + asset.getUseItem(); - existingNumbers.put(mapKey, asset.getId()); + for (ErpBomDO bom : bomList) { + String mapKey = bom.getFactoryNumber() + "-" + bom.getUpMaterial() + "-" + bom.getUseItem(); + existingNumbers.put(mapKey, bom.getId()); } erpConfig.addRedisCacheMap(key, existingNumbers); } @@ -259,7 +274,6 @@ public class ErpBomServiceImpl implements ErpBomService { @Override public void submitDataToErp() { ErpSubmitReqDTO reqDTO = new ErpSubmitReqDTO(); - reqDTO.setSrcsys("MOM"); reqDTO.setFuncnr("061"); reqDTO.setBskey("POTEST011"); reqDTO.setUsrid("cuibin"); From 5937f38e831d9dfd5a0bf556f97d082bd225a63c Mon Sep 17 00:00:00 2001 From: guojunyun Date: Wed, 24 Sep 2025 14:21:29 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=90=88=E5=90=8C=E7=BC=96=E5=88=B6?= =?UTF-8?q?=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zt-module-contract-order-server/pom.xml | 6 + .../ContractCoefficientSaveReqVO.java | 53 ++++++++ .../preparaton/ContractDeductSaveReqVO.java | 54 ++++++++ .../preparaton/ContractDetailSaveReqVO.java | 20 +-- .../preparaton/ContractFormulaSaveReqVO.java | 57 ++++++++ .../vo/preparaton/ContractGradeSaveReqVO.java | 63 +++++++++ .../vo/preparaton/ContractNotSaveReqVO.java | 48 +++++++ .../vo/preparaton/ContractPlanSaveReqVO.java | 20 ++- .../vo/preparaton/ContractPriceSaveReqVO.java | 53 ++++++++ .../vo/preparaton/ContractRespVO.java | 4 +- .../vo/preparaton/ContractSaveReqVO.java | 93 ++++++------- .../contract/ContractCoefficientDO.java | 92 +++++++++++++ .../dataobject/contract/ContractDeductDO.java | 92 +++++++++++++ .../contract/ContractFormulaDO.java | 80 +++++++++++ .../dataobject/contract/ContractGradeDO.java | 112 ++++++++++++++++ .../dataobject/contract/ContractMainDO.java | 21 ++- .../dataobject/contract/ContractNotDO.java | 82 ++++++++++++ .../dataobject/contract/ContractPriceDO.java | 98 ++++++++++++++ .../contract/ContractCoefficientMapper.java | 15 +++ .../mysql/contract/ContractDeductMapper.java | 15 +++ .../mysql/contract/ContractFormulaMapper.java | 15 +++ .../mysql/contract/ContractGradeMapper.java | 14 ++ .../dal/mysql/contract/ContractNotMapper.java | 14 ++ .../mysql/contract/ContractPlanMapper.java | 14 ++ .../mysql/contract/ContractPriceMapper.java | 14 ++ .../service/contract/ContractServiceImpl.java | 124 +++++++++++++++++- 26 files changed, 1187 insertions(+), 86 deletions(-) create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractCoefficientSaveReqVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractDeductSaveReqVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractFormulaSaveReqVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractGradeSaveReqVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractNotSaveReqVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractPriceSaveReqVO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractCoefficientDO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractDeductDO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractFormulaDO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractGradeDO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractNotDO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractPriceDO.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractCoefficientMapper.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractDeductMapper.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractFormulaMapper.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractGradeMapper.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractNotMapper.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractPlanMapper.java create mode 100644 zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractPriceMapper.java diff --git a/zt-module-contract-order/zt-module-contract-order-server/pom.xml b/zt-module-contract-order/zt-module-contract-order-server/pom.xml index 90fd571..198b8be 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/pom.xml +++ b/zt-module-contract-order/zt-module-contract-order-server/pom.xml @@ -126,6 +126,12 @@ zt-spring-boot-starter-biz-business ${revision} + + com.zt.plat + zt-module-base-server + 3.0.35 + compile + diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractCoefficientSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractCoefficientSaveReqVO.java new file mode 100644 index 0000000..994701e --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractCoefficientSaveReqVO.java @@ -0,0 +1,53 @@ +package com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 基础系数配置新增/修改 Request VO") +@Data +public class ContractCoefficientSaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "31657") + private Long id; + + @Schema(description = "配置主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "6534") + @NotNull(message = "配置主键不能为空") + private Long parameterId; + + @Schema(description = "条款主键", example = "29652") + private Long formulaId; + + @Schema(description = "金属元素编码") + private String elementNumber; + + @Schema(description = "金属元素缩写") + private String elementAbbreviation; + + @Schema(description = "金属元素名称", example = "芋艿") + private String elementName; + + @Schema(description = "系数值") + private String settlementCoefficient; + + @Schema(description = "系数上限") + private BigDecimal coefficientUp; + + @Schema(description = "系数下限") + private BigDecimal coefficientDown; + + @Schema(description = "是否包含上限") + private String isInUp; + + @Schema(description = "是否包含下限") + private String isInDown; + + @Schema(description = "是否省内", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "是否省内不能为空") + private String inState; + + @Schema(description = "类型", example = "1") + private String type; +} \ 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/contract/vo/preparaton/ContractDeductSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractDeductSaveReqVO.java new file mode 100644 index 0000000..3f957e4 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractDeductSaveReqVO.java @@ -0,0 +1,54 @@ +package com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 调整价配置新增/修改 Request VO") +@Data +public class ContractDeductSaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "25312") + private Long id; + + @Schema(description = "配置主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "21114") + @NotNull(message = "配置主键不能为空") + private Long parameterId; + + @Schema(description = "条款主键", example = "29909") + private Long formulaId; + + @Schema(description = "物料编码;推送ERP") + private String materialNumber; + + @Schema(description = "物料名称", example = "张三") + private String materialName; + + @Schema(description = "上限", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "上限不能为空") + private BigDecimal gradeUp; + + @Schema(description = "下限") + private BigDecimal gradeDown; + + @Schema(description = "是否包含上限") + private String isInUp; + + @Schema(description = "是否包含下限") + private String isInDown; + + @Schema(description = "方式") + private String way; + + @Schema(description = "类型", example = "1") + private String type; + + @Schema(description = "是否省内", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "是否省内不能为空") + private String inState; + + @Schema(description = "调整价") + private BigDecimal gradeAmount; +} \ 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/contract/vo/preparaton/ContractDetailSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractDetailSaveReqVO.java index d1c49ab..3369881 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractDetailSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractDetailSaveReqVO.java @@ -10,36 +10,36 @@ import java.util.List; @Data public class ContractDetailSaveReqVO { - @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "32609") + @Schema(description = "主键") private Long id; - @Schema(description = "合同主信息主键", example = "13595") - private Long contractMainId; - - @Schema(description = "物料名称", example = "张三") + @Schema(description = "物料名称", example = "物料名称") private String materialName; - @Schema(description = "物料编码") + @Schema(description = "物料编码", example = "物料编码") private String materialNumber; @Schema(description = "数量") private BigDecimal quantity; - @Schema(description = "计量单位") + @Schema(description = "计量单位", example = "吨") private String unit; @Schema(description = "含税单价", example = "28579") private BigDecimal inTaxUnitPrice; - @Schema(description = "金属元素缩写") + @Schema(description = "金属元素缩写", example = "金属元素缩写") private String elementAbbreviation; - @Schema(description = "金属元素名称", example = "赵六") + @Schema(description = "金属元素名称", example = "金属元素名称") private String elementName; - @Schema(description = "金属元素编码") + @Schema(description = "金属元素编码", example = "金属元素编码") private String elementNumber; // 交货计划 private List plans; + + // 价款结算条款 + private List formulas; } \ 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/contract/vo/preparaton/ContractFormulaSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractFormulaSaveReqVO.java new file mode 100644 index 0000000..054453e --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractFormulaSaveReqVO.java @@ -0,0 +1,57 @@ +package com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.util.List; + +@Schema(description = "管理后台 - 价款结算条款新增/修改 Request VO") +@Data +public class ContractFormulaSaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "28539") + private Long id; + + @Schema(description = "合同明细主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "8181") + @NotNull(message = "合同明细主键不能为空") + private Long contractDetailId; + + @Schema(description = "公式类型;单价/总价/水扣款/加工费", example = "UNIT_PRICE") + private String formulaType; + + @Schema(description = "公式") + private String formulaCalculate; + + @Schema(description = "编码公式") + private String numberFormula; + + @Schema(description = "物料名称", example = "物料名称") + private String materialName; + + @Schema(description = "物料编码") + private String materialNumber; + + @Schema(description = "计算小数位") + private Long decimal; + + @Schema(description = "金属元素编码") + private String elementNumber; + + @Schema(description = "金属元素缩写") + private String elementAbbreviation; + + @Schema(description = "金属元素名称", example = "金属元素名称") + private String elementName; + + // 基础系数配置 + private List coefficients; + // 品位等级价配置 + private List grades; + // 调整价配置 + private List deducts; + // 市场价配置 + private List prices; + // 品位不计价配置 + private List nots; +} \ 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/contract/vo/preparaton/ContractGradeSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractGradeSaveReqVO.java new file mode 100644 index 0000000..ef2daa3 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractGradeSaveReqVO.java @@ -0,0 +1,63 @@ +package com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 品位等级价配置新增/修改 Request VO") +@Data +public class ContractGradeSaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "15414") + private Long id; + + @Schema(description = "配置主键", example = "16734") + private Long parameterId; + + @Schema(description = "条款主键", example = "15344") + private Long formulaId; + + @Schema(description = "金属元素编码") + private String elementNumber; + + @Schema(description = "金属元素缩写") + private String elementAbbreviation; + + @Schema(description = "金属元素名称", example = "芋艿") + private String elementName; + + @Schema(description = "品位单位") + private String gradeUnit; + + @Schema(description = "品位上限") + private BigDecimal gradeUp; + + @Schema(description = "品位下限") + private BigDecimal gradeDown; + + @Schema(description = "是否包含上限;包含则是大于等于,不包含则是大于") + private String isInUp; + + @Schema(description = "是否包含下限;包含则是小于等于,不包含则是小于") + private String isInDown; + + @Schema(description = "默认计价品位;计价方式为加时,默认为为下限,计价方式为减时,默认为为上限,可手动填写") + private BigDecimal gradeDefault; + + @Schema(description = "系数;计价类型为阶梯价使用,标识没上升多少系数进行加款还是减款") + private BigDecimal settlementCoefficient; + + @Schema(description = "不足系数值按比例计算") + private String useCoefficient; + + @Schema(description = "计价类型", example = "2") + private String priceType; + + @Schema(description = "是否省内", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "是否省内不能为空") + private String inState; + + @Schema(description = "等级单价", example = "26237") + private BigDecimal unitPrice; +} \ 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/contract/vo/preparaton/ContractNotSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractNotSaveReqVO.java new file mode 100644 index 0000000..024bea7 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractNotSaveReqVO.java @@ -0,0 +1,48 @@ +package com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 品位不计价配置新增/修改 Request VO") +@Data +public class ContractNotSaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "21132") + private Long id; + + @Schema(description = "配置主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "3781") + @NotNull(message = "配置主键不能为空") + private Long parameterId; + + @Schema(description = "条款主键", example = "5722") + private Long formulaId; + + @Schema(description = "金属元素编码") + private String elementNumber; + + @Schema(description = "金属元素缩写") + private String elementAbbreviation; + + @Schema(description = "金属元素名称", example = "张三") + private String elementName; + + @Schema(description = "上限", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "上限不能为空") + private BigDecimal gradeUp; + + @Schema(description = "下限") + private BigDecimal gradeDown; + + @Schema(description = "是否包含上限") + private String isInUp; + + @Schema(description = "是否包含下限") + private String isInDown; + + @Schema(description = "是否省内", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "是否省内不能为空") + private String inState; +} \ 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/contract/vo/preparaton/ContractPlanSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractPlanSaveReqVO.java index 971b717..15f214c 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractPlanSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractPlanSaveReqVO.java @@ -4,30 +4,26 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; -import java.time.LocalDateTime; @Schema(description = "管理后台 - 交货计划条款新增/修改 Request VO") @Data public class ContractPlanSaveReqVO { - @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "27474") + @Schema(description = "主键") private Long id; - @Schema(description = "合同明细主键", example = "32763") - private Long contractDetailId; - - @Schema(description = "交货年份", requiredMode = Schema.RequiredMode.REQUIRED) + @Schema(description = "交货年份", example = "2025") private Long contractDeliveryYear; - @Schema(description = "交货月份") + @Schema(description = "交货月份", example = "9") private Long contractPlanDeliveryMonth; - @Schema(description = "计划交货数量", requiredMode = Schema.RequiredMode.REQUIRED) + @Schema(description = "计划交货数量") private BigDecimal contractPlanDeliveryQuantity; - @Schema(description = "交货开始日期", requiredMode = Schema.RequiredMode.REQUIRED) - private LocalDateTime contractDeliveryStartDate; + @Schema(description = "交货开始日期") + private String contractDeliveryStartDate; - @Schema(description = "交货结束日期", requiredMode = Schema.RequiredMode.REQUIRED) - private LocalDateTime contractDeliveryEndDate; + @Schema(description = "交货结束日期") + private String contractDeliveryEndDate; } \ 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/contract/vo/preparaton/ContractPriceSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractPriceSaveReqVO.java new file mode 100644 index 0000000..3d30958 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractPriceSaveReqVO.java @@ -0,0 +1,53 @@ +package com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 市场价配置新增/修改 Request VO") +@Data +public class ContractPriceSaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "13654") + private Long id; + + @Schema(description = "配置主键", example = "1590") + private Long parameterId; + + @Schema(description = "条款主键", example = "24677") + private Long formulaId; + + @Schema(description = "市场价") + private BigDecimal value; + + @Schema(description = "计算方式;均价/高位价/地位价") + private String calculateWay; + + @Schema(description = "数据来源网价代码;数据字典") + private String dataOrigin; + + @Schema(description = "计价开始日期") + private LocalDateTime calculateStartDate; + + @Schema(description = "计价截止日期") + private LocalDateTime calculateEndDate; + + @Schema(description = "包含开始日期") + private String inStartDate; + + @Schema(description = "包含结束日期") + private String inEndDate; + + @Schema(description = "价格品种元素的明细分类") + private String priceGrade; + + @Schema(description = "品种分类", example = "1") + private String gradeType; + + @Schema(description = "取价方式;区间价/固定价", example = "2") + private String averageType; + + @Schema(description = "网价小数位") + private BigDecimal decimal; +} \ 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/contract/vo/preparaton/ContractRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractRespVO.java index 3522b9b..6a88340 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractRespVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractRespVO.java @@ -167,7 +167,7 @@ public class ContractRespVO { @Schema(description = "代理方;与ERP(ZLIFNR)对应,拓展信息") @ExcelProperty("代理方;与ERP(ZLIFNR)对应,拓展信息") - private String zlifnr; + private String agent; @Schema(description = "类别;与ERP(HTLB)对应,拓展信息") @ExcelProperty("类别;与ERP(HTLB)对应,拓展信息") @@ -195,7 +195,7 @@ public class ContractRespVO { @Schema(description = "境内/境外;与ERP(JNJW)对应,拓展信息") @ExcelProperty("境内/境外;与ERP(JNJW)对应,拓展信息") - private String jnjw; + private String isDomestic; @Schema(description = "建筑服务发生地;与ERP(JZFWFSD)对应,拓展信息,销售合同,且类型为SAP02COSR必填") @ExcelProperty("建筑服务发生地;与ERP(JZFWFSD)对应,拓展信息,销售合同,且类型为SAP02COSR必填") diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractSaveReqVO.java index 52dd360..5c94cd9 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractSaveReqVO.java @@ -1,21 +1,16 @@ package com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton; import com.alibaba.excel.annotation.ExcelProperty; -import com.fasterxml.jackson.annotation.JsonFormat; +import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceDataSaveReqVO; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; -import java.time.LocalDateTime; import java.util.List; -import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; -import static com.zt.plat.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT; - @Schema(description = "管理后台 - 合同信息新增/修改 Request VO") @Data public class ContractSaveReqVO { @@ -30,45 +25,45 @@ public class ContractSaveReqVO { private Integer step; // 合同基本信息 - @Schema(description = "甲方公司编号;如果是采购合同,查询组织机构自动带出,且与ERP(HTQDZTBH)对应,如果是销售合同,手动选择,且与ERP(WLDWBH)对应。") + @Schema(description = "甲方公司编号;如果是采购合同,查询组织机构自动带出,且与ERP(HTQDZTBH)对应,如果是销售合同,手动选择,且与ERP(WLDWBH)对应。", example = "甲方公司编号") @ExcelProperty("甲方公司编号;如果是采购合同,查询组织机构自动带出,且与ERP(HTQDZTBH)对应,如果是销售合同,手动选择,且与ERP(WLDWBH)对应。") private String purchaseCompanyNumber; - @Schema(description = "甲方公司名称", example = "王五") + @Schema(description = "甲方公司名称", example = "甲方公司名称") @ExcelProperty("甲方公司名称") private String purchaseCompanyName; - @Schema(description = "甲方地址") + @Schema(description = "甲方地址", example = "甲方地址") @ExcelProperty("甲方地址") private String purchaseAddress; - @Schema(description = "甲方法定代表人") + @Schema(description = "甲方法定代表人", example = "甲方法定代表人") @ExcelProperty("甲方法定代表人") private String purchaseLeader; - @Schema(description = "乙方公司编号;如果是销售合同,查询组织机构自动带出,且与ERP(HTQDZTBH)对应,如果是采购合同,手动选择,且与ERP(WLDWBH)对应。") + @Schema(description = "乙方公司编号;如果是销售合同,查询组织机构自动带出,且与ERP(HTQDZTBH)对应,如果是采购合同,手动选择,且与ERP(WLDWBH)对应。", example = "乙方公司编号") @ExcelProperty("乙方公司编号;如果是销售合同,查询组织机构自动带出,且与ERP(HTQDZTBH)对应,如果是采购合同,手动选择,且与ERP(WLDWBH)对应。") private String salesCompanyNumber; - @Schema(description = "乙方公司名称", example = "王五") + @Schema(description = "乙方公司名称", example = "乙方公司名称") @ExcelProperty("乙方公司名称") private String salesCompanyName; - @Schema(description = "乙方地址") + @Schema(description = "乙方地址", example = "乙方地址") @ExcelProperty("乙方地址") private String salesAddress; - @Schema(description = "乙方企业负责人") + @Schema(description = "乙方企业负责人", example = "乙方企业负责人") @ExcelProperty("乙方企业负责人") private String salesPurchaseLeader; @NotBlank(message = "合同名称不能为空") @Size(max = 90, message = "合同名称长度不能超过90个字符") - @Schema(description = "合同名称;与ERP(HTMC)对应,校验唯一", example = "芋艿") + @Schema(description = "合同名称;与ERP(HTMC)对应,校验唯一", example = "合同名称") @ExcelProperty("合同名称;与ERP(HTMC)对应,校验唯一") private String contractName; - @Schema(description = "合同编号;与ERP(HTBH)对应,校验唯一") + @Schema(description = "合同编号;与ERP(HTBH)对应,校验唯一", example = "合同编号") @ExcelProperty("合同编号;与ERP(HTBH)对应,校验唯一") private String contractPaperNumber; @@ -77,34 +72,28 @@ public class ContractSaveReqVO { @ExcelProperty("合同类型") private String contractType; - @Schema(description = "收支性质;与ERP(SZXZ)对应") + @Schema(description = "收支性质;与ERP(SZXZ)对应", example = "EXPENSES") @ExcelProperty("收支性质;与ERP(SZXZ)对应") private String direction; - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - @JsonFormat(timezone = TIME_ZONE_DEFAULT, pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @Schema(description = "签署日期;与ERP(HTQDRQ)对应") @ExcelProperty("签署日期;与ERP(HTQDRQ)对应") - private LocalDateTime signDate; + private String signDate; - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - @JsonFormat(timezone = TIME_ZONE_DEFAULT, pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @Schema(description = "开始日期;与ERP(HTQSRQ)对应") @ExcelProperty("开始日期;与ERP(HTQSRQ)对应") - private LocalDateTime startDate; + private String startDate; - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - @JsonFormat(timezone = TIME_ZONE_DEFAULT, pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @Schema(description = "结束日期;与ERP(HTZZRQ)对应") @ExcelProperty("结束日期;与ERP(HTZZRQ)对应") - private LocalDateTime endDate; + private String endDate; - @Schema(description = "签署地") + @Schema(description = "签署地", example = "签署地") @ExcelProperty("签署地") private String signPlace; // 金额信息 - @Schema(description = "币种;与ERP(BZBH)对应") + @Schema(description = "币种;与ERP(BZBH)对应", example = "CNY") @ExcelProperty("币种;与ERP(BZBH)对应") private String currency; @@ -116,7 +105,7 @@ public class ContractSaveReqVO { @ExcelProperty("原币金额;与ERP(HTYBZJE)对应,币种不是人民币时,显示并手动填写,如果是人民币,隐藏且等于本币金额") private BigDecimal cooAmount; - @Schema(description = "是否有履约保证金;为是,则保证金必填。") + @Schema(description = "是否有履约保证金;为是,则保证金必填。", example = "1") @ExcelProperty("是否有履约保证金;为是,则保证金必填。") private String hasDeposit; @@ -128,7 +117,7 @@ public class ContractSaveReqVO { @ExcelProperty("本币履约保证金-变更后;与ERP(LYBZJBGHBWB)对应,拓展信息") private BigDecimal changeBasicAmountDeposit; - @Schema(description = "是否有预付款;与ERP(SFYYFK)对应") + @Schema(description = "是否有预付款;与ERP(SFYYFK)对应", example = "1") @ExcelProperty("是否有预付款;与ERP(SFYYFK)对应") private String hasPrepayment; @@ -140,7 +129,7 @@ public class ContractSaveReqVO { @ExcelProperty("预付款金额;与ERP(YFKJE)对应") private BigDecimal prepaymentAmount; - @Schema(description = "是否有质保金;与ERP(SFHZBJ)对应") + @Schema(description = "是否有质保金;与ERP(SFHZBJ)对应", example = "1") @ExcelProperty("是否有质保金;与ERP(SFHZBJ)对应") private String hasQualityAmount; @@ -152,11 +141,11 @@ public class ContractSaveReqVO { @ExcelProperty("质保金金额;与ERP(BZJJE)对应") private BigDecimal qualityAmount; - @Schema(description = "是否先款后货") + @Schema(description = "是否先款后货", example = "1") @ExcelProperty("是否先款后货") private String hasPayable; - @Schema(description = "备注;与ERP(BZXX)对应") + @Schema(description = "备注;与ERP(BZXX)对应", example = "备注") @ExcelProperty("备注;与ERP(BZXX)对应") private String remark; @@ -180,51 +169,51 @@ public class ContractSaveReqVO { @ExcelProperty("本币履约保证金;与ERP(LYBZJBGQBWB)对应") private BigDecimal basicAmountDeposit; - @Schema(description = "是否框架合同;与ERP(SFKJHT)对应,拓展信息") + @Schema(description = "是否框架合同;与ERP(SFKJHT)对应,拓展信息", example = "1") @ExcelProperty("是否框架合同;与ERP(SFKJHT)对应,拓展信息") private String isFramework; - @Schema(description = "境内/境外;与ERP(JNJW)对应,拓展信息") + @Schema(description = "境内/境外;与ERP(JNJW)对应,拓展信息", example = "DOMESTIC") @ExcelProperty("境内/境外;与ERP(JNJW)对应,拓展信息") - private String jnjw; + private String isDomestic; - @Schema(description = "施工类型编号;与ERP(HTLXBH)对应,拓展信息") + @Schema(description = "施工类型编号;与ERP(HTLXBH)对应,拓展信息", example = "施工类型编号") @ExcelProperty("施工类型编号;与ERP(HTLXBH)对应,拓展信息") private String constructionTypeNumber; - @Schema(description = "施工类型名称;与ERP(HTLXMC)对应,拓展信息", example = "张三") + @Schema(description = "施工类型名称;与ERP(HTLXMC)对应,拓展信息", example = "施工类型名称") @ExcelProperty("施工类型名称;与ERP(HTLXMC)对应,拓展信息") private String constructionTypeName; - @Schema(description = "代理方;与ERP(ZLIFNR)对应,拓展信息") + @Schema(description = "代理方;与ERP(ZLIFNR)对应,拓展信息", example = "代理方") @ExcelProperty("代理方;与ERP(ZLIFNR)对应,拓展信息") - private String zlifnr; + private String agent; - @Schema(description = "类别;与ERP(HTLB)对应,拓展信息") + @Schema(description = "类别;与ERP(HTLB)对应,拓展信息", example = "PROCESSING") @ExcelProperty("类别;与ERP(HTLB)对应,拓展信息") private String category; - // 模板部分查询 - @Schema(description = "模板实例主键", example = "10196") - @ExcelProperty("模板实例主键") - private Long instanceId; - // 合同动态表单 - // 合同动态条款 - - // TODO 未确认字段 - @Schema(description = "是否虚拟合同;与ERP(SFXNHT)对应") + @Schema(description = "是否虚拟合同;与ERP(SFXNHT)对应", example = "1") @ExcelProperty("是否虚拟合同;与ERP(SFXNHT)对应") private String contractVirtual; - @Schema(description = "补充协议类型;变更协议/增加条款", example = "1") + @Schema(description = "补充协议类型;变更协议/增加条款", example = "补充协议类型") @ExcelProperty("补充协议类型;变更协议/增加条款") private String replenishAgreementType; - @Schema(description = "建筑服务发生地;与ERP(JZFWFSD)对应,拓展信息,销售合同,且类型为SAP02COSR必填") + @Schema(description = "建筑服务发生地;与ERP(JZFWFSD)对应,拓展信息,销售合同,且类型为SAP02COSR必填", example = "建筑服务发生地") @ExcelProperty("建筑服务发生地;与ERP(JZFWFSD)对应,拓展信息,销售合同,且类型为SAP02COSR必填") private String architectureServicePlace; @Schema(description = "达到收款条件金额;与ERP(DDSKJE)对应,拓展信息,销售合同,且类型为SAP02COSR必填") @ExcelProperty("达到收款条件金额;与ERP(DDSKJE)对应,拓展信息,销售合同,且类型为SAP02COSR必填") private BigDecimal payeeConditionAmount; + + // 模板部分查询 + @Schema(description = "模板实例主键", example = "10196") + @ExcelProperty("模板实例主键") + private Long instanceId; + + // 合同动态表单 + private List dynamicsFields; } \ 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/contract/ContractCoefficientDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractCoefficientDO.java new file mode 100644 index 0000000..c945db3 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractCoefficientDO.java @@ -0,0 +1,92 @@ +package com.zt.plat.module.contractorder.dal.dataobject.contract; + +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +import lombok.*; + +import java.math.BigDecimal; + +/** + * 基础系数配置 DO + * + * @author 后台管理 + */ +@TableName("bse_ctrt_coef") +@KeySequence("bse_ctrt_coef_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** + * 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO + */ +public class ContractCoefficientDO extends BusinessBaseDO { + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 配置主键 + */ + @TableField("PRM_ID") + private Long parameterId; + /** + * 条款主键 + */ + @TableField("FMU_ID") + private Long formulaId; + /** + * 金属元素编码 + */ + @TableField("ELEM_NUM") + private String elementNumber; + /** + * 金属元素缩写 + */ + @TableField("ELEM_ABBR") + private String elementAbbreviation; + /** + * 金属元素名称 + */ + @TableField("ELEM_NAME") + private String elementName; + /** + * 系数值 + */ + @TableField("STLM_COEF") + private String settlementCoefficient; + /** + * 系数上限 + */ + @TableField("COEF_UP") + private BigDecimal coefficientUp; + /** + * 系数下限 + */ + @TableField("COEF_DOWN") + private BigDecimal coefficientDown; + /** + * 是否包含上限 + */ + @TableField("IS_IN_UP") + private String isInUp; + /** + * 是否包含下限 + */ + @TableField("IS_IN_DOWN") + private String isInDown; + /** + * 是否省内 + */ + @TableField("IN_STA") + private String inState; + /** + * 类型 + */ + @TableField("TP") + private String type; +} \ 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/contract/ContractDeductDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractDeductDO.java new file mode 100644 index 0000000..c80521e --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractDeductDO.java @@ -0,0 +1,92 @@ +package com.zt.plat.module.contractorder.dal.dataobject.contract; + +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +import lombok.*; + +import java.math.BigDecimal; + +/** + * 调整价配置 DO + * + * @author 后台管理 + */ +@TableName("bse_ctrt_ddct") +@KeySequence("bse_ctrt_ddct_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** + * 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO + */ +public class ContractDeductDO extends BusinessBaseDO { + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 配置主键 + */ + @TableField("PRM_ID") + private Long parameterId; + /** + * 条款主键 + */ + @TableField("FMU_ID") + private Long formulaId; + /** + * 物料编码;推送ERP + */ + @TableField("MTRL_NUM") + private String materialNumber; + /** + * 物料名称 + */ + @TableField("MTRL_NAME") + private String materialName; + /** + * 上限 + */ + @TableField("GRD_UP") + private BigDecimal gradeUp; + /** + * 下限 + */ + @TableField("GRD_DOWN") + private BigDecimal gradeDown; + /** + * 是否包含上限 + */ + @TableField("IS_IN_UP") + private String isInUp; + /** + * 是否包含下限 + */ + @TableField("IS_IN_DOWN") + private String isInDown; + /** + * 方式 + */ + @TableField("WY") + private String way; + /** + * 类型 + */ + @TableField("TP") + private String type; + /** + * 是否省内 + */ + @TableField("IN_STA") + private String inState; + /** + * 调整价 + */ + @TableField("GRD_AMT") + private BigDecimal gradeAmount; +} \ 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/contract/ContractFormulaDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractFormulaDO.java new file mode 100644 index 0000000..539a56a --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractFormulaDO.java @@ -0,0 +1,80 @@ +package com.zt.plat.module.contractorder.dal.dataobject.contract; + +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +import lombok.*; + +/** + * 价款结算条款 DO + * + * @author 后台管理 + */ +@TableName("bse_ctrt_fmu") +@KeySequence("bse_ctrt_fmu_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** + * 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO + */ +public class ContractFormulaDO extends BusinessBaseDO { + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 合同明细主键 + */ + @TableField("CTRT_DTL_ID") + private Long contractDetailId; + /** + * 公式类型;单价/总价/水扣款/加工费 + */ + @TableField("FMU_TP") + private String formulaType; + /** + * 公式 + */ + @TableField("FMU_CALT") + private String formulaCalculate; + /** + * 编码公式 + */ + @TableField("NUM_FMU") + private String numberFormula; + /** + * 物料名称 + */ + @TableField("MTRL_NAME") + private String materialName; + /** + * 物料编码 + */ + @TableField("MTRL_NUM") + private String materialNumber; + /** + * 计算小数位 + */ + @TableField("DEC") + private Long decimal; + /** + * 金属元素编码 + */ + @TableField("ELEM_NUM") + private String elementNumber; + /** + * 金属元素缩写 + */ + @TableField("ELEM_ABBR") + private String elementAbbreviation; + /** + * 金属元素名称 + */ + @TableField("ELEM_NAME") + private String elementName; +} \ 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/contract/ContractGradeDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractGradeDO.java new file mode 100644 index 0000000..47403a4 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractGradeDO.java @@ -0,0 +1,112 @@ +package com.zt.plat.module.contractorder.dal.dataobject.contract; + +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +import lombok.*; + +import java.math.BigDecimal; + +/** + * 品位等级价配置 DO + * + * @author 后台管理 + */ +@TableName("bse_ctrt_grd") +@KeySequence("bse_ctrt_grd_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** + * 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO + */ +public class ContractGradeDO extends BusinessBaseDO { + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 配置主键 + */ + @TableField("PRM_ID") + private Long parameterId; + /** + * 条款主键 + */ + @TableField("FMU_ID") + private Long formulaId; + /** + * 金属元素编码 + */ + @TableField("ELEM_NUM") + private String elementNumber; + /** + * 金属元素缩写 + */ + @TableField("ELEM_ABBR") + private String elementAbbreviation; + /** + * 金属元素名称 + */ + @TableField("ELEM_NAME") + private String elementName; + /** + * 品位单位 + */ + @TableField("GRD_UNT") + private String gradeUnit; + /** + * 品位上限 + */ + @TableField("GRD_UP") + private BigDecimal gradeUp; + /** + * 品位下限 + */ + @TableField("GRD_DOWN") + private BigDecimal gradeDown; + /** + * 是否包含上限;包含则是大于等于,不包含则是大于 + */ + @TableField("IS_IN_UP") + private String isInUp; + /** + * 是否包含下限;包含则是小于等于,不包含则是小于 + */ + @TableField("IS_IN_DOWN") + private String isInDown; + /** + * 默认计价品位;计价方式为加时,默认为为下限,计价方式为减时,默认为为上限,可手动填写 + */ + @TableField("GRD_DFT") + private BigDecimal gradeDefault; + /** + * 系数;计价类型为阶梯价使用,标识没上升多少系数进行加款还是减款 + */ + @TableField("STLM_COEF") + private BigDecimal settlementCoefficient; + /** + * 不足系数值按比例计算 + */ + @TableField("USE_COEF") + private String useCoefficient; + /** + * 计价类型 + */ + @TableField("PRC_TP") + private String priceType; + /** + * 是否省内 + */ + @TableField("IN_STA") + private String inState; + /** + * 等级单价 + */ + @TableField("UPRC") + private BigDecimal unitPrice; +} \ 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/contract/ContractMainDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractMainDO.java index a0c5531..3bad913 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractMainDO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractMainDO.java @@ -1,9 +1,8 @@ package com.zt.plat.module.contractorder.dal.dataobject.contract; -import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; import lombok.*; - import java.math.BigDecimal; import java.time.LocalDateTime; @@ -218,8 +217,8 @@ public class ContractMainDO extends BusinessBaseDO { /** * 代理方;与ERP(ZLIFNR)对应,拓展信息 */ - @TableField("ZLIFNR") - private String zlifnr; + @TableField("AGT") + private String agent; /** * 类别;与ERP(HTLB)对应,拓展信息 */ @@ -253,8 +252,8 @@ public class ContractMainDO extends BusinessBaseDO { /** * 境内/境外;与ERP(JNJW)对应,拓展信息 */ - @TableField("JNJW") - private String jnjw; + @TableField("IS_DOM") + private String isDomestic; /** * 建筑服务发生地;与ERP(JZFWFSD)对应,拓展信息,销售合同,且类型为SAP02COSR必填 */ @@ -270,4 +269,14 @@ public class ContractMainDO extends BusinessBaseDO { */ @TableField("STP") private Integer step; + /** + * ERP请求状态 + */ + @TableField("ERP_STS") + private String erpStatus; + /** + * ERP请求失败原因 + */ + @TableField("CAUS") + private String cause; } \ 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/contract/ContractNotDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractNotDO.java new file mode 100644 index 0000000..642a7b6 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractNotDO.java @@ -0,0 +1,82 @@ +package com.zt.plat.module.contractorder.dal.dataobject.contract; + +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +import lombok.*; + +import java.math.BigDecimal; + +/** + * 品位不计价配置 DO + * + * @author 后台管理 + */ +@TableName("bse_ctrt_nt") +@KeySequence("bse_ctrt_nt_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** + * 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO + */ +public class ContractNotDO extends BusinessBaseDO { + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 配置主键 + */ + @TableField("PRM_ID") + private Long parameterId; + /** + * 条款主键 + */ + @TableField("FMU_ID") + private Long formulaId; + /** + * 金属元素编码 + */ + @TableField("ELEM_NUM") + private String elementNumber; + /** + * 金属元素缩写 + */ + @TableField("ELEM_ABBR") + private String elementAbbreviation; + /** + * 金属元素名称 + */ + @TableField("ELEM_NAME") + private String elementName; + /** + * 上限 + */ + @TableField("GRD_UP") + private BigDecimal gradeUp; + /** + * 下限 + */ + @TableField("GRD_DOWN") + private BigDecimal gradeDown; + /** + * 是否包含上限 + */ + @TableField("IS_IN_UP") + private String isInUp; + /** + * 是否包含下限 + */ + @TableField("IS_IN_DOWN") + private String isInDown; + /** + * 是否省内 + */ + @TableField("IN_STA") + private String inState; +} \ 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/contract/ContractPriceDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractPriceDO.java new file mode 100644 index 0000000..3eb77a1 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractPriceDO.java @@ -0,0 +1,98 @@ +package com.zt.plat.module.contractorder.dal.dataobject.contract; + +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 后台管理 + */ +@TableName("bse_ctrt_prc") +@KeySequence("bse_ctrt_prc_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** + * 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO + */ +public class ContractPriceDO extends BusinessBaseDO { + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 配置主键 + */ + @TableField("PRM_ID") + private Long parameterId; + /** + * 条款主键 + */ + @TableField("FMU_ID") + private Long formulaId; + /** + * 市场价 + */ + @TableField("VAL") + private BigDecimal value; + /** + * 计算方式;均价/高位价/地位价 + */ + @TableField("CALT_WY") + private String calculateWay; + /** + * 数据来源网价代码;数据字典 + */ + @TableField("DAT_ORGN") + private String dataOrigin; + /** + * 计价开始日期 + */ + @TableField("CALT_STRT_DT") + private LocalDateTime calculateStartDate; + /** + * 计价截止日期 + */ + @TableField("CALT_END_DT") + private LocalDateTime calculateEndDate; + /** + * 包含开始日期 + */ + @TableField("IN_STRT_DT") + private String inStartDate; + /** + * 包含结束日期 + */ + @TableField("IN_END_DT") + private String inEndDate; + /** + * 价格品种元素的明细分类 + */ + @TableField("PRC_GRD") + private String priceGrade; + /** + * 品种分类 + */ + @TableField("GRD_TP") + private String gradeType; + /** + * 取价方式;区间价/固定价 + */ + @TableField("AVG_TP") + private String averageType; + /** + * 网价小数位 + */ + @TableField("DEC") + private BigDecimal decimal; +} \ 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/contract/ContractCoefficientMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractCoefficientMapper.java new file mode 100644 index 0000000..9a971d8 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractCoefficientMapper.java @@ -0,0 +1,15 @@ +package com.zt.plat.module.contractorder.dal.mysql.contract; + +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractCoefficientDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 基础系数配置 Mapper + * + * @author 后台管理 + */ +@Mapper +public interface ContractCoefficientMapper extends BaseMapperX { + +} \ 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/contract/ContractDeductMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractDeductMapper.java new file mode 100644 index 0000000..df9e005 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractDeductMapper.java @@ -0,0 +1,15 @@ +package com.zt.plat.module.contractorder.dal.mysql.contract; + +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractDeductDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 调整价配置 Mapper + * + * @author 后台管理 + */ +@Mapper +public interface ContractDeductMapper extends BaseMapperX { + +} \ 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/contract/ContractFormulaMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractFormulaMapper.java new file mode 100644 index 0000000..793e5f4 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractFormulaMapper.java @@ -0,0 +1,15 @@ +package com.zt.plat.module.contractorder.dal.mysql.contract; + +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractFormulaDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 价款结算条款 Mapper + * + * @author 后台管理 + */ +@Mapper +public interface ContractFormulaMapper extends BaseMapperX { + +} \ 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/contract/ContractGradeMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractGradeMapper.java new file mode 100644 index 0000000..3bd8413 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractGradeMapper.java @@ -0,0 +1,14 @@ +package com.zt.plat.module.contractorder.dal.mysql.contract; + +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractGradeDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 品位等级价配置 Mapper + * + * @author 后台管理 + */ +@Mapper +public interface ContractGradeMapper extends BaseMapperX { +} \ 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/contract/ContractNotMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractNotMapper.java new file mode 100644 index 0000000..862e08e --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractNotMapper.java @@ -0,0 +1,14 @@ +package com.zt.plat.module.contractorder.dal.mysql.contract; + +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractNotDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 品位不计价配置 Mapper + * + * @author 后台管理 + */ +@Mapper +public interface ContractNotMapper extends BaseMapperX { +} \ 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/contract/ContractPlanMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractPlanMapper.java new file mode 100644 index 0000000..8cb6c38 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractPlanMapper.java @@ -0,0 +1,14 @@ +package com.zt.plat.module.contractorder.dal.mysql.contract; + +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractPlanDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 交货计划条款 Mapper + * + * @author 后台管理 + */ +@Mapper +public interface ContractPlanMapper extends BaseMapperX { +} \ 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/contract/ContractPriceMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractPriceMapper.java new file mode 100644 index 0000000..f857cac --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractPriceMapper.java @@ -0,0 +1,14 @@ +package com.zt.plat.module.contractorder.dal.mysql.contract; + +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractPriceDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 市场价配置 Mapper + * + * @author 后台管理 + */ +@Mapper +public interface ContractPriceMapper extends BaseMapperX { +} \ 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/contract/ContractServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java index ba2323f..59167e0 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java @@ -1,22 +1,27 @@ package com.zt.plat.module.contractorder.service.contract; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.framework.tenant.core.context.CompanyContextHolder; +import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceDataDO; +import com.zt.plat.module.base.service.tmpltp.TemplateInstanceDataService; import com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton.ContractPageReqVO; import com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton.ContractSaveReqVO; -import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractMainDO; -import com.zt.plat.module.contractorder.dal.mysql.contract.ContractMainMapper; +import com.zt.plat.module.contractorder.dal.dataobject.contract.*; +import com.zt.plat.module.contractorder.dal.mysql.contract.*; import com.zt.plat.module.contractorder.enums.contract.ContractStatusEnum; import com.zt.plat.module.contractorder.enums.contract.DateConstants; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; import java.time.format.DateTimeFormatter; +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.*; @@ -32,12 +37,31 @@ public class ContractServiceImpl implements ContractService { @Resource private ContractMainMapper contractMainMapper; + @Resource + private ContractDetailMapper contractDetailMapper; + @Resource + private ContractPlanMapper contractPlanMapper; + @Resource + private TemplateInstanceDataService templateInstanceDataService; + @Resource + private ContractFormulaMapper contractFormulaMapper; + @Resource + private ContractCoefficientMapper contractCoefficientMapper; + @Resource + private ContractGradeMapper contractGradeMapper; + @Resource + private ContractDeductMapper contractDeductMapper; + @Resource + private ContractPriceMapper contractPriceMapper; + @Resource + private ContractNotMapper contractNotMapper; @Override public PageResult getContractPage(ContractPageReqVO pageReqVO) { return contractMainMapper.selectContractPage(pageReqVO); } + @Transactional @Override public Long createContract(ContractSaveReqVO reqVO) { @@ -65,7 +89,99 @@ public class ContractServiceImpl implements ContractService { // 保存合同主信息 contractMainMapper.insert(contractMainDO); - System.out.println(contractMainDO); + // 合同主信息ID + Long contractId = contractMainDO.getId(); + // 合同明细 + reqVO.getDetail().forEach(detail -> { + // 合同明细DO + ContractDetailDO detailDO = BeanUtils.toBean(detail, ContractDetailDO.class); + // 设置合同主信息ID + detailDO.setContractMainId(contractId); + // 保存合同明细 + contractDetailMapper.insert(detailDO); + + // 合同明细ID + Long detailDOId = detailDO.getId(); + // 交货计划 + detail.getPlans().forEach(plan -> { + // 交货计划DO + ContractPlanDO planDO = BeanUtils.toBean(plan, ContractPlanDO.class); + // 合同明细主键 + planDO.setContractDetailId(detailDOId); + // 保存交货计划 + contractPlanMapper.insert(planDO); + }); + + // 价款结算条款 + detail.getFormulas().forEach(formula -> { + // 价款结算条款DO + ContractFormulaDO formulaDO = BeanUtils.toBean(formula, ContractFormulaDO.class); + // 合同明细主键 + formulaDO.setContractDetailId(detailDOId); + // 保存价款结算条款 + contractFormulaMapper.insert(formulaDO); + + // 价款结算条款ID + Long formulaDOId = formulaDO.getId(); + // 基础系数配置 + formula.getCoefficients().forEach(coefficient -> { + // 基础系数配置DO + ContractCoefficientDO coefficientDO = BeanUtils.toBean(coefficient, ContractCoefficientDO.class); + // 条款主键 + coefficientDO.setFormulaId(formulaDOId); + // 保存基础系数配置 + contractCoefficientMapper.insert(coefficientDO); + }); + // 品位等级价配置 + formula.getGrades().forEach(grade -> { + // 品位等级价配置DO + ContractGradeDO gradeDO = BeanUtils.toBean(grade, ContractGradeDO.class); + // 条款主键 + gradeDO.setFormulaId(formulaDOId); + // 保存品位等级价配置 + contractGradeMapper.insert(gradeDO); + }); + // 调整价配置 + formula.getDeducts().forEach(deduct -> { + // 调整价配置DO + ContractDeductDO deductDO = BeanUtils.toBean(deduct, ContractDeductDO.class); + // 条款主键 + deductDO.setFormulaId(formulaDOId); + // 保存品位等级价配置 + contractDeductMapper.insert(deductDO); + }); + // 市场价配置 + formula.getPrices().forEach(price -> { + // 市场价配置DO + ContractPriceDO priceDO = BeanUtils.toBean(price, ContractPriceDO.class); + // 条款主键 + priceDO.setFormulaId(formulaDOId); + // 保存市场价配置 + contractPriceMapper.insert(priceDO); + }); + // 品位不计价配置 + formula.getNots().forEach(not -> { + // 品位不计价配置DO + ContractNotDO notDO = BeanUtils.toBean(not, ContractNotDO.class); + // 条款主键 + notDO.setFormulaId(formulaDOId); + // 保存品位不计价配置 + contractNotMapper.insert(notDO); + }); + }); + }); + + // 合同动态表单 + List templateInstanceDataDOS = new ArrayList<>(); + reqVO.getDynamicsFields().forEach(dynamicsField -> { + TemplateInstanceDataDO templateInstanceDataDO = new TemplateInstanceDataDO(); + BeanUtils.copyProperties(dynamicsField, templateInstanceDataDO); + templateInstanceDataDO.setInscId(reqVO.getInstanceId().toString()); + templateInstanceDataDOS.add(templateInstanceDataDO); + }); + // 更新合同动态表单值 + templateInstanceDataService.setTemplateInstanceData(templateInstanceDataDOS); + return contractMainDO.getId(); }