Compare commits

..

3 Commits

Author SHA1 Message Date
PQZ
9094191311 合同模板 2024-08-08 17:33:24 +08:00
PQZ
070321be8d Merge branch 'master' of http://122.51.230.86:3000/dianliang/lanan-system 2024-08-08 11:41:09 +08:00
PQZ
a165906290 1 2024-08-08 11:40:58 +08:00
15 changed files with 543 additions and 0 deletions

View File

@ -0,0 +1,15 @@
package cn.iocoder.yudao.module.cont.controller.admin;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Tag(name = "管理后台 - 数据项")
@RestController
@RequestMapping("/base/cont-data")
@Validated
public class BaseContDataController {
}

View File

@ -0,0 +1,121 @@
package cn.iocoder.yudao.module.cont.controller.admin;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.cont.entity.BaseContTemp;
import cn.iocoder.yudao.module.cont.service.BaseContTempService;
import cn.iocoder.yudao.module.cont.vo.BaseContTempPageReqVO;
import cn.iocoder.yudao.module.cont.vo.BaseContTempRespVO;
import cn.iocoder.yudao.module.cont.vo.BaseContTempSaveReqVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Tag(name = "管理后台 - 合同模板")
@RestController
@RequestMapping("/base/cont-temp")
@Validated
public class BaseContTempController {
@Resource
private BaseContTempService contTempService;
/**
* 合同模板分页列表查询
*
* @param pageReqVO BaseContTempPageReqVO实体
* @param pageNo 分页参数
* @param pageSize 分页参数
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<com.baomidou.mybatisplus.core.metadata.IPage < ?>>
* @author PQZ
* @date 10:46 2024/8/8
**/
@GetMapping("/page")
@Operation(summary = "获得合同模板分页")
@PreAuthorize("@ss.hasPermission('base:cont-temp:query')")
public CommonResult<IPage<?>> getContTempPage(BaseContTempPageReqVO pageReqVO,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
Page<BaseContTempRespVO> page = new Page<>(pageNo, pageSize);
return success(contTempService.getContTempPage(pageReqVO, page));
}
/**
* 创建合同模板
*
* @param createReqVO BaseContTempSaveReqVO
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<java.lang.String>
* @author PQZ
* @date 17:11 2024/8/8
**/
@PostMapping("/create")
@Operation(summary = "创建合同模板")
@PreAuthorize("@ss.hasPermission('base:cont-temp:create')")
public CommonResult<Boolean> createContTemp(@Valid @RequestBody BaseContTempSaveReqVO createReqVO) {
contTempService.saveConTemp(createReqVO);
return success(true);
}
/**
* 编辑合同模板
*
* @param updateReqVO BaseContTempSaveReqVO
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<java.lang.Boolean>
* @author PQZ
* @date 17:11 2024/8/8
**/
@PutMapping("/update")
@Operation(summary = "更新合同模板")
@PreAuthorize("@ss.hasPermission('base:cont-temp:update')")
public CommonResult<Boolean> updateContTemp(@Valid @RequestBody BaseContTempSaveReqVO updateReqVO) {
contTempService.saveConTemp(updateReqVO);
return success(true);
}
/**
* 删除合同模板
*
* @param id 合同模板id
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<java.lang.Boolean>
* @author PQZ
* @date 17:12 2024/8/8
**/
@DeleteMapping("/delete")
@Operation(summary = "删除合同模板")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('base:cont-temp:delete')")
public CommonResult<Boolean> deleteContTemp(@RequestParam("id") String id) {
contTempService.deleteContTemp(id);
return success(true);
}
/**
* 通过id查询合同模板
*
* @param id id
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<cn.iocoder.yudao.module.cont.vo.BaseContTempRespVO>
* @author PQZ
* @date 17:12 2024/8/8
**/
@GetMapping("/get")
@Operation(summary = "获得合同模板")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('base:cont-temp:query')")
public CommonResult<BaseContTempRespVO> getContTemp(@RequestParam("id") String id) {
BaseContTemp contTemp = contTempService.getContTemp(id);
return success(BeanUtils.toBean(contTemp, BaseContTempRespVO.class));
}
}

View File

