Преглед на файлове

项目类型管理功能

lizhenhao преди 2 години
родител
ревизия
b551864c7b

+ 118 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/typeDict/controller/ProgramTypeDictController.java

@@ -0,0 +1,118 @@
+package com.jeeplus.test.program.configuration.typeDict.controller;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.aop.logging.annotation.ApiLog;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.sys.constant.enums.LogTypeEnum;
+import com.jeeplus.sys.utils.StringUtils;
+import com.jeeplus.test.program.configuration.typeDict.domain.ProgramTypeDict;
+import com.jeeplus.test.program.configuration.typeDict.service.ProgramTypeDictService;
+import com.jeeplus.test.program.configuration.typeDict.service.dto.ProgramTypeDictDTO;
+import com.jeeplus.test.program.configuration.typeDict.service.mapstruct.ProgramTypeDictWrapper;
+import io.swagger.annotations.Api;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
+
+@Api("项目配置管理-项目类型管理")
+@RestController
+@RequestMapping(value = "/program/configuration/type")
+public class ProgramTypeDictController {
+
+    @Resource
+    private ProgramTypeDictService programTypeDictService;
+
+    /**
+     * 查询项目类型管理列表
+     * @param programTypeDictDTO
+     * @param page
+     * @return
+     * @throws Exception
+     */
+    @ApiLog("查询项目类型管理列表")
+    @PreAuthorize("hasAuthority('program:configuration:type:list')")
+    @GetMapping("list")
+    public ResponseEntity<IPage<ProgramTypeDictDTO>> data(ProgramTypeDictDTO programTypeDictDTO, Page<ProgramTypeDictDTO> page) throws Exception {
+        IPage<ProgramTypeDictDTO> result = new Page<ProgramTypeDictDTO>();
+        if(ObjectUtil.isNotEmpty(programTypeDictDTO)){
+            if(StringUtils.isNotBlank(programTypeDictDTO.getType())){
+                List<ProgramTypeDict> programTypeDictList = programTypeDictService.list(new QueryWrapper<ProgramTypeDict>().lambda()
+                        .like(StringUtils.isNotBlank(programTypeDictDTO.getType()), ProgramTypeDict::getType, programTypeDictDTO.getType())
+                );
+                List<String> pIdList = programTypeDictList.stream().distinct().filter(item->{
+                    if(!"0".equals(item.getParentId())){
+                        return true;
+                    }
+                    return false;
+                }).map(ProgramTypeDict::getParentId).collect(Collectors.toList());
+                List<String> IdList = programTypeDictList.stream().distinct().filter(item->{
+                    if("0".equals(item.getParentId())){
+                        return true;
+                    }
+                    return false;
+                }).map(ProgramTypeDict::getId).collect(Collectors.toList());
+                pIdList.addAll(IdList);
+                List<String> collect = pIdList.stream().distinct().collect(Collectors.toList());
+                if(CollectionUtil.isNotEmpty(collect)){
+                    QueryWrapper<ProgramTypeDict> wrapper = new QueryWrapper<ProgramTypeDict>()
+                            .in("ptd.id",collect)
+                            .or()
+                            .in("ptd.parent_id",collect);
+                    result = programTypeDictService.findList (page,wrapper);
+                }
+            }else{
+                result = programTypeDictService.findList (page,new QueryWrapper<ProgramTypeDict>());
+            }
+        }
+        return ResponseEntity.ok (result);
+    }
+
+    /**
+     * 查询项目类型管理数据
+     * @param id
+     * @return
+     */
+    @ApiLog("查询项目类型管理详情")
+    @PreAuthorize ("hasAnyAuthority('program:configuration:type:view','program:configuration:type:add','program:configuration:type:edit')")
+    @GetMapping("queryById")
+    public ResponseEntity queryById(@RequestParam("id") String id) {
+        ProgramTypeDictDTO programTypeDictDTO = programTypeDictService.queryById ( id );
+        return ResponseEntity.ok (programTypeDictDTO);
+    }
+
+    /**
+     * 保存项目类型
+     * @param programTypeDictDTO
+     * @return
+     */
+    @ApiLog(value = "修改/新增项目类型", type = LogTypeEnum.SAVE)
+    @PreAuthorize("hasAnyAuthority('program:configuration:type:save','program:configuration:type:edit')")
+    @PostMapping("save")
+    public ResponseEntity save(@Valid @RequestBody ProgramTypeDictDTO programTypeDictDTO) {
+        programTypeDictService.saveType(programTypeDictDTO);
+        return ResponseEntity.ok ("操作成功");
+    }
+
+    /**
+     * 删除项目类型
+     * @param ids
+     * @return
+     */
+    @ApiLog(value = "删除项目类型", type = LogTypeEnum.SAVE)
+    @PreAuthorize ("hasAuthority('program:configuration:type:del')")
+    @DeleteMapping("delete")
+    public ResponseEntity delete(String ids) {
+        return programTypeDictService.deleteByIds(ids);
+    }
+
+}

+ 44 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/typeDict/domain/ProgramTypeDict.java

@@ -0,0 +1,44 @@
+package com.jeeplus.test.program.configuration.typeDict.domain;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.domain.TreeEntity;
+import com.jeeplus.core.query.Query;
+import com.jeeplus.core.query.QueryType;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 
+ * @TableName program_type_dict
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("program_type_dict")
+public class ProgramTypeDict extends BaseEntity {
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 项目类型名称
+     */
+    private String type;
+
+    /**
+     * 父类型id
+     */
+    private String parentId;
+
+    /**
+     * 序号
+     */
+    private String sort;
+
+    private static final long serialVersionUID = 1L;
+}

+ 26 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/typeDict/mapper/ProgramTypeDictMapper.java

