Ver código fonte

Merge remote-tracking branch 'origin/dev' into dev

大数据与最优化研究所 1 ano atrás
pai
commit
205d4c9f87
19 arquivos alterados com 791 adições e 5 exclusões
  1. 16 1
      src/main/java/com/xjrsoft/module/ledger/controller/LedgerConfigController.java
  2. 100 0
      src/main/java/com/xjrsoft/module/ledger/controller/LedgerConfigReleaseController.java
  3. 44 0
      src/main/java/com/xjrsoft/module/ledger/dto/AddLedgerConfigReleaseDto.java
  4. 19 0
      src/main/java/com/xjrsoft/module/ledger/dto/LedgerConfigListDto.java
  5. 19 0
      src/main/java/com/xjrsoft/module/ledger/dto/LedgerConfigReleasePageDto.java
  6. 25 0
      src/main/java/com/xjrsoft/module/ledger/dto/UpdateLedgerConfigReleaseDto.java
  7. 99 0
      src/main/java/com/xjrsoft/module/ledger/entity/LedgerConfigRelease.java
  8. 26 0
      src/main/java/com/xjrsoft/module/ledger/mapper/LedgerConfigReleaseMapper.java
  9. 41 0
      src/main/java/com/xjrsoft/module/ledger/service/ILedgerConfigReleaseService.java
  10. 1 0
      src/main/java/com/xjrsoft/module/ledger/service/ILedgerConfigService.java
  11. 197 0
      src/main/java/com/xjrsoft/module/ledger/service/impl/LedgerConfigReleaseServiceImpl.java
  12. 0 2
      src/main/java/com/xjrsoft/module/ledger/service/impl/WfSubscriptionServiceImpl.java
  13. 36 0
      src/main/java/com/xjrsoft/module/ledger/vo/LedgerConfigListVo.java
  14. 0 2
      src/main/java/com/xjrsoft/module/ledger/vo/LedgerConfigPageVo.java
  15. 41 0
      src/main/java/com/xjrsoft/module/ledger/vo/LedgerConfigReleaseInfoVo.java
  16. 37 0
      src/main/java/com/xjrsoft/module/ledger/vo/LedgerConfigReleasePageVo.java
  17. 46 0
      src/main/java/com/xjrsoft/module/ledger/vo/LedgerConfigReleaseVo.java
  18. 13 0
      src/main/resources/mapper/ledger/LedgerConfigReleaseMapper.xml
  19. 31 0
      src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

+ 16 - 1
src/main/java/com/xjrsoft/module/ledger/controller/LedgerConfigController.java