@ -0,0 +1,51 @@
package cn.iocoder.yudao.module.cont.entity;
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* 数据项 DO
*
* @author pqz
*/
@TableName("dl_base_cont_data")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BaseContData extends TenantBaseDO {
/**
* 主键标识
*/
@TableId(type = IdType.ASSIGN_UUID)
private String id;
/**
* 合同模板id
*/
private String mainId;
/**
* 数据项名称
*/
private String itemName;
/**
* 数据项编码
*/
private String itemCode;
/**
* 数据项类型
*/
private String itemType;
/**
* 是否有效0否1是
*/
private String isValid;
}

View File

@ -0,0 +1,59 @@
package cn.iocoder.yudao.module.cont.entity;
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* 合同模板 DO
*
* @author pqz
*/
@TableName("dl_base_cont_temp")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BaseContTemp extends TenantBaseDO {
/**
* 主键标识
*/
@TableId(type = IdType.ASSIGN_UUID)
private String id;
/**
* 模板编号
*/
private String tempCode;
/**
* 模板类型
*/
private String tempType;
/**
* 模板用途
*/
private String tempUse;
/**
* 模板名称
*/
private String tempName;
/**
* 是否有效0否1是
*/
private String isValid;
/**
* 状态
*/
private String status;
/**
* 模板内容
*/
private String tempContent;
}

View File

@ -0,0 +1,16 @@
package cn.iocoder.yudao.module.cont.mapper;
import cn.iocoder.yudao.module.cont.entity.BaseContData;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* 数据项 Mapper
*
* @author pqz
*/
@Mapper
public interface BaseContDataMapper extends BaseMapper<BaseContData> {
}

View File

@ -0,0 +1,32 @@
package cn.iocoder.yudao.module.cont.mapper;
import cn.iocoder.yudao.module.cont.entity.BaseContTemp;
import cn.iocoder.yudao.module.cont.vo.BaseContTempPageReqVO;
import cn.iocoder.yudao.module.cont.vo.BaseContTempRespVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 合同模板 Mapper
*
* @author pqz
*/
@Mapper
public interface BaseContTempMapper extends BaseMapper<BaseContTemp> {
/**
* 合同模板分页列表查询
*
* @param pageReqVO 合同模板pageReq扩展类
* @param page 分页参数
* @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.cont.vo.BaseContTempRespVO>
* @author PQZ
* @date 10:40 2024/8/8
**/
IPage<BaseContTempRespVO> selectListPage(@Param("entity") BaseContTempPageReqVO pageReqVO, Page<BaseContTempRespVO> page);
}

View File

@ -0,0 +1,14 @@
package cn.iocoder.yudao.module.cont.service;
import cn.iocoder.yudao.module.cont.entity.BaseContData;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* 数据项 Service 接口
*
* @author pqz
*/
public interface BaseContDataService extends IService<BaseContData> {
}

View File

@ -0,0 +1,61 @@
package cn.iocoder.yudao.module.cont.service;
import cn.iocoder.yudao.module.cont.entity.BaseContTemp;
import cn.iocoder.yudao.module.cont.vo.BaseContTempPageReqVO;
import cn.iocoder.yudao.module.cont.vo.BaseContTempRespVO;
import cn.iocoder.yudao.module.cont.vo.BaseContTempSaveReqVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.validation.Valid;
/**
* 合同模板 Service 接口
*
* @author pqz
*/
public interface BaseContTempService extends IService<BaseContTemp> {
/**
* 保存合同模板
*
* @param reqVo BaseContTempSaveReqVO
* @return void
* @author PQZ
* @date 17:13 2024/8/8
**/
void saveConTemp(BaseContTempSaveReqVO reqVo);
/**
* 删除合同模板
*
* @param id 模板id
* @return void
* @author PQZ
* @date 17:16 2024/8/8
**/
void deleteContTemp(String id);
/**
* 获得合同模板
*
* @param id 编号
* @return 合同模板
*/
BaseContTemp getContTemp(String id);
/**
* 合同模板分页列表查询
*
* @param pageReqVO 请求参数
* @param page Page分页
* @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.cont.vo.BaseContTempRespVO>
* @author PQZ
* @date 10:39 2024/8/8
**/
IPage<BaseContTempRespVO> getContTempPage(BaseContTempPageReqVO pageReqVO, Page<BaseContTempRespVO> page);
}

View File