@@ -0,0 +1,26 @@
+package com.jeeplus.test.program.configuration.typeDict.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.program.configuration.typeDict.domain.ProgramTypeDict;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.program.configuration.typeDict.service.dto.ProgramTypeDictDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @Entity com.jeeplus.test.program.configuration.typeDict.domain.ProgramTypeDict
+ */
+@Mapper
+public interface ProgramTypeDictMapper extends BaseMapper<ProgramTypeDict> {
+
+    public IPage<ProgramTypeDictDTO> findList(Page<ProgramTypeDictDTO> page, @Param(Constants.WRAPPER) QueryWrapper<ProgramTypeDict> queryWrapper);
+
+    public ProgramTypeDictDTO queryById(@Param("id") String id);
+}
+
+
+
+

+ 46 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/typeDict/mapper/xml/ProgramTypeDictMapper.xml

@@ -0,0 +1,46 @@
+<?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.jeeplus.test.program.configuration.typeDict.mapper.ProgramTypeDictMapper">
+
+    <resultMap id="BaseResultMap" type="com.jeeplus.test.program.configuration.typeDict.service.dto.ProgramTypeDictDTO">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="createBy.id" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
+            <result property="updateBy.id" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+            <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
+            <result property="type" column="type" jdbcType="VARCHAR"/>
+            <result property="parentId" column="parent_id" jdbcType="VARCHAR"/>
+            <result property="sort" column="sort" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        ptd.id,
+        ptd.create_by,
+        ptd.create_date,
+        ptd.update_by,
+        ptd.update_date,
+        ptd.del_flag,
+        ptd.remarks,
+        ptd.type,
+        ptd.parent_id,
+        ptd.sort
+    </sql>
+
+    <select id="findList" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"></include>
+        from program_type_dict ptd
+        ${ew.customSqlSegment}
+    </select>
+
+    <select id="queryById" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"></include>
+        from program_type_dict ptd
+        where ptd.del_flag = '0' and ptd.id = ${id}
+    </select>
+</mapper>

+ 74 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/typeDict/service/ProgramTypeDictService.java

@@ -0,0 +1,74 @@
+package com.jeeplus.test.program.configuration.typeDict.service;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.jeeplus.core.service.TreeService;
+import com.jeeplus.sys.constant.CommonConstants;
+import com.jeeplus.sys.domain.Menu;
+import com.jeeplus.sys.service.dto.MenuDTO;
+import com.jeeplus.sys.utils.StringUtils;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimission;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionAudit;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionFiles;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionRea;
+import com.jeeplus.test.changes.dimission.mapper.ChangesDimissionReaMapper;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionDTO;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionFilesDTO;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionReaDTO;
+import com.jeeplus.test.changes.dimission.service.mapstruct.ChangesDimissionFilesWrapper;
+import com.jeeplus.test.changes.dimission.service.mapstruct.ChangesDimissionWrapper;
+import com.jeeplus.test.program.configuration.typeDict.domain.ProgramTypeDict;
+import com.jeeplus.test.program.configuration.typeDict.mapper.ProgramTypeDictMapper;
+import com.jeeplus.test.program.configuration.typeDict.service.dto.ProgramTypeDictDTO;
+import com.jeeplus.test.program.configuration.typeDict.service.mapstruct.ProgramTypeDictWrapper;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@Service
+@Transactional
+public class ProgramTypeDictService extends ServiceImpl<ProgramTypeDictMapper, ProgramTypeDict> {
+
+    @Resource
+    private ProgramTypeDictMapper programTypeDictMapper;
+
+    public IPage<ProgramTypeDictDTO> findList(Page<ProgramTypeDictDTO> page, QueryWrapper<ProgramTypeDict> queryWrapper){
+        queryWrapper.eq("ptd.del_flag","0");
+        return programTypeDictMapper.findList(page,queryWrapper);
+    }
+
+    public ProgramTypeDictDTO queryById(String id) {
+
+        ProgramTypeDictDTO programTypeDictDTO = programTypeDictMapper.queryById(id);
+
+        return programTypeDictDTO;
+    }
+
+    public ResponseEntity saveType(ProgramTypeDictDTO programTypeDictDTO) {
+        ProgramTypeDict programTypeDict = ProgramTypeDictWrapper.INSTANCE.toEntity(programTypeDictDTO);
+        this.saveOrUpdate(programTypeDict);
+        return ResponseEntity.ok("保存成功");
+    }
+
+    public ResponseEntity deleteByIds(String ids) {
+        String idArray[] =ids.split(",");
+        this.removeByIds (Lists.newArrayList (idArray));
+        return ResponseEntity.ok ("删除成功");
+    }
+}

+ 38 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/typeDict/service/dto/ProgramTypeDictDTO.java

@@ -0,0 +1,38 @@
+package com.jeeplus.test.program.configuration.typeDict.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 
+ * @TableName program_type_dict
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class ProgramTypeDictDTO extends BaseDTO {
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 项目类型名称
+     */
+    private String type;
+
+    /**
+     * 父类型id
+     */
+    private String parentId;
+
+    /**
+     * 序号
+     */
+    private String sort;
+
+    private static final long serialVersionUID = 1L;
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/typeDict/service/mapstruct/ProgramTypeDictWrapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.program.configuration.typeDict.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionHandover;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionHandoverDTO;
+import com.jeeplus.test.program.configuration.typeDict.domain.ProgramTypeDict;
+import com.jeeplus.test.program.configuration.typeDict.service.dto.ProgramTypeDictDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface ProgramTypeDictWrapper extends EntityWrapper<ProgramTypeDictDTO, ProgramTypeDict>{
+
+        ProgramTypeDictWrapper INSTANCE = Mappers.getMapper(ProgramTypeDictWrapper.class);
+
+}