diff --git a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/devtools/entity/GencodeCustomField.java b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/devtools/entity/GencodeCustomField.java index 0b114a3e..76922d71 100644 --- a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/devtools/entity/GencodeCustomField.java +++ b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/devtools/entity/GencodeCustomField.java @@ -1,6 +1,8 @@ package com.cloud.kicc.system.api.devtools.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; +import com.cloud.kicc.common.data.entity.BaseEntity; import com.cloud.kicc.common.data.entity.CommonEntity; import java.io.Serializable; import io.swagger.annotations.ApiModel; @@ -24,7 +26,7 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @TableName("sys_gencode_custom_field") @ApiModel(value = "GencodeCustomField对象", description = "java字段") -public class GencodeCustomField extends CommonEntity { +public class GencodeCustomField extends BaseEntity { private static final long serialVersionUID = 1L; @@ -40,5 +42,11 @@ public class GencodeCustomField extends CommonEntity { @ApiModelProperty("sort") private Integer sort; + @ApiModelProperty("备注") + protected String remarks; + + @ApiModelProperty("子集表字段物理类型") + @TableField(exist = false) + private String _action; } diff --git a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/devtools/entity/GencodeCustomObj.java b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/devtools/entity/GencodeCustomObj.java index f063646c..a88708dd 100644 --- a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/devtools/entity/GencodeCustomObj.java +++ b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/devtools/entity/GencodeCustomObj.java @@ -1,8 +1,12 @@ package com.cloud.kicc.system.api.devtools.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.cloud.kicc.common.data.entity.CommonEntity; import java.io.Serializable; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -38,9 +42,9 @@ public class GencodeCustomObj extends CommonEntity { private String value; @ApiModelProperty("数据接口") - private String dataurl; + private String dataUrl; - @ApiModelProperty("物理表明") + @ApiModelProperty("物理表名") private String tableName; @ApiModelProperty("排序") @@ -49,4 +53,9 @@ public class GencodeCustomObj extends CommonEntity { @ApiModelProperty("基本类型") private String type; + @ApiModelProperty("子集java字段") + @TableField(exist = false) + @JsonInclude(JsonInclude.Include.NON_NULL) + private List gencodeCustomFieldList; + } diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/controller/GencodeCustomObjController.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/controller/GencodeCustomObjController.java index b6253dbd..2ddf9f1f 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/controller/GencodeCustomObjController.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/controller/GencodeCustomObjController.java @@ -7,8 +7,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.core.constant.AppConstants; -import com.cloud.kicc.system.api.devtools.entity.GencodeCustomObj; -import com.cloud.kicc.system.api.devtools.entity.GencodeScheme; +import com.cloud.kicc.system.api.devtools.entity.*; +import com.cloud.kicc.system.devtools.service.IGencodeCustomFieldService; import com.cloud.kicc.system.devtools.service.IGencodeCustomObjService; import com.cloud.kicc.system.devtools.service.IGencodeSchemeService; import lombok.RequiredArgsConstructor; @@ -30,6 +30,7 @@ import java.util.Arrays; public class GencodeCustomObjController { private final IGencodeCustomObjService iGencodeCustomObjService; + private final IGencodeCustomFieldService iGencodeCustomFieldService; private final IGencodeSchemeService iGencodeSchemeService; private LambdaQueryWrapper getQueryWrapper(GencodeCustomObj gencodeCustomObj) { @@ -43,9 +44,19 @@ public class GencodeCustomObjController { return R.ok(result.getRecords(), result.getTotal()); } + @GetMapping("/selectListByValue/{value:\\w+}") + public R selectListByValue(@PathVariable String value) { + return R.ok(iGencodeCustomObjService.list(Wrappers.lambdaUpdate().eq(GencodeCustomObj::getValue, value))); + } + @GetMapping("/{id:\\w+}") public R getById(@PathVariable("id") String id) { - return R.ok(iGencodeCustomObjService.getById(id)); + GencodeCustomObj gencodeCustomObj = iGencodeCustomObjService.getById(id); + gencodeCustomObj.setGencodeCustomFieldList(iGencodeCustomFieldService.list(Wrappers.lambdaQuery() + .eq(GencodeCustomField::getObjId, gencodeCustomObj.getId()) + .orderByAsc(GencodeCustomField::getSort) + )); + return R.ok(gencodeCustomObj); } @PostMapping("/save") @@ -72,6 +83,12 @@ public class GencodeCustomObjController { return R.ok(); } + @PutMapping("/saveAndGencodeCustomField") + public R saveAndGencodeCustomField(@RequestBody GencodeCustomObj gencodeCustomObj) { + iGencodeCustomObjService.saveAndGencodeCustomField(gencodeCustomObj); + return R.ok(); + } + @GetMapping("/getByValue") public R getByValue(String value) { GencodeCustomObj gencodeCustomObj = iGencodeCustomObjService.getOne(Wrappers.lambdaQuery().eq(GencodeCustomObj::getValue, value)); @@ -80,7 +97,7 @@ public class GencodeCustomObjController { @DeleteMapping("/remove/{id:[\\w,]+}") public R remove(@PathVariable String[] id) { - iGencodeCustomObjService.removeByIds(Arrays.asList(id)); + iGencodeCustomObjService.removeByIdsAndGencodeCustomField(Arrays.asList(id)); return R.ok(); } diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/service/IGencodeCustomObjService.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/service/IGencodeCustomObjService.java index e467ad27..ce243ee0 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/service/IGencodeCustomObjService.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/service/IGencodeCustomObjService.java @@ -1,8 +1,11 @@ package com.cloud.kicc.system.devtools.service; +import com.cloud.kicc.system.api.devtools.entity.GenDatabaseType; import com.cloud.kicc.system.api.devtools.entity.GencodeCustomObj; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** *

* 自定义java对象 服务类 @@ -13,4 +16,8 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IGencodeCustomObjService extends IService { + void saveAndGencodeCustomField(GencodeCustomObj gencodeCustomObj); + + void removeByIdsAndGencodeCustomField(List ids); + } diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/service/impl/GencodeCustomObjServiceImpl.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/service/impl/GencodeCustomObjServiceImpl.java index 50ad1f18..92b2caee 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/service/impl/GencodeCustomObjServiceImpl.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/service/impl/GencodeCustomObjServiceImpl.java @@ -1,10 +1,22 @@ package com.cloud.kicc.system.devtools.service.impl; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.cloud.kicc.system.api.devtools.entity.GenDatabaseType; +import com.cloud.kicc.system.api.devtools.entity.GenTableFieldType; +import com.cloud.kicc.system.api.devtools.entity.GencodeCustomField; import com.cloud.kicc.system.api.devtools.entity.GencodeCustomObj; import com.cloud.kicc.system.devtools.mapper.GencodeCustomObjMapper; +import com.cloud.kicc.system.devtools.service.IGenTableFieldTypeService; +import com.cloud.kicc.system.devtools.service.IGencodeCustomFieldService; import com.cloud.kicc.system.devtools.service.IGencodeCustomObjService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; /** *

@@ -15,6 +27,38 @@ import org.springframework.stereotype.Service; * @since 2023-12-09 */ @Service +@RequiredArgsConstructor public class GencodeCustomObjServiceImpl extends ServiceImpl implements IGencodeCustomObjService { + + private final IGencodeCustomFieldService iGencodeCustomFieldService; + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveAndGencodeCustomField(GencodeCustomObj gencodeCustomObj) { + super.saveOrUpdate(gencodeCustomObj); + List addOrEditGencodeCustomFieldList = new ArrayList<>(); + List delGencodeCustomFieldList = new ArrayList<>(); + gencodeCustomObj.getGencodeCustomFieldList().forEach(item -> { + item.setObjId(gencodeCustomObj.getId()); + if (StrUtil.equalsAny(item.get_action(), "add", "edit")) { + addOrEditGencodeCustomFieldList.add(item); + } else if (StrUtil.equals(item.get_action(), "del")) { + delGencodeCustomFieldList.add(item); + } + }); + iGencodeCustomFieldService.saveOrUpdateBatch(addOrEditGencodeCustomFieldList); + iGencodeCustomFieldService.removeBatchByIds(delGencodeCustomFieldList); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void removeByIdsAndGencodeCustomField(List ids) { + ids.forEach(id-> { + super.removeById(id); + iGencodeCustomFieldService.remove(Wrappers.lambdaUpdate().eq(GencodeCustomField::getObjId, id)); + }); + } + + }