From 00a1872b72bfc7c28975055df66c3804d9cb670b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BD=98=E8=8D=A3=E6=99=9F?= <9691125+pan-rongsheng@user.noreply.gitee.com> Date: Fri, 19 Sep 2025 17:24:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A8=A1=E7=89=88=E5=AE=9E=E4=BE=8B=E7=9A=84?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tmpltp/enums/ErrorCodeConstants.java | 4 + ...epartmentInstanceRelativityController.java | 120 ++++++++++++++++++ .../TemplateInstanceDataController.java | 1 + .../admin/templtp/TmplTpController.java | 25 ++++ ...DepartmentInstanceRelativityPageReqVO.java | 27 ++++ .../DepartmentInstanceRelativityRespVO.java | 31 +++++ ...DepartmentInstanceRelativitySaveReqVO.java | 23 ++++ .../vo/TemplateInstanceDataPageReqVO.java | 6 +- .../vo/TemplateInstanceDataRespVO.java | 6 +- .../vo/TemplateInstanceDataSaveReqVO.java | 6 +- .../templtp/vo/TemplateInstancePageReqVO.java | 16 +-- .../templtp/vo/TemplateInstanceRespVO.java | 16 +-- .../templtp/vo/TemplateInstanceSaveReqVO.java | 21 +-- .../templtp/vo/TmplTpEditOrDeleteReqVO.java | 28 ++++ .../DepartmentInstanceRelativityDO.java | 43 +++++++ .../dataobject/tmpltp/TemplateInstanceDO.java | 59 ++++----- .../tmpltp/TemplateInstanceDataDO.java | 6 +- .../DepartmentInstanceRelativityMapper.java | 30 +++++ .../tmpltp/TemplateInstanceDataMapper.java | 6 +- .../mysql/tmpltp/TemplateInstanceMapper.java | 16 +-- .../DepartmentInstanceRelativityService.java | 65 ++++++++++ ...partmentInstanceRelativityServiceImpl.java | 97 ++++++++++++++ .../tmpltp/TemplateInstanceDataService.java | 17 +++ .../TemplateInstanceDataServiceImpl.java | 31 +++++ .../tmpltp/TemplateInstanceServiceImpl.java | 19 ++- .../base/service/tmpltp/TmplTpService.java | 53 +++++++- .../service/tmpltp/TmplTpServiceImpl.java | 70 ++++++++-- .../DepartmentInstanceRelativityMapper.xml | 12 ++ .../resources/mapper/tmpltp/TmplTpMapper.xml | 2 + 29 files changed, 757 insertions(+), 99 deletions(-) create mode 100644 yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/DepartmentInstanceRelativityController.java create mode 100644 yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/DepartmentInstanceRelativityPageReqVO.java create mode 100644 yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/DepartmentInstanceRelativityRespVO.java create mode 100644 yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/DepartmentInstanceRelativitySaveReqVO.java create mode 100644 yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TmplTpEditOrDeleteReqVO.java create mode 100644 yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/dataobject/tmpltp/DepartmentInstanceRelativityDO.java create mode 100644 yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/mysql/tmpltp/DepartmentInstanceRelativityMapper.java create mode 100644 yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/DepartmentInstanceRelativityService.java create mode 100644 yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/DepartmentInstanceRelativityServiceImpl.java create mode 100644 yudao-module-base/yudao-module-base-server/src/main/resources/mapper/tmpltp/DepartmentInstanceRelativityMapper.xml diff --git a/yudao-module-base/yudao-module-base-api/src/main/java/cn/iocoder/yudao/module/tmpltp/enums/ErrorCodeConstants.java b/yudao-module-base/yudao-module-base-api/src/main/java/cn/iocoder/yudao/module/tmpltp/enums/ErrorCodeConstants.java index 3b24a8f..0a35a79 100644 --- a/yudao-module-base/yudao-module-base-api/src/main/java/cn/iocoder/yudao/module/tmpltp/enums/ErrorCodeConstants.java +++ b/yudao-module-base/yudao-module-base-api/src/main/java/cn/iocoder/yudao/module/tmpltp/enums/ErrorCodeConstants.java @@ -15,6 +15,10 @@ public interface ErrorCodeConstants { ErrorCode TEMPLATE_INSTANCE_DATA_NOT_EXISTS = new ErrorCode(1_027_000_508, "实例字段值不存在"); ErrorCode TEMPLATE_INSTANCE_ITEM_NOT_EXISTS = new ErrorCode(1_027_000_509, "实例条款值不存在"); ErrorCode PARAMS_IS_NULL_OR_ERR = new ErrorCode(1_027_000_510, "参数为空"); + ErrorCode DEPARTMENT_INSTANCE_RELATIVITY_NOT_EXISTS = new ErrorCode(1_027_000_511, "部门与实例关联不存在"); + ErrorCode ILLEGAL_OPERATION_TYPE = new ErrorCode(1_027_000_511, "非法操作类型"); + ErrorCode OPERATION_FAIL= new ErrorCode(1_027_000_512, "操作失败"); + //Illegal operation type } diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/DepartmentInstanceRelativityController.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/DepartmentInstanceRelativityController.java new file mode 100644 index 0000000..1a0ff72 --- /dev/null +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/DepartmentInstanceRelativityController.java @@ -0,0 +1,120 @@ +package cn.iocoder.yudao.module.base.controller.admin.templtp; + +import cn.iocoder.yudao.module.base.controller.admin.templtp.vo.DepartmentInstanceRelativityPageReqVO; +import cn.iocoder.yudao.module.base.controller.admin.templtp.vo.DepartmentInstanceRelativityRespVO; +import cn.iocoder.yudao.module.base.controller.admin.templtp.vo.DepartmentInstanceRelativitySaveReqVO; +import cn.iocoder.yudao.module.base.dal.dataobject.tmpltp.DepartmentInstanceRelativityDO; +import cn.iocoder.yudao.module.base.service.tmpltp.DepartmentInstanceRelativityService; +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import cn.iocoder.yudao.framework.business.interceptor.BusinessControllerMarker; +import cn.iocoder.yudao.framework.business.annotation.FileUploadController; +import cn.iocoder.yudao.framework.business.controller.AbstractFileUploadController; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.vo.BatchDeleteReqVO; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + + + +@Tag(name = "管理后台 - 部门与实例关联") +@RestController +@RequestMapping("/bse/department-instance-relativity") +@Validated +@FileUploadController(source = "bse.departmentinstancerelativity") +public class DepartmentInstanceRelativityController extends AbstractFileUploadController implements BusinessControllerMarker{ + + static { + FileUploadController annotation = DepartmentInstanceRelativityController.class.getAnnotation(FileUploadController.class); + if (annotation != null) { + setFileUploadInfo(annotation); + } + } + + @Resource + private DepartmentInstanceRelativityService departmentInstanceRelativityService; + + @PostMapping("/create") + @Operation(summary = "创建部门与实例关联") + @PreAuthorize("@ss.hasPermission('bse:department-instance-relativity:create')") + public CommonResult createDepartmentInstanceRelativity(@Valid @RequestBody DepartmentInstanceRelativitySaveReqVO createReqVO) { + return success(departmentInstanceRelativityService.createDepartmentInstanceRelativity(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新部门与实例关联") + @PreAuthorize("@ss.hasPermission('bse:department-instance-relativity:update')") + public CommonResult updateDepartmentInstanceRelativity(@Valid @RequestBody DepartmentInstanceRelativitySaveReqVO updateReqVO) { + departmentInstanceRelativityService.updateDepartmentInstanceRelativity(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除部门与实例关联") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('bse:department-instance-relativity:delete')") + public CommonResult deleteDepartmentInstanceRelativity(@RequestParam("id") String id) { + departmentInstanceRelativityService.deleteDepartmentInstanceRelativity(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除部门与实例关联") + @PreAuthorize("@ss.hasPermission('bse:department-instance-relativity:delete')") + public CommonResult deleteDepartmentInstanceRelativityList(@RequestBody BatchDeleteReqVO req) { + departmentInstanceRelativityService.deleteDepartmentInstanceRelativityListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得部门与实例关联") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('bse:department-instance-relativity:query')") + public CommonResult getDepartmentInstanceRelativity(@RequestParam("id") String id) { + DepartmentInstanceRelativityDO departmentInstanceRelativity = departmentInstanceRelativityService.getDepartmentInstanceRelativity(id); + return success(BeanUtils.toBean(departmentInstanceRelativity, DepartmentInstanceRelativityRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得部门与实例关联分页") + @PreAuthorize("@ss.hasPermission('bse:department-instance-relativity:query')") + public CommonResult> getDepartmentInstanceRelativityPage(@Valid DepartmentInstanceRelativityPageReqVO pageReqVO) { + PageResult pageResult = departmentInstanceRelativityService.getDepartmentInstanceRelativityPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, DepartmentInstanceRelativityRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出部门与实例关联 Excel") + @PreAuthorize("@ss.hasPermission('bse:department-instance-relativity:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportDepartmentInstanceRelativityExcel(@Valid DepartmentInstanceRelativityPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = departmentInstanceRelativityService.getDepartmentInstanceRelativityPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "部门与实例关联.xls", "数据", DepartmentInstanceRelativityRespVO.class, + BeanUtils.toBean(list, DepartmentInstanceRelativityRespVO.class)); + } + +} diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/TemplateInstanceDataController.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/TemplateInstanceDataController.java index 4bc9005..6faa977 100644 --- a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/TemplateInstanceDataController.java +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/TemplateInstanceDataController.java @@ -108,4 +108,5 @@ public class TemplateInstanceDataController implements BusinessControllerMarker BeanUtils.toBean(list, TemplateInstanceDataRespVO.class)); } + } diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/TmplTpController.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/TmplTpController.java index 10984af..ebf36c4 100644 --- a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/TmplTpController.java +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/TmplTpController.java @@ -143,4 +143,29 @@ public class TmplTpController extends AbstractFileUploadController implements Bu return success(true); } + //表单预览 +// @GetMapping("/preview") +// @Operation(summary = "表单预览",description = "传入模版分类的id") +// @PreAuthorize("@ss.hasPermission('bse:tmpl-tp:query')") +// public CommonResult< List> preview(@Valid @RequestParam("id") Long id) { +// List field = tmplTpService.getField(id); +// return success(field); +// } + + // 字段编辑新增或者删除 + @PostMapping("/field-edit") + @Operation(summary = "字段编辑新增或者删除") + @PreAuthorize("@ss.hasPermission('bse:tmpl-tp:update')") + public CommonResult fieldEdit(@Valid @RequestBody TmplTpEditOrDeleteReqVO reqVO) { + tmplTpService.fieldEdit(reqVO); + return success(true); + } + + @PostMapping("/ltm-edit") + @Operation(summary = "条款编辑新增或者删除") + @PreAuthorize("@ss.hasPermission('bse:tmpl-tp:update')") + public CommonResult ltmEdit(@Valid @RequestBody TmplTpEditOrDeleteReqVO reqVO) { + tmplTpService.ltmEdit(reqVO); + return success(true); + } } diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/DepartmentInstanceRelativityPageReqVO.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/DepartmentInstanceRelativityPageReqVO.java new file mode 100644 index 0000000..f88b720 --- /dev/null +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/DepartmentInstanceRelativityPageReqVO.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.base.controller.admin.templtp.vo; + +import lombok.*; + +import java.time.LocalDate; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 部门与实例关联分页 Request VO") +@Data +public class DepartmentInstanceRelativityPageReqVO extends PageParam { + + @Schema(description = "部门主键", example = "2450") + private String companyDepartmentId; + + @Schema(description = "模板实例主键", example = "17846") + private String templateInstanceId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDate[] createTime; + +} diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/DepartmentInstanceRelativityRespVO.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/DepartmentInstanceRelativityRespVO.java new file mode 100644 index 0000000..244c82d --- /dev/null +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/DepartmentInstanceRelativityRespVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.base.controller.admin.templtp.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.time.LocalDate; +import java.util.*; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 部门与实例关联 Response VO") +@Data +@ExcelIgnoreUnannotated +public class DepartmentInstanceRelativityRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "4864") + @ExcelProperty("主键") + private String id; + + @Schema(description = "部门主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "2450") + @ExcelProperty("部门主键") + private String companyDepartmentId; + + @Schema(description = "模板实例主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "17846") + @ExcelProperty("模板实例主键") + private String templateInstanceId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDate createTime; + +} diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/DepartmentInstanceRelativitySaveReqVO.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/DepartmentInstanceRelativitySaveReqVO.java new file mode 100644 index 0000000..298f747 --- /dev/null +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/DepartmentInstanceRelativitySaveReqVO.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.base.controller.admin.templtp.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 部门与实例关联新增/修改 Request VO") +@Data +public class DepartmentInstanceRelativitySaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "4864") + private String id; + + @Schema(description = "部门主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "2450") + @NotEmpty(message = "部门主键不能为空") + private String companyDepartmentId; + + @Schema(description = "模板实例主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "17846") + @NotEmpty(message = "模板实例主键不能为空") + private String templateInstanceId; + +} diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstanceDataPageReqVO.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstanceDataPageReqVO.java index d999ec6..585e2e7 100644 --- a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstanceDataPageReqVO.java +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstanceDataPageReqVO.java @@ -14,13 +14,13 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ public class TemplateInstanceDataPageReqVO extends PageParam { @Schema(description = "关联实例主键", example = "25824") - private String instanceId; + private String inscId; @Schema(description = "字段标识;关联字段库") - private String fieldKey; + private String fldKy; @Schema(description = "用户填写的值") - private String fieldValue; + private String fldVal; @Schema(description = "创建时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstanceDataRespVO.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstanceDataRespVO.java index cfb344e..345d6af 100644 --- a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstanceDataRespVO.java +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstanceDataRespVO.java @@ -18,15 +18,15 @@ public class TemplateInstanceDataRespVO { @Schema(description = "关联实例主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "25824") @ExcelProperty("关联实例主键") - private String instanceId; + private String inscId; @Schema(description = "字段标识;关联字段库", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("字段标识;关联字段库") - private String fieldKey; + private String fldKy; @Schema(description = "用户填写的值", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("用户填写的值") - private String fieldValue; + private String fldVal; @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstanceDataSaveReqVO.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstanceDataSaveReqVO.java index ab71737..7f8d67a 100644 --- a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstanceDataSaveReqVO.java +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstanceDataSaveReqVO.java @@ -14,14 +14,14 @@ public class TemplateInstanceDataSaveReqVO { @Schema(description = "关联实例主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "25824") @NotEmpty(message = "关联实例主键不能为空") - private String instanceId; + private String inscId; @Schema(description = "字段标识;关联字段库", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "字段标识;关联字段库不能为空") - private String fieldKey; + private String fldKy; @Schema(description = "用户填写的值", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "用户填写的值不能为空") - private String fieldValue; + private String fldVal; } diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstancePageReqVO.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstancePageReqVO.java index d12f9d6..af77ab3 100644 --- a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstancePageReqVO.java +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstancePageReqVO.java @@ -14,31 +14,31 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ public class TemplateInstancePageReqVO extends PageParam { @Schema(description = "分类树主键", example = "7804") - private Long typeId; + private Long tpId; @Schema(description = "模板名称", example = "王五") private String name; @Schema(description = "模板编码") - private String coding; + private String cdg; @Schema(description = "模板描述") - private String description; + private String dsp; @Schema(description = "实例文件内容") - private String content; + private String cntt; @Schema(description = "原始文件内容") - private String originalContent; + private String origCntt; @Schema(description = "文件类型", example = "1") - private String fileType; + private String fileTp; @Schema(description = "版本号;如v1.0") - private String version; + private String ver; @Schema(description = "状态", example = "2") - private String status; + private String sts; @Schema(description = "创建时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstanceRespVO.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstanceRespVO.java index 45ca442..ed2017e 100644 --- a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstanceRespVO.java +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstanceRespVO.java @@ -18,7 +18,7 @@ public class TemplateInstanceRespVO { @Schema(description = "分类树主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "7804") @ExcelProperty("分类树主键") - private Long typeId; + private Long tpId; @Schema(description = "模板名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") @ExcelProperty("模板名称") @@ -26,31 +26,31 @@ public class TemplateInstanceRespVO { @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("模板编码") - private String coding; + private String cdg; @Schema(description = "模板描述") @ExcelProperty("模板描述") - private String description; + private String dsp; @Schema(description = "实例文件内容") @ExcelProperty("实例文件内容") - private String content; + private String cntt; @Schema(description = "原始文件内容", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("原始文件内容") - private String originalContent; + private String origCntt; @Schema(description = "文件类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @ExcelProperty("文件类型") - private String fileType; + private String fileTp; @Schema(description = "版本号;如v1.0", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("版本号;如v1.0") - private String version; + private String ver; @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @ExcelProperty("状态") - private String status; + private String sts; @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstanceSaveReqVO.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstanceSaveReqVO.java index 386de99..9eb3d98 100644 --- a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstanceSaveReqVO.java +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TemplateInstanceSaveReqVO.java @@ -14,7 +14,7 @@ public class TemplateInstanceSaveReqVO { @Schema(description = "分类树主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "7804") @NotNull(message = "分类树主键不能为空") - private Long typeId; + private Long tpId; @Schema(description = "模板名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") @NotEmpty(message = "模板名称不能为空") @@ -22,28 +22,33 @@ public class TemplateInstanceSaveReqVO { @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "模板编码不能为空") - private String coding; + private String cdg; @Schema(description = "模板描述") - private String description; + private String dsp; @Schema(description = "实例文件内容") - private String content; + private String cntt; @Schema(description = "原始文件内容", requiredMode = Schema.RequiredMode.REQUIRED) // @NotEmpty(message = "原始文件内容不能为空") - private String originalContent; + private String origCntt; @Schema(description = "文件类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotEmpty(message = "文件类型不能为空") - private String fileType; + private String fileTp; @Schema(description = "版本号;如v1.0", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "版本号;如v1.0不能为空") - private String version; + private String ver; @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotEmpty(message = "状态不能为空") - private String status; + private String sts; + + + @Schema(description = "使用部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotEmpty(message = "使用部门编号不能为空") + private List deptIds; } diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TmplTpEditOrDeleteReqVO.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TmplTpEditOrDeleteReqVO.java new file mode 100644 index 0000000..4e84184 --- /dev/null +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/controller/admin/templtp/vo/TmplTpEditOrDeleteReqVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.base.controller.admin.templtp.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import groovyjarjarantlr4.v4.runtime.misc.NotNull; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; +import lombok.NonNull; + + +import java.util.List; + +@Schema(description = "管理后台 - 模板编辑字段新增/删除 Request VO") +@Data +public class TmplTpEditOrDeleteReqVO { + + @Schema(description = "模版ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "20895") + @NotEmpty(message = "模版id不能为空") + private String tpId; + + @Schema(description = "操作类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "create or delete") + @NotEmpty(message = "操作类型不能为空") + private String type; + + @Schema(description = "变更的ids", requiredMode = Schema.RequiredMode.REQUIRED, example = "[20895,23231]") + @NotEmpty(message = "变更的ids不能为空") + private List ids; +} diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/dataobject/tmpltp/DepartmentInstanceRelativityDO.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/dataobject/tmpltp/DepartmentInstanceRelativityDO.java new file mode 100644 index 0000000..3aee2c5 --- /dev/null +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/dataobject/tmpltp/DepartmentInstanceRelativityDO.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.base.dal.dataobject.tmpltp; + +import lombok.*; +import java.util.*; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BusinessBaseDO; +/** +* 部门与实例关联 DO +* +* @author 后台管理 +*/ +@TableName("bse_dept_insc_rel") +@KeySequence("bse_dept_insc_rel_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class DepartmentInstanceRelativityDO extends BusinessBaseDO { + + + + /** + * 主键 + */ + @TableId(type = IdType.INPUT) + private String id; + /** + * 部门主键 + */ + @TableField("CPN_DEPT_ID") + private String companyDepartmentId; + /** + * 模板实例主键 + */ + @TableField("TMPL_INSC_ID") + private String templateInstanceId; + +} diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/dataobject/tmpltp/TemplateInstanceDO.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/dataobject/tmpltp/TemplateInstanceDO.java index 59e2f04..e6ce1b5 100644 --- a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/dataobject/tmpltp/TemplateInstanceDO.java +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/dataobject/tmpltp/TemplateInstanceDO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.base.dal.dataobject.tmpltp; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BusinessBaseDO; import lombok.*; import java.util.*; import java.time.LocalDateTime; @@ -22,7 +23,7 @@ import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; /** * 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO */ -public class TemplateInstanceDO extends BaseDO { +public class TemplateInstanceDO extends BusinessBaseDO { @@ -34,7 +35,7 @@ public class TemplateInstanceDO extends BaseDO { /** * 分类树主键 */ - private Long typeId; + private Long tpId; /** * 模板名称 */ @@ -42,50 +43,50 @@ public class TemplateInstanceDO extends BaseDO { /** * 模板编码 */ - private String coding; + private String cdg; /** * 模板描述 */ - private String description; + private String dsp; /** * 实例文件内容 */ - private String content; + private String cntt; /** * 原始文件内容 */ - private String originalContent; + private String origCntt; /** * 文件类型 */ - private String fileType; + private String fileTp; /** * 版本号;如v1.0 */ - private String version; + private String ver; /** * 状态 */ - private String status; - /** - * 公司编号 - */ - private Long companyId; - /** - * 公司名称 - */ - private String companyName; - /** - * 部门编号 - */ - private Long deptId; - /** - * 部门名称 - */ - private String deptName; - /** - * 岗位编号 - */ - private Long postId; + private String sts; +// /** +// * 公司编号 +// */ +// private Long companyId; +// /** +// * 公司名称 +// */ +// private String companyName; +// /** +// * 部门编号 +// */ +// private Long deptId; +// /** +// * 部门名称 +// */ +// private String deptName; +// /** +// * 岗位编号 +// */ +// private Long postId; } diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/dataobject/tmpltp/TemplateInstanceDataDO.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/dataobject/tmpltp/TemplateInstanceDataDO.java index 190ae6b..0f69b15 100644 --- a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/dataobject/tmpltp/TemplateInstanceDataDO.java +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/dataobject/tmpltp/TemplateInstanceDataDO.java @@ -35,16 +35,16 @@ public class TemplateInstanceDataDO extends BusinessBaseDO { * 关联实例主键 */ @TableField("INSC_ID") - private String instanceId; + private String inscId; /** * 字段标识;关联字段库 */ @TableField("FLD_KY") - private String fieldKey; + private String fldKy; /** * 用户填写的值 */ @TableField("FLD_VAL") - private String fieldValue; + private String fldVal; } diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/mysql/tmpltp/DepartmentInstanceRelativityMapper.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/mysql/tmpltp/DepartmentInstanceRelativityMapper.java new file mode 100644 index 0000000..ed5b17f --- /dev/null +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/mysql/tmpltp/DepartmentInstanceRelativityMapper.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.base.dal.mysql.tmpltp; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; + +import cn.iocoder.yudao.module.base.controller.admin.templtp.vo.DepartmentInstanceRelativityPageReqVO; +import cn.iocoder.yudao.module.base.dal.dataobject.tmpltp.DepartmentInstanceRelativityDO; +import org.apache.ibatis.annotations.Mapper; + + +/** + * 部门与实例关联 Mapper + * + * @author 后台管理 + */ +@Mapper +public interface DepartmentInstanceRelativityMapper extends BaseMapperX { + + default PageResult selectPage(DepartmentInstanceRelativityPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(DepartmentInstanceRelativityDO::getCompanyDepartmentId, reqVO.getCompanyDepartmentId()) + .eqIfPresent(DepartmentInstanceRelativityDO::getTemplateInstanceId, reqVO.getTemplateInstanceId()) + .betweenIfPresent(DepartmentInstanceRelativityDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(DepartmentInstanceRelativityDO::getId)); + } + +} diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/mysql/tmpltp/TemplateInstanceDataMapper.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/mysql/tmpltp/TemplateInstanceDataMapper.java index 770a66a..cd78e28 100644 --- a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/mysql/tmpltp/TemplateInstanceDataMapper.java +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/mysql/tmpltp/TemplateInstanceDataMapper.java @@ -21,9 +21,9 @@ public interface TemplateInstanceDataMapper extends BaseMapperX selectPage(TemplateInstanceDataPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(TemplateInstanceDataDO::getInstanceId, reqVO.getInstanceId()) - .eqIfPresent(TemplateInstanceDataDO::getFieldKey, reqVO.getFieldKey()) - .eqIfPresent(TemplateInstanceDataDO::getFieldValue, reqVO.getFieldValue()) + .eqIfPresent(TemplateInstanceDataDO::getInscId, reqVO.getInscId()) + .eqIfPresent(TemplateInstanceDataDO::getFldKy, reqVO.getFldKy()) + .eqIfPresent(TemplateInstanceDataDO::getFldVal, reqVO.getFldVal()) .betweenIfPresent(TemplateInstanceDataDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(TemplateInstanceDataDO::getId)); } diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/mysql/tmpltp/TemplateInstanceMapper.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/mysql/tmpltp/TemplateInstanceMapper.java index 9b70a79..35b30d9 100644 --- a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/mysql/tmpltp/TemplateInstanceMapper.java +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/dal/mysql/tmpltp/TemplateInstanceMapper.java @@ -21,15 +21,15 @@ public interface TemplateInstanceMapper extends BaseMapperX default PageResult selectPage(TemplateInstancePageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(TemplateInstanceDO::getTypeId, reqVO.getTypeId()) + .eqIfPresent(TemplateInstanceDO::getTpId, reqVO.getTpId()) .likeIfPresent(TemplateInstanceDO::getName, reqVO.getName()) - .eqIfPresent(TemplateInstanceDO::getCoding, reqVO.getCoding()) - .eqIfPresent(TemplateInstanceDO::getDescription, reqVO.getDescription()) - .eqIfPresent(TemplateInstanceDO::getContent, reqVO.getContent()) - .eqIfPresent(TemplateInstanceDO::getOriginalContent, reqVO.getOriginalContent()) - .eqIfPresent(TemplateInstanceDO::getFileType, reqVO.getFileType()) - .eqIfPresent(TemplateInstanceDO::getVersion, reqVO.getVersion()) - .eqIfPresent(TemplateInstanceDO::getStatus, reqVO.getStatus()) + .eqIfPresent(TemplateInstanceDO::getCdg, reqVO.getCdg()) + .eqIfPresent(TemplateInstanceDO::getDsp, reqVO.getDsp()) + .eqIfPresent(TemplateInstanceDO::getCntt, reqVO.getCntt()) + .eqIfPresent(TemplateInstanceDO::getOrigCntt, reqVO.getOrigCntt()) + .eqIfPresent(TemplateInstanceDO::getFileTp, reqVO.getFileTp()) + .eqIfPresent(TemplateInstanceDO::getVer, reqVO.getVer()) + .eqIfPresent(TemplateInstanceDO::getSts, reqVO.getSts()) .betweenIfPresent(TemplateInstanceDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(TemplateInstanceDO::getId)); } diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/DepartmentInstanceRelativityService.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/DepartmentInstanceRelativityService.java new file mode 100644 index 0000000..098a6de --- /dev/null +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/DepartmentInstanceRelativityService.java @@ -0,0 +1,65 @@ +package cn.iocoder.yudao.module.base.service.tmpltp; + +import java.util.*; + +import cn.iocoder.yudao.module.base.controller.admin.templtp.vo.DepartmentInstanceRelativityPageReqVO; +import cn.iocoder.yudao.module.base.controller.admin.templtp.vo.DepartmentInstanceRelativityRespVO; +import cn.iocoder.yudao.module.base.controller.admin.templtp.vo.DepartmentInstanceRelativitySaveReqVO; +import cn.iocoder.yudao.module.base.dal.dataobject.tmpltp.DepartmentInstanceRelativityDO; +import jakarta.validation.*; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 部门与实例关联 Service 接口 + * + * @author 后台管理 + */ +public interface DepartmentInstanceRelativityService { + + /** + * 创建部门与实例关联 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + DepartmentInstanceRelativityRespVO createDepartmentInstanceRelativity(@Valid DepartmentInstanceRelativitySaveReqVO createReqVO); + + /** + * 更新部门与实例关联 + * + * @param updateReqVO 更新信息 + */ + void updateDepartmentInstanceRelativity(@Valid DepartmentInstanceRelativitySaveReqVO updateReqVO); + + /** + * 删除部门与实例关联 + * + * @param id 编号 + */ + void deleteDepartmentInstanceRelativity(String id); + + /** + * 批量删除部门与实例关联 + * + * @param ids 编号 + */ + void deleteDepartmentInstanceRelativityListByIds(List ids); + + /** + * 获得部门与实例关联 + * + * @param id 编号 + * @return 部门与实例关联 + */ + DepartmentInstanceRelativityDO getDepartmentInstanceRelativity(String id); + + /** + * 获得部门与实例关联分页 + * + * @param pageReqVO 分页查询 + * @return 部门与实例关联分页 + */ + PageResult getDepartmentInstanceRelativityPage(DepartmentInstanceRelativityPageReqVO pageReqVO); + +} diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/DepartmentInstanceRelativityServiceImpl.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/DepartmentInstanceRelativityServiceImpl.java new file mode 100644 index 0000000..aeaa650 --- /dev/null +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/DepartmentInstanceRelativityServiceImpl.java @@ -0,0 +1,97 @@ +package cn.iocoder.yudao.module.base.service.tmpltp; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.module.base.controller.admin.templtp.vo.DepartmentInstanceRelativityPageReqVO; +import cn.iocoder.yudao.module.base.controller.admin.templtp.vo.DepartmentInstanceRelativityRespVO; +import cn.iocoder.yudao.module.base.controller.admin.templtp.vo.DepartmentInstanceRelativitySaveReqVO; +import cn.iocoder.yudao.module.base.dal.dataobject.tmpltp.DepartmentInstanceRelativityDO; +import cn.iocoder.yudao.module.base.dal.mysql.tmpltp.DepartmentInstanceRelativityMapper; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + + + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.diffList; +import static cn.iocoder.yudao.module.tmpltp.enums.ErrorCodeConstants.DEPARTMENT_INSTANCE_RELATIVITY_NOT_EXISTS; + + +/** + * 部门与实例关联 Service 实现类 + * + * @author 后台管理 + */ +@Service +@Validated +public class DepartmentInstanceRelativityServiceImpl implements DepartmentInstanceRelativityService { + + @Resource + private DepartmentInstanceRelativityMapper departmentInstanceRelativityMapper; + + @Override + public DepartmentInstanceRelativityRespVO createDepartmentInstanceRelativity(DepartmentInstanceRelativitySaveReqVO createReqVO) { + // 插入 + DepartmentInstanceRelativityDO departmentInstanceRelativity = BeanUtils.toBean(createReqVO, DepartmentInstanceRelativityDO.class); + departmentInstanceRelativityMapper.insert(departmentInstanceRelativity); + // 返回 + return BeanUtils.toBean(departmentInstanceRelativity, DepartmentInstanceRelativityRespVO.class); + } + + @Override + public void updateDepartmentInstanceRelativity(DepartmentInstanceRelativitySaveReqVO updateReqVO) { + // 校验存在 + validateDepartmentInstanceRelativityExists(updateReqVO.getId()); + // 更新 + DepartmentInstanceRelativityDO updateObj = BeanUtils.toBean(updateReqVO, DepartmentInstanceRelativityDO.class); + departmentInstanceRelativityMapper.updateById(updateObj); + } + + @Override + public void deleteDepartmentInstanceRelativity(String id) { + // 校验存在 + validateDepartmentInstanceRelativityExists(id); + // 删除 + departmentInstanceRelativityMapper.deleteById(id); + } + + @Override + public void deleteDepartmentInstanceRelativityListByIds(List ids) { + // 校验存在 + validateDepartmentInstanceRelativityExists(ids); + // 删除 + departmentInstanceRelativityMapper.deleteByIds(ids); + } + + private void validateDepartmentInstanceRelativityExists(List ids) { + List list = departmentInstanceRelativityMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(DEPARTMENT_INSTANCE_RELATIVITY_NOT_EXISTS); + } + } + + private void validateDepartmentInstanceRelativityExists(String id) { + if (departmentInstanceRelativityMapper.selectById(id) == null) { + throw exception(DEPARTMENT_INSTANCE_RELATIVITY_NOT_EXISTS); + } + } + + @Override + public DepartmentInstanceRelativityDO getDepartmentInstanceRelativity(String id) { + return departmentInstanceRelativityMapper.selectById(id); + } + + @Override + public PageResult getDepartmentInstanceRelativityPage(DepartmentInstanceRelativityPageReqVO pageReqVO) { + return departmentInstanceRelativityMapper.selectPage(pageReqVO); + } + +} diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/TemplateInstanceDataService.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/TemplateInstanceDataService.java index 164689c..412871f 100644 --- a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/TemplateInstanceDataService.java +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/TemplateInstanceDataService.java @@ -63,4 +63,21 @@ public interface TemplateInstanceDataService { */ PageResult getTemplateInstanceDataPage(TemplateInstanceDataPageReqVO pageReqVO); + /** + * 设置实例字段值 + * + * @param pageReqVOS 保存参数 + * @return 布尔类型 + */ + boolean setTemplateInstanceData(List pageReqVOS); + + + /** + * 清空实例字段值 + * + * @param instanceId ids + * @return 布尔类型 + */ + boolean clearTemplateInstanceData(String instanceId,List valIds); + } diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/TemplateInstanceDataServiceImpl.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/TemplateInstanceDataServiceImpl.java index 7cf9ceb..f72988f 100644 --- a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/TemplateInstanceDataServiceImpl.java +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/TemplateInstanceDataServiceImpl.java @@ -6,8 +6,12 @@ import cn.iocoder.yudao.module.base.controller.admin.templtp.vo.TemplateInstance import cn.iocoder.yudao.module.base.controller.admin.templtp.vo.TemplateInstanceDataSaveReqVO; import cn.iocoder.yudao.module.base.dal.dataobject.tmpltp.TemplateInstanceDataDO; import cn.iocoder.yudao.module.base.dal.mysql.tmpltp.TemplateInstanceDataMapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import java.util.*; @@ -18,6 +22,10 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.diffList; +import static cn.iocoder.yudao.module.base.enums.ErrorCodeConstants.*; +import static cn.iocoder.yudao.module.tmpltp.enums.ErrorCodeConstants.*; import static cn.iocoder.yudao.module.tmpltp.enums.ErrorCodeConstants.TEMPLATE_INSTANCE_DATA_NOT_EXISTS; /** @@ -89,4 +97,27 @@ public class TemplateInstanceDataServiceImpl implements TemplateInstanceDataServ return templateInstanceDataMapper.selectPage(pageReqVO); } + @Override + @Transactional + public boolean setTemplateInstanceData(List pageReqVOS) { + if (CollUtil.isEmpty(pageReqVOS)) { + throw exception(PARAMS_IS_NULL_OR_ERR); + } + return templateInstanceDataMapper.insertBatch(pageReqVOS); + } + + @Override + @Transactional + public boolean clearTemplateInstanceData(String instanceId, List valIds) { + if (CollUtil.isEmpty(valIds)|| instanceId.isEmpty()) { + throw exception(PARAMS_IS_NULL_OR_ERR); + } + int update = templateInstanceDataMapper.update(new LambdaUpdateWrapper().eq(TemplateInstanceDataDO::getInscId, instanceId).in(TemplateInstanceDataDO::getFldKy).set(TemplateInstanceDataDO::getFldVal, "")); + if (valIds.size()!= update){ + throw exception(OPERATION_FAIL); + } + return true; + } + + } diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/TemplateInstanceServiceImpl.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/TemplateInstanceServiceImpl.java index 43ebdb1..1c27e17 100644 --- a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/TemplateInstanceServiceImpl.java +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/TemplateInstanceServiceImpl.java @@ -6,12 +6,15 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.base.controller.admin.templtp.vo.TemplateInstancePageReqVO; import cn.iocoder.yudao.module.base.controller.admin.templtp.vo.TemplateInstanceRespVO; import cn.iocoder.yudao.module.base.controller.admin.templtp.vo.TemplateInstanceSaveReqVO; +import cn.iocoder.yudao.module.base.dal.dataobject.tmpltp.DepartmentInstanceRelativityDO; import cn.iocoder.yudao.module.base.dal.dataobject.tmpltp.TemplateInstanceDO; +import cn.iocoder.yudao.module.base.dal.mysql.tmpltp.DepartmentInstanceRelativityMapper; import cn.iocoder.yudao.module.base.dal.mysql.tmpltp.TemplateInstanceMapper; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; +import java.util.ArrayList; import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -29,13 +32,25 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService { @Resource private TemplateInstanceMapper templateInstanceMapper; + @Resource + private DepartmentInstanceRelativityMapper departmentInstanceRelativityMapper; @Override public TemplateInstanceRespVO createTemplateInstance(TemplateInstanceSaveReqVO createReqVO) { // 插入 TemplateInstanceDO templateInstance = BeanUtils.toBean(createReqVO, TemplateInstanceDO.class); templateInstanceMapper.insert(templateInstance); - // 返回 + + //构建使用部门 + List departmentInstanceRelativityDOS = new ArrayList<>(); + createReqVO.getDeptIds().forEach(deptId ->{ + DepartmentInstanceRelativityDO departmentInstanceRelativityDO = new DepartmentInstanceRelativityDO(); + departmentInstanceRelativityDO.setTemplateInstanceId(String.valueOf(templateInstance.getId())); + departmentInstanceRelativityDO.setCompanyId(deptId); + departmentInstanceRelativityDOS.add(departmentInstanceRelativityDO); + }); + departmentInstanceRelativityMapper.insertBatch(departmentInstanceRelativityDOS); + // 插入使用范围 return BeanUtils.toBean(templateInstance, TemplateInstanceRespVO.class); } @@ -48,7 +63,7 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService { // String originalContent = templateInstanceDO.getOriginalContent(); // 更新 TemplateInstanceDO updateObj = BeanUtils.toBean(updateReqVO, TemplateInstanceDO.class); - updateObj.setOriginalContent(null); //重新赋值,防止原始文件被更改 + updateObj.setOrigCntt(null); //重新赋值,防止原始文件被更改 templateInstanceMapper.updateById(updateObj); } diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/TmplTpService.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/TmplTpService.java index 7c70368..f303fa9 100644 --- a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/TmplTpService.java +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/TmplTpService.java @@ -15,7 +15,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; * * @author 后台管理 */ -public interface TmplTpService extends IService { +public interface TmplTpService extends IService { /** * 创建模板分类 @@ -40,10 +40,10 @@ public interface TmplTpService extends IService { void deleteTmplTp(List ids); /** - * 批量删除模板分类 - * - * @param ids 编号 - */ + * 批量删除模板分类 + * + * @param ids 编号 + */ void deleteTmplTpListByIds(List ids); /** @@ -62,9 +62,48 @@ public interface TmplTpService extends IService { */ PageResult getTmplTpPage(TmplTpPageReqVO pageReqVO); + /** + * 获得字段回显 + * + * @param id 编号 + * @return 模板分类 + */ + List getField(Long id); - List getField(Long id); - List getClause(Long id); + /** + * 获得条款回显 + * + * @param id 编号 + * @return 模板分类 + */ + List getClause(Long id); + + /** + * 树结构 + * + * @return 模板分类 + */ List buildTree(); + + /** + * 更新模板分类状态 + * + * @param id 编号 + * @param status 状态 + */ void updateStatus(Long id, String status); + + /** + * 字段编辑 + * + * @param reqVO 状态 + */ + void fieldEdit(TmplTpEditOrDeleteReqVO reqVO); + + /** + * 条款编辑 + * + * @param reqVO 状态 + */ + void ltmEdit(TmplTpEditOrDeleteReqVO reqVO); } diff --git a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/TmplTpServiceImpl.java b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/TmplTpServiceImpl.java index 59c8fa0..313fb07 100644 --- a/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/TmplTpServiceImpl.java +++ b/yudao-module-base/yudao-module-base-server/src/main/java/cn/iocoder/yudao/module/base/service/tmpltp/TmplTpServiceImpl.java @@ -192,6 +192,7 @@ public class TmplTpServiceImpl extends ServiceImpl imple baseMapper.update(Wrappers.lambdaUpdate().set(TmplTpDO::getSts, status).eq(TmplTpDO::getId, id)); } + private boolean validateStatusUpdate(Long id, String status) { TmplTpDO tmplTpDO = baseMapper.getTmplTpById(id); String currentSts = tmplTpDO.getSts(); @@ -208,19 +209,60 @@ public class TmplTpServiceImpl extends ServiceImpl imple return currentStatus.isTransitionAllowed(status); } - private boolean validateStatusCanDelete(List ids) { - Set sts = listByIds(ids).stream().map(TmplTpDO::getSts).collect(Collectors.toSet()); - List result = new ArrayList<>(); - sts.forEach(status -> { - StatusEnum currentStatus = StatusEnum.fromCode(status); - boolean transitionAllowed = false; - if (currentStatus != null) { - transitionAllowed = currentStatus.isTransitionAllowed(status); - } else { - result.add(false); - } - result.add(transitionAllowed); - }); - return !result.contains(false); +// private boolean validateStatusCanDelete(List ids) { +// Set sts = listByIds(ids).stream().map(TmplTpDO::getSts).collect(Collectors.toSet()); +// List result = new ArrayList<>(); +// sts.forEach(status -> { +// StatusEnum currentStatus = StatusEnum.fromCode(status); +// boolean transitionAllowed = false; +// if (currentStatus != null) { +// transitionAllowed = currentStatus.isTransitionAllowed(status); +// } else { +// result.add(false); +// } +// result.add(transitionAllowed); +// }); +// return !result.contains(false); +// } + + @Override + public void fieldEdit(TmplTpEditOrDeleteReqVO reqVO) { + if ("create".equals(reqVO.getType())) { + List tmplFldRelDOS = new ArrayList<>(); + reqVO.getIds().forEach(id -> { + TmplFldRelDO tmplFldRelDO = new TmplFldRelDO(); + tmplFldRelDO.setTmplTpId(reqVO.getTpId()); + tmplFldRelDO.setTpFldId(id); + tmplFldRelDOS.add(tmplFldRelDO); + }); + tmplFldRelMapper.insertBatch(tmplFldRelDOS); + }else if ("delete".equals(reqVO.getType())) { + tmplFldRelMapper.delete(Wrappers.lambdaQuery() + .eq(TmplFldRelDO::getTmplTpId, reqVO.getTpId()) + .in(TmplFldRelDO::getTpFldId, reqVO.getIds())); + }else { + throw exception(ILLEGAL_OPERATION_TYPE); + } } + + @Override + public void ltmEdit(TmplTpEditOrDeleteReqVO reqVO) { + if ("create".equals(reqVO.getType())) { + List tmplItmRelDOS = new ArrayList<>(); + reqVO.getIds().forEach(id -> { + TmplItmRelDO tmplItmRelDO = new TmplItmRelDO(); + tmplItmRelDO.setTmplTpId(reqVO.getTpId()); + tmplItmRelDO.setItmFldId(id); + tmplItmRelDOS.add(tmplItmRelDO); + }); + tmplItmRelMapper.insertBatch(tmplItmRelDOS); + }else if ("delete".equals(reqVO.getType())) { + tmplItmRelMapper.delete(Wrappers.lambdaQuery() + .eq(TmplItmRelDO::getTmplTpId, reqVO.getTpId()) + .in(TmplItmRelDO::getItmFldId, reqVO.getIds())); + }else { + throw exception(ILLEGAL_OPERATION_TYPE); + } + } + } diff --git a/yudao-module-base/yudao-module-base-server/src/main/resources/mapper/tmpltp/DepartmentInstanceRelativityMapper.xml b/yudao-module-base/yudao-module-base-server/src/main/resources/mapper/tmpltp/DepartmentInstanceRelativityMapper.xml new file mode 100644 index 0000000..bee1d65 --- /dev/null +++ b/yudao-module-base/yudao-module-base-server/src/main/resources/mapper/tmpltp/DepartmentInstanceRelativityMapper.xml @@ -0,0 +1,12 @@ + + + + + + + diff --git a/yudao-module-base/yudao-module-base-server/src/main/resources/mapper/tmpltp/TmplTpMapper.xml b/yudao-module-base/yudao-module-base-server/src/main/resources/mapper/tmpltp/TmplTpMapper.xml index b5b4b19..5f4684c 100644 --- a/yudao-module-base/yudao-module-base-server/src/main/resources/mapper/tmpltp/TmplTpMapper.xml +++ b/yudao-module-base/yudao-module-base-server/src/main/resources/mapper/tmpltp/TmplTpMapper.xml @@ -18,6 +18,8 @@ INNER JOIN BSE_TMPL_TP tp ON rel.TMPL_TP_ID = tp.ID AND tp.tenant_id = 1 WHERE itm.DELETED = 0 + AND rel.DELETED = 0 + AND tp.DELETED = 0 AND tp.id = #{id}