@@ -49,7 +49,6 @@ public class LedgerConfigController {
     @ApiOperation(value="台账配置表列表(分页)")
     @SaCheckPermission("ledgerconfig:detail")
     public RT<PageOutput<LedgerConfigPageVo>> page(@Valid LedgerConfigPageDto dto){
-
         LambdaQueryWrapper<LedgerConfig> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.orderByDesc(LedgerConfig::getId).select(LedgerConfig.class,x -> VoToColumnUtil.fieldsToColumns(LedgerConfigPageVo.class).contains(x.getProperty()));
         IPage<LedgerConfig> page = ledgerConfigService.page(ConventPage.getPage(dto), queryWrapper);
@@ -57,6 +56,22 @@ public class LedgerConfigController {
         return RT.ok(pageOutput);
     }
 
+//    @GetMapping(value = "/list")
+//    @ApiOperation(value = "学生考核项目列表(不分页)")
+//    @SaCheckPermission("basestudentassessmentproject:detail")
+//    public RT<List<LedgerConfigListVo>> list(@Valid LedgerConfigListDto dto) {
+//
+//        LambdaQueryWrapper<LedgerConfig> queryWrapper = new LambdaQueryWrapper<>();
+//        queryWrapper
+//                .orderByDesc(LedgerConfig::getId)
+//                .eq(LedgerConfig::getDeleteMark, DeleteMark.NODELETE.getCode())
+//                .select(LedgerConfig.class, x -> VoToColumnUtil.fieldsToColumns(LedgerConfigListVo.class).contains(x.getProperty()));
+//
+//        List<LedgerConfig> list = ledgerConfigService.list(queryWrapper);
+//        List<LedgerConfigListVo> listVos = BeanUtil.copyToList(list, LedgerConfigListVo.class);
+//        return RT.ok(listVos);
+//    }
+
     @GetMapping(value = "/info")
     @ApiOperation(value="根据id查询台账配置表信息")
     @SaCheckPermission("ledgerconfig:detail")

+ 100 - 0
src/main/java/com/xjrsoft/module/ledger/controller/LedgerConfigReleaseController.java

@@ -0,0 +1,100 @@
+package com.xjrsoft.module.ledger.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.module.ledger.dto.AddLedgerConfigReleaseDto;
+import com.xjrsoft.module.ledger.dto.LedgerConfigReleasePageDto;
+import com.xjrsoft.module.ledger.dto.UpdateLedgerConfigReleaseDto;
+import com.xjrsoft.module.ledger.service.ILedgerConfigReleaseService;
+import com.xjrsoft.module.ledger.vo.LedgerConfigPageVo;
+import com.xjrsoft.module.ledger.vo.LedgerConfigReleaseInfoVo;
+import com.xjrsoft.module.ledger.vo.LedgerConfigReleasePageVo;
+import com.xjrsoft.module.ledger.vo.LedgerConfigReleaseVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+* @title: 台账发布表
+* @Author dzx
+* @Date: 2024-03-07
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/ledger" + "/ledgerConfigRelease")
+@Api(value = "/ledger"  + "/ledgerConfigRelease",tags = "台账发布表代码")
+@AllArgsConstructor
+public class LedgerConfigReleaseController {
+
+
+    private final ILedgerConfigReleaseService ledgerConfigReleaseService;
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="台账发布表列表(分页)")
+    @SaCheckPermission("ledgerconfigrelease:detail")
+    public RT<PageOutput<LedgerConfigReleasePageVo>> page(@Valid LedgerConfigReleasePageDto dto){
+        Page<LedgerConfigPageVo> page = ledgerConfigReleaseService.getPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
+        PageOutput<LedgerConfigReleasePageVo> pageOutput = ConventPage.getPageOutput(page, LedgerConfigReleasePageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询台账发布表信息")
+    @SaCheckPermission("ledgerconfigrelease:detail")
+    public RT<LedgerConfigReleaseVo> info(@RequestParam Long id){
+        LedgerConfigReleaseVo release = ledgerConfigReleaseService.getRelease(id);
+        if (release == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(release);
+    }
+
+    @GetMapping(value = "/config-into")
+    @ApiOperation(value="根据id查询台账菜单配置信息")
+    @SaCheckPermission("ledgerconfigrelease:detail")
+    public RT<LedgerConfigReleaseInfoVo> configInto(@RequestParam Long id){
+        LedgerConfigReleaseInfoVo release = ledgerConfigReleaseService.getConfigInfo(id);
+        if (release == null) {
+            return RT.error("找不到此数据!");
+        }
+        return RT.ok(release);
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增台账发布表")
+    @SaCheckPermission("ledgerconfigrelease:add")
+    public RT<Boolean> add(@Valid @RequestBody AddLedgerConfigReleaseDto dto){
+        boolean isSuccess = ledgerConfigReleaseService.addRelease(dto);
+        return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改台账发布表")
+    @SaCheckPermission("ledgerconfigrelease:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdateLedgerConfigReleaseDto dto){
+        return RT.ok(ledgerConfigReleaseService.updateRelease(dto));
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除台账发布表")
+    @SaCheckPermission("ledgerconfigrelease:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(ledgerConfigReleaseService.deleteRelease(ids));
+    }
+
+}

+ 44 - 0
src/main/java/com/xjrsoft/module/ledger/dto/AddLedgerConfigReleaseDto.java

@@ -0,0 +1,44 @@
+package com.xjrsoft.module.ledger.dto;
+
+import com.xjrsoft.module.form.entity.MenuConfig;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+
+
+/**
+* @title: 台账发布表
+* @Author dzx
+* @Date: 2024-03-07
+* @Version 1.0
+*/
+@Data
+public class AddLedgerConfigReleaseDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 台账配置(ledger_config)
+    */
+    @ApiModelProperty("台账配置id(ledger_config)")
+    private Long ledgerConfigId;
+    /**
+    * 备注信息
+    */
+    @ApiModelProperty("备注信息")
+    private String remark;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+
+    @Valid
+    @NotNull(message = "菜单配置不能为空")
+    private MenuConfig menuConfig;
+
+}

+ 19 - 0
src/main/java/com/xjrsoft/module/ledger/dto/LedgerConfigListDto.java

@@ -0,0 +1,19 @@
+package com.xjrsoft.module.ledger.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+/**
+* @title: 台账配置表分页查询入参
+* @Author dzx
+* @Date: 2024-03-06
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class LedgerConfigListDto extends PageInput {
+
+
+}

+ 19 - 0
src/main/java/com/xjrsoft/module/ledger/dto/LedgerConfigReleasePageDto.java

@@ -0,0 +1,19 @@
+package com.xjrsoft.module.ledger.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+/**
+* @title: 台账发布表分页查询入参
+* @Author dzx
+* @Date: 2024-03-07
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class LedgerConfigReleasePageDto extends PageInput {
+
+
+}

+ 25 - 0
src/main/java/com/xjrsoft/module/ledger/dto/UpdateLedgerConfigReleaseDto.java

@@ -0,0 +1,25 @@
+package com.xjrsoft.module.ledger.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+
+/**
+* @title: 台账发布表
+* @Author dzx
+* @Date: 2024-03-07
+* @Version 1.0
+*/
+@Data
+public class UpdateLedgerConfigReleaseDto extends AddLedgerConfigReleaseDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("发布id")
+    private Long id;
+
+}

+ 99 - 0
src/main/java/com/xjrsoft/module/ledger/entity/LedgerConfigRelease.java

@@ -0,0 +1,99 @@
+package com.xjrsoft.module.ledger.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+* @title: 台账发布表
+* @Author dzx
+* @Date: 2024-03-07
+* @Version 1.0
+*/
+@Data
+@TableName("ledger_config_release")
+@ApiModel(value = "ledger_config_release", description = "台账发布表")
+public class LedgerConfigRelease implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableId
+    private Long id;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date modifyDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 台账配置(ledger_config)
+    */
+    @ApiModelProperty("台账配置(ledger_config)")
+    private Long ledgerConfigId;
+    /**
+    * 菜单信息
+    */
+    @ApiModelProperty("菜单信息")
+    private Long menuId;
+    /**
+    * 台账配置信息
+    */
+    @ApiModelProperty("台账配置信息")
+    private String configJson;
+    /**
+    * 备注信息
+    */
+    @ApiModelProperty("备注信息")
+    private String remark;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+
+
+}

+ 26 - 0
src/main/java/com/xjrsoft/module/ledger/mapper/LedgerConfigReleaseMapper.java

@@ -0,0 +1,26 @@
+package com.xjrsoft.module.ledger.mapper;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.ledger.dto.LedgerConfigReleasePageDto;
+import com.xjrsoft.module.ledger.entity.LedgerConfigRelease;
+import com.xjrsoft.module.ledger.vo.LedgerConfigPageVo;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 台账发布表
+* @Author dzx
+* @Date: 2024-03-07
+* @Version 1.0
+*/
+@Mapper
+public interface LedgerConfigReleaseMapper extends MPJBaseMapper<LedgerConfigRelease> {
+
+    /**
+     * 分页查询
+     * @param page
+     * @param dto
+     * @return
+     */
+    Page<LedgerConfigPageVo> getPage(Page<LedgerConfigPageVo> page, LedgerConfigReleasePageDto dto);
+}

+ 41 - 0
src/main/java/com/xjrsoft/module/ledger/service/ILedgerConfigReleaseService.java

@@ -0,0 +1,41 @@
+package com.xjrsoft.module.ledger.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.ledger.dto.AddLedgerConfigReleaseDto;
+import com.xjrsoft.module.ledger.dto.LedgerConfigReleasePageDto;
+import com.xjrsoft.module.ledger.dto.UpdateLedgerConfigReleaseDto;
+import com.xjrsoft.module.ledger.entity.LedgerConfigRelease;
+import com.xjrsoft.module.ledger.vo.LedgerConfigPageVo;
+import com.xjrsoft.module.ledger.vo.LedgerConfigReleaseInfoVo;
+import com.xjrsoft.module.ledger.vo.LedgerConfigReleaseVo;
+
+import java.util.List;
+
+/**
+* @title: 台账发布表
+* @Author dzx
+* @Date: 2024-03-07
+* @Version 1.0
+*/
+
+public interface ILedgerConfigReleaseService extends MPJBaseService<LedgerConfigRelease> {
+
+    /**
+     * 分页查询
+     * @param page
+     * @param dto
+     * @return
+     */
+    Page<LedgerConfigPageVo> getPage(Page<LedgerConfigPageVo> page, LedgerConfigReleasePageDto dto);
+
+    Boolean addRelease(AddLedgerConfigReleaseDto dto);
+
+    Boolean updateRelease(UpdateLedgerConfigReleaseDto dto);
+
+    Boolean deleteRelease(List<Long> ids);
+
+    LedgerConfigReleaseVo getRelease(Long id);
+
+    LedgerConfigReleaseInfoVo getConfigInfo(Long id);
+}

+ 1 - 0
src/main/java/com/xjrsoft/module/ledger/service/ILedgerConfigService.java

@@ -11,4 +11,5 @@ import com.xjrsoft.module.ledger.entity.LedgerConfig;
 */
 
 public interface ILedgerConfigService extends MPJBaseService<LedgerConfig> {
+
 }

+ 197 - 0
src/main/java/com/xjrsoft/module/ledger/service/impl/LedgerConfigReleaseServiceImpl.java

@@ -0,0 +1,197 @@
+package com.xjrsoft.module.ledger.service.impl;
+
+import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.RandomUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.common.enums.DeleteMark;
+import com.xjrsoft.common.enums.EnabledMark;
+import com.xjrsoft.common.enums.MenuType;
+import com.xjrsoft.common.enums.YesOrNoEnum;
+import com.xjrsoft.common.exception.MyException;
+import com.xjrsoft.module.form.entity.MenuConfig;
+import com.xjrsoft.module.ledger.dto.AddLedgerConfigReleaseDto;
+import com.xjrsoft.module.ledger.dto.LedgerConfigReleasePageDto;
+import com.xjrsoft.module.ledger.dto.UpdateLedgerConfigReleaseDto;
+import com.xjrsoft.module.ledger.entity.LedgerConfig;
+import com.xjrsoft.module.ledger.entity.LedgerConfigRelease;
+import com.xjrsoft.module.ledger.mapper.LedgerConfigMapper;
+import com.xjrsoft.module.ledger.mapper.LedgerConfigReleaseMapper;
+import com.xjrsoft.module.ledger.service.ILedgerConfigReleaseService;
+import com.xjrsoft.module.ledger.vo.LedgerConfigPageVo;
+import com.xjrsoft.module.ledger.vo.LedgerConfigReleaseInfoVo;
+import com.xjrsoft.module.ledger.vo.LedgerConfigReleaseVo;
+import com.xjrsoft.module.system.entity.Menu;
+import com.xjrsoft.module.system.service.IMenuService;
+import lombok.AllArgsConstructor;
+import lombok.SneakyThrows;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+* @title: 台账发布表
+* @Author dzx
+* @Date: 2024-03-07
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class LedgerConfigReleaseServiceImpl extends MPJBaseServiceImpl<LedgerConfigReleaseMapper, LedgerConfigRelease> implements ILedgerConfigReleaseService {
+
+    private final LedgerConfigReleaseMapper ledgerConfigReleaseMapper;
+    private final LedgerConfigMapper ledgerConfigMapper;
+    private final IMenuService menuService;
+
+    @Override
+    public Page<LedgerConfigPageVo> getPage(Page<LedgerConfigPageVo> page, LedgerConfigReleasePageDto dto) {
+        return ledgerConfigReleaseMapper.getPage(page, dto);
+    }
+
+    @Override
+    public Boolean addRelease(AddLedgerConfigReleaseDto dto) {
+        boolean exists = menuService.count(Wrappers.<Menu>lambdaQuery().eq(Menu::getCode, dto.getMenuConfig().getCode())) > 0;
+        if (exists) {
+            throw new MyException("菜单编码已存在");
+        }
+
+        long releaseId = IdUtil.getSnowflakeNextId();
+
+        Long menuId = IdUtil.getSnowflakeNextId();
+        insertMenuConfig(dto.getMenuConfig(), releaseId, menuId);
+
+        LedgerConfig ledgerConfig = ledgerConfigMapper.selectById(dto.getLedgerConfigId());
+        LedgerConfigRelease configRelease = new LedgerConfigRelease();
+        configRelease.setId(releaseId);
+        configRelease.setConfigJson(ledgerConfig.getConfigJson());
+        configRelease.setMenuId(menuId);
+        configRelease.setLedgerConfigId(dto.getLedgerConfigId());
+        configRelease.setDeleteMark(DeleteMark.NODELETE.getCode());
+        configRelease.setEnabledMark(EnabledMark.ENABLED.getCode());
+        configRelease.setCreateUserId(StpUtil.getLoginIdAsLong());
+        configRelease.setCreateDate(new Date());
+        configRelease.setRemark(dto.getRemark());
+        configRelease.setSortCode(dto.getMenuConfig().getSortCode());
+        return ledgerConfigReleaseMapper.insert(configRelease) > 0;
+    }
+
+    @Override
+    public Boolean updateRelease(UpdateLedgerConfigReleaseDto dto) {
+        LedgerConfigRelease configRelease = ledgerConfigReleaseMapper.selectById(dto.getId());
+        boolean exists = menuService.count(
+                Wrappers.<Menu>lambdaQuery()
+                        .eq(Menu::getCode, dto.getMenuConfig().getCode())
+                        .ne(Menu::getId, configRelease.getMenuId())
+        ) > 0;
+        if (exists) {
+            throw new MyException("菜单编码已存在");
+        }
+        Menu menu = menuService.getById(configRelease.getMenuId());
+
+        insertMenuConfig(dto.getMenuConfig(), dto.getId(), menu.getId());
+        LedgerConfig ledgerConfig = ledgerConfigMapper.selectById(dto.getLedgerConfigId());
+        LedgerConfigRelease configReleaseUpd = new LedgerConfigRelease();
+        configReleaseUpd.setId(dto.getId());
+        configReleaseUpd.setConfigJson(ledgerConfig.getConfigJson());
+        configReleaseUpd.setMenuId(menu.getId());
+        configReleaseUpd.setLedgerConfigId(dto.getLedgerConfigId());
+        configReleaseUpd.setDeleteMark(DeleteMark.NODELETE.getCode());
+        configReleaseUpd.setEnabledMark(EnabledMark.ENABLED.getCode());
+        configReleaseUpd.setCreateUserId(StpUtil.getLoginIdAsLong());
+        configReleaseUpd.setCreateDate(new Date());
+        configReleaseUpd.setModifyDate(new Date());
+        configReleaseUpd.setModifyUserId(StpUtil.getLoginIdAsLong());
+        configReleaseUpd.setRemark(dto.getRemark());
+        configReleaseUpd.setSortCode(dto.getMenuConfig().getSortCode());
+        return ledgerConfigReleaseMapper.updateById(configReleaseUpd) > 0;
+    }
+
+    @Override
+    public Boolean deleteRelease(List<Long> ids) {
+        for (Long id : ids) {
+            LedgerConfigRelease release = ledgerConfigReleaseMapper.selectById(id);
+            ledgerConfigReleaseMapper.deleteById(id);
+
+            menuService.removeById(release.getMenuId());
+        }
+        return true;
+    }
+
+    @Override
+    public LedgerConfigReleaseVo getRelease(Long id) {
+        LedgerConfigRelease release = ledgerConfigReleaseMapper.selectById(id);
+        if (release == null) {
+            throw new MyException("未能找到发布信息");
+        }
+        Menu menu = menuService.getById(release.getMenuId());
+        LedgerConfigReleaseVo vo = new LedgerConfigReleaseVo();
+        vo.setId(id);
+        vo.setLedgerConfigId(release.getLedgerConfigId());
+        vo.setRemark(release.getRemark());
+        vo.setSortCode(release.getSortCode());
+        MenuConfig menuConfig = new MenuConfig();
+        menuConfig.setIcon(menu.getIcon());
+        menuConfig.setCode(menu.getCode());
+        menuConfig.setName(menu.getTitle());
+        menuConfig.setParentId(menu.getParentId().toString());
+        menuConfig.setRemark(menu.getRemark());
+        menuConfig.setSortCode(menu.getSortCode());
+        vo.setMenuConfig(menuConfig);
+        return vo;
+    }
+
+    @Override
+    public LedgerConfigReleaseInfoVo getConfigInfo(Long id) {
+        LedgerConfigRelease release = ledgerConfigReleaseMapper.selectById(id);
+        Menu menu = menuService.getById(release.getMenuId());
+        LedgerConfig ledgerConfig = ledgerConfigMapper.selectById(release.getLedgerConfigId());
+        LedgerConfigReleaseInfoVo vo = new LedgerConfigReleaseInfoVo();
+        vo.setConfigJson(release.getConfigJson());
+        vo.setLedgerName(ledgerConfig.getName());
+        vo.setMenuName(menu.getTitle());
+        vo.setId(release.getId());
+        return vo;
+    }
+
+    /**
+     * 初始化菜单数据
+     * @param menuConfig 菜单配置信息
+     * @param releaseId 发布id
+     * @param menuId 菜单id
+     * @return 菜单id
+     */
+    @SneakyThrows
+    private Long insertMenuConfig(MenuConfig menuConfig, Long releaseId, Long menuId) {
+        Menu menu = BeanUtil.toBean(menuConfig, Menu.class);
+        Menu parentMenu = menuService.getById(menuConfig.getParentId());
+        menu.setId(menuId);
+        menu.setName(menuConfig.getName() + RandomUtil.randomNumbers(4));
+        menu.setTitle(menuConfig.getName());
+        menu.setMenuType(MenuType.FUNCTION.getCode());
+        menu.setDisplay(YesOrNoEnum.YES.getCode());
+        menu.setAllowDelete(YesOrNoEnum.YES.getCode());
+        menu.setSystemId(parentMenu.getSystemId());
+        menu.setSystemType(parentMenu.getSystemType());
+        menu.setAllowModify(YesOrNoEnum.YES.getCode());
+        menu.setOutLink(YesOrNoEnum.NO.getCode());
+        menu.setKeepAlive(YesOrNoEnum.NO.getCode());
+        menu.setSortCode(menuConfig.getSortCode());
+        menu.setParentId(StrUtil.isBlank(menuConfig.getParentId()) ? 0L : Long.parseLong(menuConfig.getParentId()));
+
+        menu.setComponentType(YesOrNoEnum.YES.getCode());
+        //固定路径  与前端必须匹配
+        menu.setPath("/ledger/template/" + Convert.toStr(releaseId));
+        menu.setComponent("/ledger/template/index");
+
+        //新增菜单
+        menuService.saveOrUpdate(menu);
+
+        return menu.getId();
+    }
+}

+ 0 - 2
src/main/java/com/xjrsoft/module/ledger/service/impl/WfSubscriptionServiceImpl.java

@@ -19,8 +19,6 @@ import com.xjrsoft.module.ledger.vo.WfSubscriptionListInfoVo;
 import com.xjrsoft.module.ledger.vo.WfSubscriptionListVo;
 import com.xjrsoft.module.ledger.vo.WfSubscriptionPageVo;
 import com.xjrsoft.module.ledger.vo.WorkflowRecordVo;
-import com.xjrsoft.module.student.entity.BaseStudentAssessmentItem;
-import com.xjrsoft.module.student.vo.BaseStudentAssessmentItemPageVo;
 import com.xjrsoft.module.system.entity.File;
 import com.xjrsoft.module.system.service.IFileService;
 import com.xjrsoft.module.workflow.entity.WorkflowExtra;

+ 36 - 0
src/main/java/com/xjrsoft/module/ledger/vo/LedgerConfigListVo.java

@@ -0,0 +1,36 @@
+package com.xjrsoft.module.ledger.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 台账配置表分页列表出参
+* @Author dzx
+* @Date: 2024-03-06
+* @Version 1.0
+*/
+@Data
+public class LedgerConfigListVo {
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private String id;
+    /**
+    * 台账名称
+    */
+    @ApiModelProperty("台账名称")
+    private String name;
+    /**
+    * magicapi接口地址
+    */
+    @ApiModelProperty("magicapi接口地址")
+    private String apiUrl;
+    /**
+    * 台账配置信息
+    */
+    @ApiModelProperty("台账配置信息")
+    private String configJson;
+
+}

+ 0 - 2
src/main/java/com/xjrsoft/module/ledger/vo/LedgerConfigPageVo.java

@@ -3,8 +3,6 @@ package com.xjrsoft.module.ledger.vo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import java.util.Date;
-
 /**
 * @title: 台账配置表分页列表出参
 * @Author dzx

+ 41 - 0
src/main/java/com/xjrsoft/module/ledger/vo/LedgerConfigReleaseInfoVo.java

@@ -0,0 +1,41 @@
+package com.xjrsoft.module.ledger.vo;
+
+import com.xjrsoft.module.form.entity.MenuConfig;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+
+/**
+* @title: 台账发布表表单出参
+* @Author dzx
+* @Date: 2024-03-07
+* @Version 1.0
+*/
+@Data
+public class LedgerConfigReleaseInfoVo {
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+    /**
+     * 台账配置(ledger_config)
+     */
+    @ApiModelProperty("台账名称")
+    private String ledgerName;
+    /**
+     * 备注信息
+     */
+    @ApiModelProperty("备注信息")
+    private String menuName;
+
+    @Valid
+    @NotNull(message = "台账配置信息")
+    private String configJson;
+
+
+
+}

+ 37 - 0
src/main/java/com/xjrsoft/module/ledger/vo/LedgerConfigReleasePageVo.java

@@ -0,0 +1,37 @@
+package com.xjrsoft.module.ledger.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 台账发布表分页列表出参
+* @Author dzx
+* @Date: 2024-03-07
+* @Version 1.0
+*/
+@Data
+public class LedgerConfigReleasePageVo {
+
+    /**
+     *
+     */
+    @ApiModelProperty("")
+    private String id;
+    /**
+     * 台账名称
+     */
+    @ApiModelProperty("台账名称")
+    private String ledgerName;
+    /**
+     * 菜单名称
+     */
+    @ApiModelProperty("菜单名称")
+    private String menuName;
+    /**
+     * 备注
+     */
+    @ApiModelProperty("备注")
+    private String remark;
+
+
+}

+ 46 - 0
src/main/java/com/xjrsoft/module/ledger/vo/LedgerConfigReleaseVo.java

@@ -0,0 +1,46 @@
+package com.xjrsoft.module.ledger.vo;
+
+import com.xjrsoft.module.form.entity.MenuConfig;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+
+/**
+* @title: 台账发布表表单出参
+* @Author dzx
+* @Date: 2024-03-07
+* @Version 1.0
+*/
+@Data
+public class LedgerConfigReleaseVo {
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+    /**
+     * 台账配置(ledger_config)
+     */
+    @ApiModelProperty("台账配置id(ledger_config)")
+    private Long ledgerConfigId;
+    /**
+     * 备注信息
+     */
+    @ApiModelProperty("备注信息")
+    private String remark;
+    /**
+     * 序号
+     */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+
+    @Valid
+    @NotNull(message = "菜单配置不能为空")
+    private MenuConfig menuConfig;
+
+
+
+}

+ 13 - 0
src/main/resources/mapper/ledger/LedgerConfigReleaseMapper.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xjrsoft.module.ledger.mapper.LedgerConfigReleaseMapper">
+    <select id="getPage" parameterType="com.xjrsoft.module.ledger.dto.LedgerConfigReleasePageDto" resultType="com.xjrsoft.module.ledger.vo.LedgerConfigReleasePageVo">
+        SELECT t1.id, t3.name AS ledger_name,t2.title AS menu_name,t1.remark FROM ledger_config_release t1
+        LEFT JOIN xjr_menu t2 ON t1.menu_id = t2.id
+        LEFT JOIN ledger_config t3 ON t1.ledger_config_id = t3.id
+        WHERE t1.delete_mark = 0
+    </select>
+
+</mapper>

+ 31 - 0
src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

@@ -2315,4 +2315,35 @@ public class FreeMarkerGeneratorTest {
         apiGeneratorService.generateCodes(params);
 
     }
+
+    /**
+     * 考核项目表
+     *
+     * @throws IOException
+     */
+    @Test
+    public void gcLedgerConfigRelease() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("ledger_config_release");//init_sql中的表名
+        mainTable.setIsMain(true);//是否是主表,一般默认为true
+        mainTable.setPkField(GlobalConstant.DEFAULT_PK);//设置主键
+        mainTable.setPkType(GlobalConstant.DEFAULT_PK_TYPE);//设置主键类型
+        tableConfigs.add(mainTable);
+
+        ApiGenerateCodesDto params = new ApiGenerateCodesDto();
+        params.setAuthor("dzx");//作者名称
+        params.setPackageName("ledger");//包名
+        params.setTableConfigs(tableConfigs);
+        params.setPage(true);//是否生成分页接口
+        params.setImport(false);//是否生成导入接口
+        params.setExport(false);//是否生成导出接口
+        params.setOutMainDir(true);//是否生成在主目录,前期测试可设置成false
+        params.setDs(ds);
+
+        IApiGeneratorService apiGeneratorService = new ApiGeneratorServiceImpl();
+
+        apiGeneratorService.generateCodes(params);
+
+    }
 }