From a2ec48fd94344193ad624424486f6270481130a5 Mon Sep 17 00:00:00 2001 From: liss <1780094091@qq.com> Date: Fri, 26 Sep 2025 12:01:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=93=E5=BA=93=E9=85=8D=E7=BD=AE=E7=BC=96?= =?UTF-8?q?=E7=A0=81=E8=87=AA=E5=8A=A8=E7=94=9F=E6=88=90=EF=BC=8C=E5=85=AC?= =?UTF-8?q?=E5=8F=B8=E9=85=8D=E7=BD=AE=E6=89=B9=E9=87=8F=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/CompanyRelativityController.java | 6 +++ .../admin/base/vo/ContactPageReqVO.java | 2 + .../admin/base/vo/ContactRespVO.java | 3 ++ .../admin/base/vo/ContactSaveReqVO.java | 3 ++ .../base/dal/dataobject/base/ContactDO.java | 5 +++ .../base/dal/mysql/base/WarehouseMapper.java | 1 + .../base/CompanyRelativityService.java | 1 + .../base/CompanyRelativityServiceImpl.java | 37 +++++++++++++++++++ .../service/base/WarehouseServiceImpl.java | 11 ++++++ .../resources/mapper/base/WarehouseMapper.xml | 3 ++ 10 files changed, 72 insertions(+) diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/CompanyRelativityController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/CompanyRelativityController.java index 00b00f8..706f9fd 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/CompanyRelativityController.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/CompanyRelativityController.java @@ -92,4 +92,10 @@ public class CompanyRelativityController { return success(BeanUtils.toBean(pageResult, CompanyRelaDeptDO.class)); } + @PostMapping("/createOrUpdate-list") + @Operation(summary = "批量创建更新公司关系") + @PreAuthorize("@ss.hasPermission('base:company-relativity:create')") + public CommonResult> createOrUpdataCompanyList(@Valid @RequestBody List createReqVOS) { + return success(companyRelativityService.createOrUpdataCompanyList(createReqVOS)); + } } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ContactPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ContactPageReqVO.java index 1871043..cc5cfa4 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ContactPageReqVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ContactPageReqVO.java @@ -35,4 +35,6 @@ public class ContactPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; + @Schema(description = "是否启用") + private String isEnable; } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ContactRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ContactRespVO.java index 190a241..8145501 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ContactRespVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ContactRespVO.java @@ -44,4 +44,7 @@ public class ContactRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; + @Schema(description = "是否启用") + @ExcelProperty("是否启用") + private String isEnable; } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ContactSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ContactSaveReqVO.java index 7dc6fa8..3a1efb9 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ContactSaveReqVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ContactSaveReqVO.java @@ -33,4 +33,7 @@ public class ContactSaveReqVO { @NotEmpty(message = "联系地址不能为空") private String address; + @Schema(description = "是否启用") + private String isEnable; + } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/ContactDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/ContactDO.java index 829bca2..853eb1d 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/ContactDO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/ContactDO.java @@ -59,6 +59,11 @@ public class ContactDO extends BusinessBaseDO { */ @TableField("ADR") private String address; + /** + * 是否启用 + */ + @TableField("IS_ENB") + private String isEnable; /** * 公司编号 */ diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/WarehouseMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/WarehouseMapper.java index add8c1b..ec28235 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/WarehouseMapper.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/WarehouseMapper.java @@ -29,4 +29,5 @@ public interface WarehouseMapper extends BaseMapperX { .orderByDesc(WarehouseDO::getId)); } + String selectMaxCode(); } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/CompanyRelativityService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/CompanyRelativityService.java index 4eacfb4..fd33a79 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/CompanyRelativityService.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/CompanyRelativityService.java @@ -62,4 +62,5 @@ public interface CompanyRelativityService { */ PageResult getCompanyRelativityPage(CompanyRelativityPageReqVO pageReqVO); + List createOrUpdataCompanyList(List createReqVOS); } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/CompanyRelativityServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/CompanyRelativityServiceImpl.java index 0b020bd..25c05d3 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/CompanyRelativityServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/CompanyRelativityServiceImpl.java @@ -116,6 +116,43 @@ public class CompanyRelativityServiceImpl implements CompanyRelativityService { return new PageResult<>(pageList, (long) total); } + @Override + public List createOrUpdataCompanyList(List createReqVOS) { + if (CollUtil.isEmpty(createReqVOS)) { + return null; + } + + List insertList = new ArrayList<>(); + List updateList = new ArrayList<>(); + + // 分离需要插入和更新的数据 + for (CompanyRelativitySaveReqVO createReqVO : createReqVOS) { + if (createReqVO.getId() == null) { + // 插入 + CompanyRelativityDO companyRelativity = BeanUtils.toBean(createReqVO, CompanyRelativityDO.class); + insertList.add(companyRelativity); + } else { + // 校验存在 + validateCompanyRelativityExists(createReqVO.getId()); + // 更新 + CompanyRelativityDO updateObj = BeanUtils.toBean(createReqVO, CompanyRelativityDO.class); + updateList.add(updateObj); + } + } + + // 批量插入 + if (CollUtil.isNotEmpty(insertList)) { + companyRelativityMapper.insertBatch(insertList); + } + + // 批量更新 + if (CollUtil.isNotEmpty(updateList)) { + companyRelativityMapper.updateBatch(updateList); + } + + return BeanUtils.toBean(createReqVOS, CompanyRelativityRespVO.class); + } + private List buildTree(List list) { // 创建一个map用于存储所有节点,key为id,value为节点对象 Map nodeMap = new HashMap<>(); diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/WarehouseServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/WarehouseServiceImpl.java index 41e5b06..f4ae25c 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/WarehouseServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/WarehouseServiceImpl.java @@ -36,6 +36,17 @@ public class WarehouseServiceImpl implements WarehouseService { public WarehouseRespVO createWarehouse(WarehouseSaveReqVO createReqVO) { // 插入 WarehouseDO warehouse = BeanUtils.toBean(createReqVO, WarehouseDO.class); + // 库位编码自动生成,格式 KW-0001,依次新增 + String maxCode = warehouseMapper.selectMaxCode(); + if (maxCode == null) { + warehouse.setCoding("KW-0001"); + } else { + String prefix = "KW-"; + String numberPart = maxCode.substring(prefix.length()); + int nextNumber = Integer.parseInt(numberPart) + 1; + String nextCode = prefix + String.format("%04d", nextNumber); + warehouse.setCoding(nextCode); + } warehouseMapper.insert(warehouse); // 返回 return BeanUtils.toBean(warehouse, WarehouseRespVO.class); diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/WarehouseMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/WarehouseMapper.xml index 30f7d26..006534d 100644 --- a/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/WarehouseMapper.xml +++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/WarehouseMapper.xml @@ -9,4 +9,7 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> + \ No newline at end of file