@ -0,0 +1,20 @@
package cn.iocoder.yudao.module.cont.service.impl;
import cn.iocoder.yudao.module.cont.entity.BaseContData;
import cn.iocoder.yudao.module.cont.mapper.BaseContDataMapper;
import cn.iocoder.yudao.module.cont.service.BaseContDataService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
/**
* 数据项 Service 实现类
*
* @author pqz
*/
@Service
@Validated
public class BaseContDataServiceImpl extends ServiceImpl<BaseContDataMapper, BaseContData> implements BaseContDataService {
}

View File

@ -0,0 +1,84 @@
package cn.iocoder.yudao.module.cont.service.impl;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.cont.entity.BaseContTemp;
import cn.iocoder.yudao.module.cont.mapper.BaseContTempMapper;
import cn.iocoder.yudao.module.cont.service.BaseContTempService;
import cn.iocoder.yudao.module.cont.vo.BaseContTempPageReqVO;
import cn.iocoder.yudao.module.cont.vo.BaseContTempRespVO;
import cn.iocoder.yudao.module.cont.vo.BaseContTempSaveReqVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
/**
* 合同模板 Service 实现类
*
* @author pqz
*/
@Service
@Validated
public class BaseContTempServiceImpl extends ServiceImpl<BaseContTempMapper, BaseContTemp> implements BaseContTempService {
@Resource
private BaseContTempMapper contTempMapper;
/**
* 保存合同模板
*
* @param reqVo BaseContTempSaveReqVO
* @return void
* @author PQZ
* @date 17:13 2024/8/8
**/
@Override
public void saveConTemp(BaseContTempSaveReqVO reqVo) {
BaseContTemp saveObj = BeanUtils.toBean(reqVo, BaseContTemp.class);
saveOrUpdate(saveObj);
}
/**
* 删除合同模板
*
* @param id 模板id
* @return void
* @author PQZ
* @date 17:16 2024/8/8
**/
@Override
public void deleteContTemp(String id) {
// 删除
contTempMapper.deleteById(id);
}
/**
* 获得合同模板
*
* @param id 编号
* @return 合同模板
*/
@Override
public BaseContTemp getContTemp(String id) {
return contTempMapper.selectById(id);
}
/**
* 合同模板分页列表查询
*
* @param pageReqVO 请求参数
* @param page Page分页
* @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.cont.vo.BaseContTempRespVO>
* @author PQZ
* @date 10:39 2024/8/8
**/
@Override
public IPage<BaseContTempRespVO> getContTempPage(BaseContTempPageReqVO pageReqVO, Page<BaseContTempRespVO> page) {
return contTempMapper.selectListPage(pageReqVO, page);
}
}

View File

@ -0,0 +1,15 @@
package cn.iocoder.yudao.module.cont.vo;
import cn.iocoder.yudao.module.cont.entity.BaseContTemp;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@Schema(description = "管理后台 - 合同模板分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BaseContTempPageReqVO extends BaseContTemp {
}

View File

@ -0,0 +1,14 @@
package cn.iocoder.yudao.module.cont.vo;
import cn.iocoder.yudao.module.cont.entity.BaseContTemp;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Schema(description = "管理后台 - 合同模板 Response VO")
@Data
@ExcelIgnoreUnannotated
public class BaseContTempRespVO extends BaseContTemp {
}

View File

@ -0,0 +1,12 @@
package cn.iocoder.yudao.module.cont.vo;
import cn.iocoder.yudao.module.cont.entity.BaseContTemp;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Schema(description = "管理后台 - 合同模板新增/修改 Request VO")
@Data
public class BaseContTempSaveReqVO extends BaseContTemp {
}

View File

@ -0,0 +1,5 @@
<?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="cn.iocoder.yudao.module.cont.mapper.BaseContDataMapper">
</mapper>

View File

@ -0,0 +1,24 @@
<?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="cn.iocoder.yudao.module.cont.mapper.BaseContTempMapper">
<select id="selectListPage" resultType="cn.iocoder.yudao.module.cont.vo.BaseContTempRespVO">
SELECT
main.*
FROM
dl_base_cont_temp main
<where>
deleted = 0
<if test="entity.tempName != null and entity.tempName != ''">
AND main.temp_name LIKE concat('%',#{entity.tempName},'%')
</if>
<if test="entity.tempType != null and entity.tempType != ''">
AND main.temp_type = #{entity.tempType}
</if>
<if test="entity.tempUse != null and entity.tempUse != ''">
AND main.temp_use = #{entity.tempUse}
</if>
</where>
ORDER BY main.create_time DESC
</select>
</mapper>