1 文件已重命名
25个文件已修改
1个文件已删除
7个文件已添加
| | |
| | | package com.ruoyi; |
| | | |
| | | import java.net.InetAddress; |
| | | import java.net.UnknownHostException; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.boot.SpringApplication; |
| | | import org.springframework.boot.autoconfigure.SpringBootApplication; |
| | |
| | | import org.springframework.scheduling.annotation.EnableScheduling; |
| | | import org.springframework.web.client.RestTemplate; |
| | | |
| | | import java.net.UnknownHostException; |
| | | |
| | | /** |
| | | * 启动程序 |
| | | * |
| | | * |
| | | * @author ruoyi |
| | | */ |
| | | @Slf4j |
| | | @EnableScheduling//开启定时任务 |
| | | @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) |
| | | public class RuoYiAdminDeptApplication |
| | | { |
| | | @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) |
| | | public class RuoYiAdminDeptApplication { |
| | | |
| | | public static void main(String[] args) throws UnknownHostException { |
| | | ConfigurableApplicationContext application = SpringApplication.run(RuoYiAdminDeptApplication.class, args); |
| | | ConfigurableApplicationContext application = SpringApplication.run( |
| | | RuoYiAdminDeptApplication.class, args); |
| | | Environment env = application.getEnvironment(); |
| | | log.info("\n----------------------------------------------------------\n\t" + |
| | | "应用 '{}' 运行成功! 访问连接:\n\t" + |
| | | "Swagger文档: \t\thttp://{}:{}/doc.html\n" + |
| | | "----------------------------------------------------------", |
| | | env.getProperty("spring.application.name", "后台"), |
| | | //InetAddress.getLocalHost().getHostAddress(), |
| | | "localhost", |
| | | InetAddress.getLocalHost().getHostAddress(), |
| | | env.getProperty("server.port", "8081")); |
| | | } |
| | | |
| | |
| | | package com.ruoyi.web.controller.tool; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.ruoyi.common.core.domain.entity.SysRole; |
| | | import com.ruoyi.common.core.redis.RedisCache; |
| | | import com.ruoyi.system.service.*; |
| | | import com.ruoyi.system.service.ISysRoleService; |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.time.Instant; |
| | | import java.util.*; |
| | | |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 每隔一分钟去处理的定时任务 |
| | | */ |
| | | @Scheduled(fixedRate = 1000 * 60) |
| | | public void taskMinute(){ |
| | | public void taskMinute() { |
| | | try { |
| | | // List<Message> list = messageService.list(); |
| | | // Map<Integer,List<Message>> map = new LinkedHashMap<>(); |
| | |
| | | * 每天的凌晨执行的任务 |
| | | */ |
| | | @Scheduled(cron = "0 0 0 * * *") |
| | | public void taskDay(){ |
| | | |
| | | List<SysRole> sysRoles = roleService.selectListByDelFlag(2); |
| | | if(CollectionUtils.isEmpty(sysRoles)){ |
| | | return; |
| | | } |
| | | for (SysRole sysRole : sysRoles) { |
| | | if(sysRole.getRemoveDays()>0){ |
| | | sysRole.setRemoveDays(sysRole.getRemoveDays()-1); |
| | | roleService.updateRole(sysRole); |
| | | }else { |
| | | roleService.deleteRoleById(sysRole.getRoleId()); |
| | | } |
| | | } |
| | | public void taskDay() { |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 每天的凌晨执行的任务 |
| | | */ |
| | | @Scheduled(cron = "0 0 1 * * ? ") |
| | | public void taskDayOne(){ |
| | | public void taskDayOne() { |
| | | } |
| | | |
| | | |
| | |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.system.domain.TbQuestion; |
| | | import com.ruoyi.system.dto.QuestionDTO; |
| | | import com.ruoyi.system.dto.QuestionUpdDto; |
| | | import com.ruoyi.system.dto.update.QuestionUpdDTO; |
| | | import com.ruoyi.system.query.CurrentFieldsQuery; |
| | | import com.ruoyi.system.query.QuestionQuery; |
| | | import com.ruoyi.system.query.ScoreCalculateDetailQuery; |
| | |
| | | import com.ruoyi.system.service.TbBasicDataService; |
| | | import com.ruoyi.system.service.TbQuestionService; |
| | | import com.ruoyi.system.service.TbScoreService; |
| | | import com.ruoyi.system.vo.*; |
| | | import com.ruoyi.system.vo.CurrentFieldsAllVO; |
| | | import com.ruoyi.system.vo.CurrentFieldsDetailVO; |
| | | import com.ruoyi.system.vo.CurrentFieldsVO; |
| | | import com.ruoyi.system.vo.QuestionVO; |
| | | import com.ruoyi.system.vo.ScoreCalculateDetailVO; |
| | | import com.ruoyi.system.vo.ScoreCalculateVO; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | 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.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | /** |
| | | * @author mitao |
| | |
| | | */ |
| | | @ApiOperation(value = "字段统计", notes = "字段统计") |
| | | @PostMapping("/fields-statics") |
| | | public R<PageDTO<CurrentFieldsVO>> fieldsStatics(@Validated @RequestBody CurrentFieldsQuery dto) { |
| | | public R<PageDTO<CurrentFieldsVO>> fieldsStatics( |
| | | @Validated @RequestBody CurrentFieldsQuery dto) { |
| | | try { |
| | | dto.setQuarter(DateUtils.getNowQuarter()); |
| | | return tbBasicDataService.fieldsStatics(dto); |
| | |
| | | */ |
| | | @PostMapping("/score-calculate") |
| | | @ApiOperation("得分计算") |
| | | public R<PageDTO<ScoreCalculateVO>> scoreCalculate(@Validated @RequestBody ScoreCalculateQuery query) { |
| | | public R<PageDTO<ScoreCalculateVO>> scoreCalculate( |
| | | @Validated @RequestBody ScoreCalculateQuery query) { |
| | | try { |
| | | query.setQuarter(DateUtils.getNowQuarter()); |
| | | return R.ok(tbBasicDataService.scoreCalculatePage(query)); |
| | |
| | | @PostMapping("/score-calculate-detail") |
| | | @ApiOperation("得分计算-查看详情") |
| | | @ApiImplicitParam(name = "areaName", value = "部门名称", required = false, dataType = "string", paramType = "query", dataTypeClass = String.class) |
| | | public R<ScoreCalculateDetailVO> scoreCalculateDetail(@Validated @RequestBody ScoreCalculateDetailQuery query) { |
| | | public R<ScoreCalculateDetailVO> scoreCalculateDetail( |
| | | @Validated @RequestBody ScoreCalculateDetailQuery query) { |
| | | return R.ok(tbScoreService.scoreCalculateDetail(query)); |
| | | } |
| | | |
| | |
| | | */ |
| | | @PostMapping("/edit-question") |
| | | @ApiOperation(value = "发现问题-编辑问题", notes = "发现问题") |
| | | public R<Void> editQuestion(@Validated @RequestBody QuestionUpdDto dto) { |
| | | public R<Void> editQuestion(@Validated @RequestBody QuestionUpdDTO dto) { |
| | | try { |
| | | tbQuestionService.editQuestion(dto); |
| | | return R.ok(); |
| | |
| | | .eq(TbBasicData::getStatus, ReportingStatusEnum.FILLED) |
| | | .between(flag, TbBasicData::getCreateTime, startTime, endTime) |
| | | .groupBy(TbBasicData::getQuarter) |
| | | .orderByDesc(TbBasicData::getCreateTime) |
| | | .orderByDesc(TbBasicData::getReportingTime) |
| | | .page(new Page<>(dto.getPageNum(), dto.getPageSize())); |
| | | return R.ok(PageDTO.of(page, BasicDataVO.class)); |
| | | } |
| | |
| | | package com.ruoyi.web.controller.api; |
| | | |
| | | |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.exception.ServiceException; |
| | | import com.ruoyi.system.dto.update.DataIndicatorsUpdDTO; |
| | | import com.ruoyi.system.dto.update.FormalIndicatorsUpdDTO; |
| | | import com.ruoyi.system.dto.update.RiskLevelUpdDTO; |
| | | import com.ruoyi.system.query.DataScreenConfigQuery; |
| | | import com.ruoyi.system.service.TbDataScreenConfigService; |
| | | import com.ruoyi.system.vo.DataScreenConfigVO; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import java.util.List; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | |
| | | * @author mitao |
| | | * @since 2024-03-13 |
| | | */ |
| | | @Slf4j |
| | | @RestController |
| | | @RequestMapping("/tb-data-screen-config") |
| | | @RequestMapping("/data-screen-config") |
| | | @RequiredArgsConstructor |
| | | @Api(tags = {"大屏数据配置相关接口"}) |
| | | public class TbDataScreenConfigController { |
| | | |
| | | private final TbDataScreenConfigService tbDataScreenConfigService; |
| | | |
| | | @PostMapping("/get-risk-level") |
| | | @ApiOperation("获取风险等级设置") |
| | | public R<DataScreenConfigVO> getRiskLevel() { |
| | | try { |
| | | return R.ok(tbDataScreenConfigService.getRiskLevel()); |
| | | } catch (Exception e) { |
| | | if (e instanceof ServiceException) { |
| | | return R.fail(e.getMessage()); |
| | | } |
| | | throw new RuntimeException(e); |
| | | } |
| | | } |
| | | |
| | | @PostMapping("/edit-risk-level") |
| | | @ApiOperation("编辑风险等级设置") |
| | | public R<DataScreenConfigVO> editRiskLevel( |
| | | @Validated @RequestBody RiskLevelUpdDTO dto) { |
| | | try { |
| | | return R.ok(tbDataScreenConfigService.editRiskLevel(dto)); |
| | | } catch (Exception e) { |
| | | if (e instanceof ServiceException) { |
| | | return R.fail(e.getMessage()); |
| | | } |
| | | throw new RuntimeException(e); |
| | | } |
| | | } |
| | | |
| | | @PostMapping("/get-indicators") |
| | | @ApiOperation("获取数据指标/形式指标级配置") |
| | | public R<List<DataScreenConfigVO>> getIndicatorsConfig( |
| | | @Validated @RequestBody DataScreenConfigQuery query) { |
| | | try { |
| | | return R.ok(tbDataScreenConfigService.getIndicatorsConfig(query)); |
| | | } catch (Exception e) { |
| | | if (e instanceof ServiceException) { |
| | | return R.fail(e.getMessage()); |
| | | } |
| | | throw new RuntimeException(e); |
| | | } |
| | | } |
| | | |
| | | @PostMapping("/edit-data-indicators") |
| | | @ApiOperation("编辑数据指标标级配置") |
| | | public R<DataScreenConfigVO> editDataIndicatorsConfig( |
| | | @Validated @RequestBody DataIndicatorsUpdDTO dto) { |
| | | try { |
| | | return R.ok(tbDataScreenConfigService.editDataIndicatorsConfig(dto)); |
| | | } catch (Exception e) { |
| | | if (e instanceof ServiceException) { |
| | | return R.fail(e.getMessage()); |
| | | } |
| | | throw new RuntimeException(e); |
| | | } |
| | | } |
| | | |
| | | @PostMapping("/edit-formal-indicators") |
| | | @ApiOperation("编辑形式指标标级配置") |
| | | public R<DataScreenConfigVO> editFormalIndicatorsConfig( |
| | | @Validated @RequestBody FormalIndicatorsUpdDTO dto) { |
| | | try { |
| | | return R.ok(tbDataScreenConfigService.editFormalIndicatorsConfig(dto)); |
| | | } catch (Exception e) { |
| | | if (e instanceof ServiceException) { |
| | | return R.fail(e.getMessage()); |
| | | } |
| | | throw new RuntimeException(e); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | package com.ruoyi.web.controller.tool; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.ruoyi.common.core.domain.entity.SysRole; |
| | | import com.ruoyi.common.core.redis.RedisCache; |
| | | import com.ruoyi.system.service.*; |
| | | import com.ruoyi.system.service.ISysRoleService; |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.time.Instant; |
| | | import java.util.*; |
| | | |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 每隔一分钟去处理的定时任务 |
| | | */ |
| | | @Scheduled(fixedRate = 1000 * 60) |
| | | public void taskMinute(){ |
| | | public void taskMinute() { |
| | | try { |
| | | // List<Message> list = messageService.list(); |
| | | // Map<Integer,List<Message>> map = new LinkedHashMap<>(); |
| | |
| | | * 每天的凌晨执行的任务 |
| | | */ |
| | | @Scheduled(cron = "0 0 0 * * *") |
| | | public void taskDay(){ |
| | | |
| | | List<SysRole> sysRoles = roleService.selectListByDelFlag(2); |
| | | if(CollectionUtils.isEmpty(sysRoles)){ |
| | | return; |
| | | } |
| | | for (SysRole sysRole : sysRoles) { |
| | | if(sysRole.getRemoveDays()>0){ |
| | | sysRole.setRemoveDays(sysRole.getRemoveDays()-1); |
| | | roleService.updateRole(sysRole); |
| | | }else { |
| | | roleService.deleteRoleById(sysRole.getRoleId()); |
| | | } |
| | | } |
| | | public void taskDay() { |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 每天的凌晨执行的任务 |
| | | */ |
| | | @Scheduled(cron = "0 0 1 * * ? ") |
| | | public void taskDayOne(){ |
| | | public void taskDayOne() { |
| | | } |
| | | |
| | | |
| | |
| | | package com.ruoyi.common.core.domain.entity; |
| | | |
| | | import com.ruoyi.common.core.domain.BaseModel; |
| | | import java.util.Set; |
| | | import javax.validation.constraints.NotBlank; |
| | | import javax.validation.constraints.Size; |
| | | import lombok.Data; |
| | | import org.apache.commons.lang3.builder.ToStringBuilder; |
| | | import org.apache.commons.lang3.builder.ToStringStyle; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | import javax.validation.constraints.Size; |
| | | import java.util.Set; |
| | | |
| | | /** |
| | | * 角色表 sys_role |
| | | * |
| | | * |
| | | * @author ruoyi |
| | | */ |
| | | @Data |
| | | public class SysRole extends BaseModel |
| | | { |
| | | public class SysRole extends BaseModel { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** 角色ID */ |
| | | /** |
| | | * 角色ID |
| | | */ |
| | | //@Excel(name = "角色序号", cellType = ColumnType.NUMERIC) |
| | | private Long roleId; |
| | | |
| | | /** 角色名称 */ |
| | | /** |
| | | * 角色名称 |
| | | */ |
| | | //@Excel(name = "角色名称") |
| | | private String roleName; |
| | | |
| | | /** 角色权限 */ |
| | | /** |
| | | * 角色权限 |
| | | */ |
| | | //@Excel(name = "角色权限") |
| | | private String roleKey; |
| | | |
| | | /** 角色排序 */ |
| | | /** |
| | | * 角色排序 |
| | | */ |
| | | //@Excel(name = "角色排序") |
| | | private Integer roleSort; |
| | | |
| | | /** 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) */ |
| | | /** |
| | | * 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) |
| | | */ |
| | | //@Excel(name = "数据范围", readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限") |
| | | private String dataScope; |
| | | |
| | | /** 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示) */ |
| | | /** |
| | | * 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示) |
| | | */ |
| | | private boolean menuCheckStrictly; |
| | | |
| | | /** 部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 ) */ |
| | | /** |
| | | * 部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 ) |
| | | */ |
| | | private boolean deptCheckStrictly; |
| | | |
| | | /** 角色状态(0正常 1停用) */ |
| | | /** |
| | | * 角色状态(0正常 1停用) |
| | | */ |
| | | //@Excel(name = "角色状态", readConverterExp = "0=正常,1=停用") |
| | | private Integer status; |
| | | |
| | | /** 删除标志(0代表存在 2代表删除) */ |
| | | /** |
| | | * 删除标志(0代表存在 2代表删除) |
| | | */ |
| | | private Integer delFlag; |
| | | |
| | | /** 用户是否存在此角色标识 默认不存在 */ |
| | | /** |
| | | * 用户是否存在此角色标识 默认不存在 |
| | | */ |
| | | private boolean flag = false; |
| | | |
| | | /** 菜单组 */ |
| | | /** |
| | | * 菜单组 |
| | | */ |
| | | private Long[] menuIds; |
| | | |
| | | /** 部门组(数据权限) */ |
| | | /** |
| | | * 部门组(数据权限) |
| | | */ |
| | | private Long[] deptIds; |
| | | |
| | | /** 角色菜单权限 */ |
| | | /** |
| | | * 角色菜单权限 |
| | | */ |
| | | private Set<String> permissions; |
| | | |
| | | private String remark; |
| | | |
| | | /** |
| | | * 删除天数 |
| | | */ |
| | | private Integer removeDays; |
| | | /** |
| | | * 岗位类型 1=经理 2=负责人 3=专员 |
| | | */ |
| | | private Integer postType; |
| | | |
| | | public Integer getPostType() { |
| | | return postType; |
| | | } |
| | | |
| | | public void setPostType(Integer postType) { |
| | | this.postType = postType; |
| | | } |
| | | |
| | | public SysRole() |
| | | { |
| | | public SysRole() { |
| | | |
| | | } |
| | | |
| | | public SysRole(Long roleId) |
| | | { |
| | | public SysRole(Long roleId) { |
| | | this.roleId = roleId; |
| | | } |
| | | |
| | | public Long getRoleId() |
| | | { |
| | | public Long getRoleId() { |
| | | return roleId; |
| | | } |
| | | |
| | | public void setRoleId(Long roleId) |
| | | { |
| | | public void setRoleId(Long roleId) { |
| | | this.roleId = roleId; |
| | | } |
| | | |
| | | public boolean isAdmin() |
| | | { |
| | | public boolean isAdmin() { |
| | | return isAdmin(this.roleId); |
| | | } |
| | | |
| | | public static boolean isAdmin(Long roleId) |
| | | { |
| | | public static boolean isAdmin(Long roleId) { |
| | | return roleId != null && 1L == roleId; |
| | | } |
| | | |
| | | @NotBlank(message = "角色名称不能为空") |
| | | @Size(min = 0, max = 30, message = "角色名称长度不能超过30个字符") |
| | | public String getRoleName() |
| | | { |
| | | public String getRoleName() { |
| | | return roleName; |
| | | } |
| | | |
| | | public void setRoleName(String roleName) |
| | | { |
| | | public void setRoleName(String roleName) { |
| | | this.roleName = roleName; |
| | | } |
| | | |
| | | @Size(min = 0, max = 100, message = "权限字符长度不能超过100个字符") |
| | | public String getRoleKey() |
| | | { |
| | | public String getRoleKey() { |
| | | return roleKey; |
| | | } |
| | | |
| | | public void setRoleKey(String roleKey) |
| | | { |
| | | public void setRoleKey(String roleKey) { |
| | | this.roleKey = roleKey; |
| | | } |
| | | |
| | | public Integer getRoleSort() |
| | | { |
| | | public Integer getRoleSort() { |
| | | return roleSort; |
| | | } |
| | | |
| | | public void setRoleSort(Integer roleSort) |
| | | { |
| | | public void setRoleSort(Integer roleSort) { |
| | | this.roleSort = roleSort; |
| | | } |
| | | |
| | | public String getDataScope() |
| | | { |
| | | public String getDataScope() { |
| | | return dataScope; |
| | | } |
| | | |
| | | public void setDataScope(String dataScope) |
| | | { |
| | | public void setDataScope(String dataScope) { |
| | | this.dataScope = dataScope; |
| | | } |
| | | |
| | | public boolean isMenuCheckStrictly() |
| | | { |
| | | public boolean isMenuCheckStrictly() { |
| | | return menuCheckStrictly; |
| | | } |
| | | |
| | | public void setMenuCheckStrictly(boolean menuCheckStrictly) |
| | | { |
| | | public void setMenuCheckStrictly(boolean menuCheckStrictly) { |
| | | this.menuCheckStrictly = menuCheckStrictly; |
| | | } |
| | | |
| | | public boolean isDeptCheckStrictly() |
| | | { |
| | | public boolean isDeptCheckStrictly() { |
| | | return deptCheckStrictly; |
| | | } |
| | | |
| | | public void setDeptCheckStrictly(boolean deptCheckStrictly) |
| | | { |
| | | public void setDeptCheckStrictly(boolean deptCheckStrictly) { |
| | | this.deptCheckStrictly = deptCheckStrictly; |
| | | } |
| | | |
| | | public Integer getStatus() |
| | | { |
| | | public Integer getStatus() { |
| | | return status; |
| | | } |
| | | |
| | | public void setStatus(Integer status) |
| | | { |
| | | public void setStatus(Integer status) { |
| | | this.status = status; |
| | | } |
| | | |
| | | public Integer getDelFlag() |
| | | { |
| | | public Integer getDelFlag() { |
| | | return delFlag; |
| | | } |
| | | |
| | | public void setDelFlag(Integer delFlag) |
| | | { |
| | | public void setDelFlag(Integer delFlag) { |
| | | this.delFlag = delFlag; |
| | | } |
| | | |
| | | public boolean isFlag() |
| | | { |
| | | public boolean isFlag() { |
| | | return flag; |
| | | } |
| | | |
| | | public void setFlag(boolean flag) |
| | | { |
| | | public void setFlag(boolean flag) { |
| | | this.flag = flag; |
| | | } |
| | | |
| | | public Long[] getMenuIds() |
| | | { |
| | | public Long[] getMenuIds() { |
| | | return menuIds; |
| | | } |
| | | |
| | | public void setMenuIds(Long[] menuIds) |
| | | { |
| | | public void setMenuIds(Long[] menuIds) { |
| | | this.menuIds = menuIds; |
| | | } |
| | | |
| | | public Long[] getDeptIds() |
| | | { |
| | | public Long[] getDeptIds() { |
| | | return deptIds; |
| | | } |
| | | |
| | | public void setDeptIds(Long[] deptIds) |
| | | { |
| | | public void setDeptIds(Long[] deptIds) { |
| | | this.deptIds = deptIds; |
| | | } |
| | | |
| | | public Set<String> getPermissions() |
| | | { |
| | | public Set<String> getPermissions() { |
| | | return permissions; |
| | | } |
| | | |
| | | public void setPermissions(Set<String> permissions) |
| | | { |
| | | public void setPermissions(Set<String> permissions) { |
| | | this.permissions = permissions; |
| | | } |
| | | |
| | |
| | | this.remark = remark; |
| | | } |
| | | |
| | | public Integer getRemoveDays() { |
| | | return removeDays; |
| | | } |
| | | |
| | | public void setRemoveDays(Integer removeDays) { |
| | | this.removeDays = removeDays; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) |
| | | .append("roleId", getRoleId()) |
| | | .append("roleName", getRoleName()) |
| | | .append("roleKey", getRoleKey()) |
| | | .append("roleSort", getRoleSort()) |
| | | .append("dataScope", getDataScope()) |
| | | .append("menuCheckStrictly", isMenuCheckStrictly()) |
| | | .append("deptCheckStrictly", isDeptCheckStrictly()) |
| | | .append("status", getStatus()) |
| | | .append("delFlag", getDelFlag()) |
| | | .append("createBy", getCreateBy()) |
| | | .append("createTime", getCreateTime()) |
| | | .append("updateBy", getUpdateBy()) |
| | | .append("updateTime", getUpdateTime()) |
| | | .toString(); |
| | | return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) |
| | | .append("roleId", getRoleId()) |
| | | .append("roleName", getRoleName()) |
| | | .append("roleKey", getRoleKey()) |
| | | .append("roleSort", getRoleSort()) |
| | | .append("dataScope", getDataScope()) |
| | | .append("menuCheckStrictly", isMenuCheckStrictly()) |
| | | .append("deptCheckStrictly", isDeptCheckStrictly()) |
| | | .append("status", getStatus()) |
| | | .append("delFlag", getDelFlag()) |
| | | .append("createBy", getCreateBy()) |
| | | .append("createTime", getCreateTime()) |
| | | .append("updateBy", getUpdateBy()) |
| | | .append("updateTime", getUpdateTime()) |
| | | .toString(); |
| | | } |
| | | } |
New file |
| | |
| | | package com.ruoyi.common.enums; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.EnumValue; |
| | | import com.fasterxml.jackson.annotation.JsonValue; |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.Getter; |
| | | |
| | | @Getter |
| | | @AllArgsConstructor |
| | | public enum DataScreenConfigEnum { |
| | | RISK_LEVEL(1, "风险等级设置"), |
| | | DATA_INDICATORS(2, "数据指标设置"), |
| | | FORMAL_INDICATORS(3, "形式指标设置"); |
| | | @EnumValue |
| | | private final Integer code; |
| | | @JsonValue |
| | | private final String desc; |
| | | |
| | | public static DataScreenConfigEnum getEnumByCode(Integer code) { |
| | | for (DataScreenConfigEnum e : DataScreenConfigEnum.values()) { |
| | | if (e.code.equals(code)) { |
| | | return e; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | } |
New file |
| | |
| | | package com.ruoyi.common.enums; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.EnumValue; |
| | | import com.fasterxml.jackson.annotation.JsonValue; |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.Getter; |
| | | |
| | | @Getter |
| | | @AllArgsConstructor |
| | | public enum SubTypeEnum { |
| | | INDICATOR_ONE(1, "指标一"), |
| | | INDICATOR_TWO(2, "指标二"), |
| | | INDICATOR_THREE(3, "指标三"), |
| | | INDICATOR_FOUR(4, "指标四"); |
| | | @EnumValue |
| | | private final Integer code; |
| | | @JsonValue |
| | | private final String desc; |
| | | |
| | | public static SubTypeEnum getEnumByCode(Integer code) { |
| | | for (SubTypeEnum e : SubTypeEnum.values()) { |
| | | if (e.code.equals(code)) { |
| | | return e; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | } |
| | |
| | | package com.ruoyi.common.utils; |
| | | |
| | | import org.apache.commons.lang3.time.DateFormatUtils; |
| | | |
| | | import cn.hutool.core.convert.NumberChineseFormatter; |
| | | import java.lang.management.ManagementFactory; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.*; |
| | | import java.time.Instant; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.time.LocalTime; |
| | | import java.time.ZoneId; |
| | | import java.time.ZonedDateTime; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | import org.apache.commons.lang3.time.DateFormatUtils; |
| | | |
| | | /** |
| | | * 时间工具类 |
| | |
| | | * @author ruoyi |
| | | */ |
| | | public class DateUtils extends org.apache.commons.lang3.time.DateUtils { |
| | | |
| | | public static String YYYY = "yyyy"; |
| | | |
| | | public static String YYYY_MM = "yyyy-MM"; |
| | |
| | | } |
| | | |
| | | /** |
| | | * Date转为LocalDateTime |
| | | * |
| | | * @param date 日期 |
| | | * @return LocalDateTime |
| | | */ |
| | | public static LocalDate dateToLocalDate(Date date) { |
| | | Instant instant = date.toInstant(); |
| | | ZoneId zoneId = ZoneId.systemDefault(); |
| | | return instant.atZone(zoneId).toLocalDate(); |
| | | } |
| | | |
| | | /** |
| | | * localdate转为字符串 |
| | | * |
| | | * @param time localdate |
| | |
| | | /** |
| | | * 获取当前季度字符串 |
| | | * |
| | | * @return |
| | | * @throws Exception |
| | | * @return 当前季度字符串 |
| | | * @throws Exception 异常 |
| | | */ |
| | | public static String getNowQuarter() throws Exception { |
| | | //当前所在季度 |
| | | Date date = new Date(); |
| | | int quarterOfYear = getQuarterOfYear(date); |
| | | String quarterOfYearStr = null; |
| | | quarterOfYearStr = NumberDisplaceChineseUtil.numberToChinese(quarterOfYear); |
| | | char quarterOfYear = String.valueOf(getQuarterOfYear(date)).toCharArray()[0]; |
| | | String quarterOfYearStr = NumberChineseFormatter.numberCharToChinese(quarterOfYear, false); |
| | | LocalDate now = LocalDate.now(); |
| | | return String.format("%s年%s季度", now.getYear(), quarterOfYearStr); |
| | | } |
| | | |
| | | public static Date getQuarterDate(String quarter) { |
| | | // 提取年份和季度信息 |
| | | int year = Integer.parseInt(quarter.substring(0, 4)); |
| | | int quarterNumber = NumberChineseFormatter.chineseToNumber(quarter.substring(5, 6)); // 季度数字 |
| | | // 计算季度初的日期 |
| | | LocalDate startDate; |
| | | switch (quarterNumber) { |
| | | case 1: |
| | | startDate = LocalDate.of(year, 1, 1); |
| | | break; |
| | | case 2: |
| | | startDate = LocalDate.of(year, 4, 1); |
| | | break; |
| | | case 3: |
| | | startDate = LocalDate.of(year, 7, 1); |
| | | break; |
| | | case 4: |
| | | startDate = LocalDate.of(year, 10, 1); |
| | | break; |
| | | default: |
| | | throw new IllegalArgumentException("Invalid quarter number: " + quarterNumber); |
| | | } |
| | | return DateUtils.toDate(startDate); |
| | | } |
| | | |
| | | //测试 getNowQuarter |
| | | public static void main(String[] args) throws Exception { |
| | | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | String nowQuarter = getNowQuarter(); |
| | | System.out.println(nowQuarter); |
| | | System.out.println(NumberChineseFormatter.chineseToNumber("一")); |
| | | System.out.println(simpleDateFormat.format(getQuarterDate("2024年一季度"))); |
| | | System.out.println(simpleDateFormat.format(getQuarterDate("2024年二季度"))); |
| | | System.out.println(simpleDateFormat.format(getQuarterDate("2024年三季度"))); |
| | | System.out.println(simpleDateFormat.format(getQuarterDate("2024年四季度"))); |
| | | } |
| | | } |
| | |
| | | @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) |
| | | private Date updateTime; |
| | | |
| | | |
| | | @ApiModelProperty(value = "上报时间") |
| | | @TableField(value = "reporting_time") |
| | | private Date reportingTime; |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import java.io.Serializable; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | @TableName("tb_basic_data_config_detail") |
| | | @ApiModel(value="TbBasicDataConfigDetail对象", description="基础数据配置详情表(存储文本和百分比的配置)") |
| | | @ApiModel(value = "TbBasicDataConfigDetail对象", description = "基础数据配置详情表(存储文本和百分比的配置)") |
| | | public class TbBasicDataConfigDetail implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | |
| | | private Long basicDataConfigId; |
| | | |
| | | @ApiModelProperty(value = "键") |
| | | @TableField("key") |
| | | @TableField("`key`") |
| | | private String key; |
| | | |
| | | @ApiModelProperty(value = "值") |
| | | @TableField("value") |
| | | @TableField("`value`") |
| | | private String value; |
| | | |
| | | |
| | |
| | | package com.ruoyi.system.domain; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.*; |
| | | import com.baomidou.mybatisplus.annotation.FieldFill; |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | 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 com.ruoyi.common.enums.DataScreenConfigEnum; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | @TableName("tb_data_screen_config") |
| | | @ApiModel(value="TbDataScreenConfig对象", description="大屏数据配置表") |
| | | @ApiModel(value = "TbDataScreenConfig对象", description = "大屏数据配置表") |
| | | public class TbDataScreenConfig implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | |
| | | |
| | | @ApiModelProperty(value = "配置类型(1=风险等级设置 2=数据指标设置 3=形式指标设置)") |
| | | @TableField("type") |
| | | private Boolean type; |
| | | private DataScreenConfigEnum type; |
| | | |
| | | @ApiModelProperty(value = "得分计算规则(多个规则使用','隔开)") |
| | | @ApiModelProperty(value = "得分计算规则") |
| | | @TableField("calculate_formula") |
| | | private String calculateFormula; |
| | | |
| | | @ApiModelProperty(value = "得分率计算规则") |
| | | @TableField("calculate_rate_formula") |
| | | private String calculateRateFormula; |
| | | |
| | | @ApiModelProperty(value = "配置类型子类型(1=数据指标一/形式指标一 2=数据指标二/形式指标二 3=数据指标三/形式指标三 4=数据指标四/形式指标四)") |
| | | @TableField("sub_type") |
| | | private Integer subType; |
| | | |
| | | @ApiModelProperty(value = "风险等级范围-高风险得分") |
| | | @TableField("high_risk") |
| | | private String highRisk; |
| | | |
| | | @ApiModelProperty(value = "风险等级范围-低风险得分") |
| | | @TableField("medium_risk") |
| | | private String mediumRisk; |
| | | |
| | | @ApiModelProperty(value = "风险等级范围-无风险得分") |
| | | @TableField("low_risk") |
| | | private String lowRisk; |
| | | |
| | | @ApiModelProperty(value = "得分计算规则(多个规则使用','隔开)") |
| | | @TableField("no_risk") |
| | | private String noRisk; |
| | | |
| | | @ApiModelProperty(value = "删除标志(0代表存在 1代表删除)") |
| | | @TableField("del_flag") |
| | | @TableLogic |
New file |
| | |
| | | package com.ruoyi.system.dto.update; |
| | | |
| | | import com.ruoyi.common.enums.SubTypeEnum; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import java.io.Serializable; |
| | | import javax.validation.constraints.NotNull; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author mitao |
| | | * @date 2024/4/10 |
| | | */ |
| | | @Data |
| | | @ApiModel(value = "风险等级设置编辑数据传输对象") |
| | | public class DataIndicatorsUpdDTO implements Serializable { |
| | | |
| | | private static final long serialVersionUID = -5866223907037261823L; |
| | | |
| | | @ApiModelProperty(value = "id") |
| | | private Long id; |
| | | |
| | | @ApiModelProperty(value = "配置类型子类型(1=指标一 2=指标二 3=指标三 4=指标四)") |
| | | @NotNull(message = "配置类型子类型不能为空") |
| | | private SubTypeEnum subType; |
| | | |
| | | @ApiModelProperty(value = "得分计算规则") |
| | | @NotNull(message = "得分计算规则不能为空") |
| | | private String calculateFormula; |
| | | |
| | | @ApiModelProperty(value = "得分率计算规则") |
| | | @NotNull(message = "得分率计算规则不能为空") |
| | | private String calculateRateFormula; |
| | | |
| | | } |
New file |
| | |
| | | package com.ruoyi.system.dto.update; |
| | | |
| | | import com.ruoyi.common.enums.SubTypeEnum; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import java.io.Serializable; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author mitao |
| | | * @date 2024/4/10 |
| | | */ |
| | | @Data |
| | | @ApiModel(value = "风险等级设置编辑数据传输对象") |
| | | public class FormalIndicatorsUpdDTO implements Serializable { |
| | | |
| | | private static final long serialVersionUID = -4878457973955230627L; |
| | | |
| | | @ApiModelProperty(value = "id") |
| | | private Long id; |
| | | |
| | | @ApiModelProperty(value = "配置类型子类型(1=指标一 2=指标二 3=指标三 4=指标四)") |
| | | private SubTypeEnum subType; |
| | | |
| | | @ApiModelProperty(value = "得分计算规则") |
| | | private String calculateFormula; |
| | | |
| | | } |
File was renamed from ruoyi-system/src/main/java/com/ruoyi/system/dto/QuestionUpdDto.java |
| | |
| | | package com.ruoyi.system.dto; |
| | | package com.ruoyi.system.dto.update; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | import javax.validation.constraints.NotBlank; |
| | | import javax.validation.constraints.NotNull; |
| | | import java.io.Serializable; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author mitao |
| | |
| | | */ |
| | | @Data |
| | | @ApiModel(value = "发现问题编辑数据传输对象") |
| | | public class QuestionUpdDto implements Serializable { |
| | | public class QuestionUpdDTO implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 6382858207794071957L; |
| | | @ApiModelProperty(value = "id") |
| | | @NotNull(message = "id不能为空") |
New file |
| | |
| | | package com.ruoyi.system.dto.update; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import java.io.Serializable; |
| | | import javax.validation.constraints.NotBlank; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author mitao |
| | | * @date 2024/4/10 |
| | | */ |
| | | @Data |
| | | @ApiModel(value = "风险等级设置编辑数据传输对象") |
| | | public class RiskLevelUpdDTO implements Serializable { |
| | | |
| | | private static final long serialVersionUID = -4878457973955230627L; |
| | | |
| | | @ApiModelProperty(value = "id", notes = "如果返回了id,必传") |
| | | private Long id; |
| | | |
| | | @ApiModelProperty(value = "计算规则", notes = "公式中字段的格式为:field_字段id,e.g:field_1,field_2等。") |
| | | @NotBlank(message = "计算规则不能为空") |
| | | private String calculateFormula; |
| | | |
| | | @ApiModelProperty(value = "风险等级范围-高风险得分") |
| | | @NotBlank(message = "风险等级范围-高风险得分不能为空") |
| | | private String highRisk; |
| | | |
| | | @ApiModelProperty(value = "风险等级范围-中风险得分") |
| | | @NotBlank(message = "风险等级范围-中风险得分不能为空") |
| | | private String mediumRisk; |
| | | |
| | | @ApiModelProperty(value = "风险等级范围-低风险得分") |
| | | @NotBlank(message = "风险等级范围-低风险得分不能为空") |
| | | private String lowRisk; |
| | | |
| | | @ApiModelProperty(value = "风险等级范围-无风险得分") |
| | | @NotBlank(message = "风险等级范围-无风险得分不能为空") |
| | | private String noRisk; |
| | | } |
| | |
| | | import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; |
| | | import com.alibaba.excel.write.style.column.AbstractColumnWidthStyleStrategy; |
| | | import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
| | | import org.apache.poi.ss.usermodel.Cell; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import org.apache.poi.ss.usermodel.Cell; |
| | | |
| | | public class CustomerHandler extends AbstractColumnWidthStyleStrategy { |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | protected void setColumnWidth(WriteSheetHolder writeSheetHolder, List<WriteCellData<?>> cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) { |
| | | protected void setColumnWidth(WriteSheetHolder writeSheetHolder, |
| | | List<WriteCellData<?>> cellDataList, Cell cell, Head head, Integer relativeRowIndex, |
| | | Boolean isHead) { |
| | | boolean needSetWidth = isHead || !CollectionUtils.isEmpty(cellDataList); |
| | | if (needSetWidth) { |
| | | Map<Integer, Integer> maxColumnWidthMap = (Map) CACHE.get(writeSheetHolder.getSheetNo()); |
| | | Map<Integer, Integer> maxColumnWidthMap = (Map) CACHE.get( |
| | | writeSheetHolder.getSheetNo()); |
| | | if (maxColumnWidthMap == null) { |
| | | maxColumnWidthMap = new HashMap(16); |
| | | CACHE.put(writeSheetHolder.getSheetNo(), maxColumnWidthMap); |
| | |
| | | } |
| | | } |
| | | |
| | | Integer maxColumnWidth = (Integer) ((Map) maxColumnWidthMap).get(cell.getColumnIndex()); |
| | | Integer maxColumnWidth = (Integer) ((Map) maxColumnWidthMap).get( |
| | | cell.getColumnIndex()); |
| | | if (maxColumnWidth == null || columnWidth > maxColumnWidth) { |
| | | ((Map) maxColumnWidthMap).put(cell.getColumnIndex(), columnWidth); |
| | | writeSheetHolder.getSheet().setColumnWidth(cell.getColumnIndex(), columnWidth * 256); |
| | | writeSheetHolder.getSheet() |
| | | .setColumnWidth(cell.getColumnIndex(), columnWidth * 256); |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | LocalDate now = LocalDate.now(); |
| | | TbBasicData tbBasicData; |
| | | String quarter = String.format("%s年%s", now.getYear(), dataMap.get(1)); |
| | | Optional<TbBasicData> tbBasicDataOpt = tbBasicDataService.lambdaQuery(). |
| | | eq(TbBasicData::getQuarter, String.format("%s年%s", now.getYear(), dataMap.get(1))) |
| | | eq(TbBasicData::getQuarter, quarter) |
| | | .eq(TbBasicData::getDeptAreaCode, areaCode).oneOpt(); |
| | | tbBasicData = tbBasicDataOpt.orElseGet(TbBasicData::new); |
| | | tbBasicData.setQuarter(DateUtils.getNowQuarter()); |
| | |
| | | tbBasicData.setDeptAreaCode(areaCode); |
| | | tbBasicData.setRemark(dataMap.get(remarkIndex)); |
| | | tbBasicData.setStatus(ReportingStatusEnum.MISSING_DATA); |
| | | tbBasicData.setReportingTime(DateUtils.getQuarterDate(quarter)); |
| | | tbBasicDataService.saveOrUpdate(tbBasicData); |
| | | tbBasicDataFieldService.remove(Wrappers.<TbBasicDataField>lambdaQuery() |
| | | .eq(TbBasicDataField::getBasicDataId, tbBasicData.getId())); |
| | |
| | | import com.ruoyi.common.exception.ServiceException; |
| | | import com.ruoyi.common.utils.CalculateUtil; |
| | | import com.ruoyi.common.utils.CollUtils; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.system.domain.TbBasicData; |
| | | import com.ruoyi.system.domain.TbBasicDataConfig; |
| | | import com.ruoyi.system.domain.TbBasicDataConfigDetail; |
| | |
| | | this.tbScoreService = tbScoreService; |
| | | this.sysUserService = sysUserService; |
| | | this.quarter = quarter; |
| | | } |
| | | |
| | | private static String validateFields(Map.Entry<Integer, String> integerStringEntry, |
| | | Map<Integer, String> dataMap, TbField field) { |
| | | String value = dataMap.get(integerStringEntry.getKey()); |
| | | if (FieldTypeEnum.NUMBER.equals(field.getFieldType())) { |
| | | Integer numMin = field.getNumMin(); |
| | | Integer numMax = field.getNumMax(); |
| | | if (Objects.nonNull(numMin) && Objects.nonNull(numMax)) { |
| | | if (numMin > Integer.parseInt(value) || numMax < Integer.parseInt(value)) { |
| | | throw new ServiceException( |
| | | String.format("字段(%s)的内容不在%d~%d范围内", field.getFieldName(), |
| | | numMin, numMax)); |
| | | } |
| | | } |
| | | } |
| | | if (FieldInputTypeEnum.MANUAL_INPUT.equals(field.getTextInputType()) |
| | | && FieldTypeEnum.TEXT.equals(field.getFieldType())) { |
| | | Integer textMinNum = field.getTextMinNum(); |
| | | Integer textMaxNum = field.getTextMaxNum(); |
| | | if (Objects.nonNull(textMinNum) && Objects.nonNull(textMaxNum)) { |
| | | if (textMinNum > value.length() || textMaxNum < value.length()) { |
| | | throw new ServiceException( |
| | | String.format("字段(%s)的内容长度超出%d~%d的范围", |
| | | field.getFieldName(), |
| | | textMinNum, textMaxNum)); |
| | | } |
| | | } |
| | | } |
| | | if (FieldTypeEnum.PERCENTAGE.equals(field.getFieldType())) { |
| | | if (0 > Double.parseDouble(value) || 100 < Double.parseDouble(value)) { |
| | | throw new ServiceException( |
| | | String.format("字段(%s)的内容不在0~100范围内", field.getFieldName())); |
| | | } |
| | | } |
| | | return value; |
| | | } |
| | | |
| | | @Override |
| | |
| | | tbBasicData.setDeptAreaCode(areaCode); |
| | | tbBasicData.setRemark(dataMap.get(remarkIndex)); |
| | | tbBasicData.setStatus(ReportingStatusEnum.MISSING_DATA); |
| | | tbBasicData.setReportingTime(DateUtils.getQuarterDate(quarter)); |
| | | tbBasicDataService.saveOrUpdate(tbBasicData); |
| | | tbBasicDataFieldService.remove(Wrappers.<TbBasicDataField>lambdaQuery() |
| | | .eq(TbBasicDataField::getBasicDataId, tbBasicData.getId())); |
| | |
| | | return tbBasicDataList; |
| | | } |
| | | |
| | | /** |
| | | * 需要导入的数据 |
| | | * |
| | | * @return List<Map < Integer, String>> |
| | | */ |
| | | private List<Map<Integer, String>> getMapList() { |
| | | for (int i = 0; i < cachedDataList.size(); i++) { |
| | | if (cachedDataList.get(i).get(0).equals("栏号")) { |
| | |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 表头 |
| | | * |
| | | * @return Map<Integer, String> |
| | | */ |
| | | private Map<Integer, String> getHeadMap() { |
| | | for (int i = 0; i < cachedDataList.size(); i++) { |
| | | if (cachedDataList.get(i).get(0).equals("栏号")) { |
| | |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 校验字段内容 |
| | | * |
| | | * @param integerStringEntry 动态字段表头Entry |
| | | * @param dataMap 数据map |
| | | * @param field 字段 |
| | | * @return 值 |
| | | */ |
| | | private static String validateFields(Map.Entry<Integer, String> integerStringEntry, |
| | | Map<Integer, String> dataMap, TbField field) { |
| | | String value = dataMap.get(integerStringEntry.getKey()); |
| | | if (FieldTypeEnum.NUMBER.equals(field.getFieldType())) { |
| | | Integer numMin = field.getNumMin(); |
| | | Integer numMax = field.getNumMax(); |
| | | if (Objects.nonNull(numMin) && Objects.nonNull(numMax)) { |
| | | if (numMin > Integer.parseInt(value) || numMax < Integer.parseInt(value)) { |
| | | throw new ServiceException( |
| | | String.format("字段(%s)的内容不在%d~%d范围内", field.getFieldName(), |
| | | numMin, numMax)); |
| | | } |
| | | } |
| | | } |
| | | if (FieldInputTypeEnum.MANUAL_INPUT.equals(field.getTextInputType()) |
| | | && FieldTypeEnum.TEXT.equals(field.getFieldType())) { |
| | | Integer textMinNum = field.getTextMinNum(); |
| | | Integer textMaxNum = field.getTextMaxNum(); |
| | | if (Objects.nonNull(textMinNum) && Objects.nonNull(textMaxNum)) { |
| | | if (textMinNum > value.length() || textMaxNum < value.length()) { |
| | | throw new ServiceException( |
| | | String.format("字段(%s)的内容长度超出%d~%d的范围", |
| | | field.getFieldName(), |
| | | textMinNum, textMaxNum)); |
| | | } |
| | | } |
| | | } |
| | | if (FieldTypeEnum.PERCENTAGE.equals(field.getFieldType())) { |
| | | if (0 > Double.parseDouble(value) || 100 < Double.parseDouble(value)) { |
| | | throw new ServiceException( |
| | | String.format("字段(%s)的内容不在0~100范围内", field.getFieldName())); |
| | | } |
| | | } |
| | | return value; |
| | | } |
| | | |
| | | /** |
| | | * 计算得分 |
| | | * |
| | | * @param tbBasicDataList 基础数据集合 |
| | | */ |
| | | private void calculateScore(List<TbBasicData> tbBasicDataList) { |
| | | List<TbScore> scoreList = new ArrayList<>(); |
| | | for (TbBasicData tbBasicData : tbBasicDataList) { |
| | | List<TbScore> scoreList = new ArrayList<>(); |
| | | //计算得分 |
| | | List<TbBasicDataConfig> list = tbBasicDataConfigService.lambdaQuery() |
| | | .eq(TbBasicDataConfig::getStatus, ShowStatusEnum.SHOW).list(); |
| | |
| | | } |
| | | } |
| | | } |
| | | tbScoreService.saveBatch(scoreList); |
| | | } |
| | | tbScoreService.saveBatch(scoreList); |
| | | log.info(String.format("基础数据%s计算得分成功!", JSON.toJSONString(tbBasicDataList))); |
| | | } |
| | | } |
New file |
| | |
| | | package com.ruoyi.system.query; |
| | | |
| | | import com.ruoyi.common.enums.DataScreenConfigEnum; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import java.io.Serializable; |
| | | import javax.validation.constraints.NotNull; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author mitao |
| | | * @date 2024/4/10 |
| | | */ |
| | | @Data |
| | | @ApiModel(value = "数据大屏配置查询数据传输对象") |
| | | public class DataScreenConfigQuery implements Serializable { |
| | | |
| | | private static final long serialVersionUID = -1097028325191820663L; |
| | | |
| | | @ApiModelProperty(value = "配置类型(2=数据指标设置 3=形式指标设置)") |
| | | @NotNull(message = "配置类型不能为空") |
| | | private DataScreenConfigEnum type; |
| | | |
| | | } |
| | |
| | | |
| | | R<BasicDataReportingVO> getBasicFields() throws Exception; |
| | | |
| | | void saveBasicData(BasicDataDTO dto); |
| | | void saveBasicData(BasicDataDTO dto) throws Exception; |
| | | |
| | | void importBasicData(MultipartFile file) throws Exception; |
| | | |
| | |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.ruoyi.system.domain.TbDataScreenConfig; |
| | | import com.ruoyi.system.dto.update.DataIndicatorsUpdDTO; |
| | | import com.ruoyi.system.dto.update.FormalIndicatorsUpdDTO; |
| | | import com.ruoyi.system.dto.update.RiskLevelUpdDTO; |
| | | import com.ruoyi.system.query.DataScreenConfigQuery; |
| | | import com.ruoyi.system.vo.DataScreenConfigVO; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | */ |
| | | public interface TbDataScreenConfigService extends IService<TbDataScreenConfig> { |
| | | |
| | | DataScreenConfigVO getRiskLevel(); |
| | | |
| | | DataScreenConfigVO editRiskLevel(RiskLevelUpdDTO dto); |
| | | |
| | | List<DataScreenConfigVO> getIndicatorsConfig(DataScreenConfigQuery query); |
| | | |
| | | DataScreenConfigVO editDataIndicatorsConfig(DataIndicatorsUpdDTO dto); |
| | | |
| | | DataScreenConfigVO editFormalIndicatorsConfig(FormalIndicatorsUpdDTO dto); |
| | | } |
| | |
| | | import com.ruoyi.common.basic.PageDTO; |
| | | import com.ruoyi.system.domain.TbQuestion; |
| | | import com.ruoyi.system.dto.QuestionDTO; |
| | | import com.ruoyi.system.dto.QuestionUpdDto; |
| | | import com.ruoyi.system.dto.update.QuestionUpdDTO; |
| | | import com.ruoyi.system.query.QuestionQuery; |
| | | import com.ruoyi.system.vo.QuestionVO; |
| | | |
| | |
| | | |
| | | void addQuestion(QuestionDTO dto) throws Exception; |
| | | |
| | | void editQuestion(QuestionUpdDto dto); |
| | | void editQuestion(QuestionUpdDTO dto); |
| | | |
| | | PageDTO<QuestionVO> pageQuestion(QuestionQuery dto); |
| | | } |
| | |
| | | package com.ruoyi.system.service.impl; |
| | | |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import com.ruoyi.common.basic.PageInfo; |
| | | import com.ruoyi.common.core.domain.entity.SysMenu; |
| | | import com.ruoyi.system.dto.SysRoleDTO; |
| | | import com.ruoyi.system.mapper.*; |
| | | import com.ruoyi.system.query.SysRoleQuery; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import com.ruoyi.common.constant.UserConstants; |
| | | import com.ruoyi.common.core.domain.entity.SysMenu; |
| | | import com.ruoyi.common.core.domain.entity.SysRole; |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | | import com.ruoyi.common.exception.ServiceException; |
| | |
| | | import com.ruoyi.system.domain.SysRoleDept; |
| | | import com.ruoyi.system.domain.SysRoleMenu; |
| | | import com.ruoyi.system.domain.SysUserRole; |
| | | import com.ruoyi.system.dto.SysRoleDTO; |
| | | import com.ruoyi.system.mapper.SysMenuMapper; |
| | | import com.ruoyi.system.mapper.SysRoleDeptMapper; |
| | | import com.ruoyi.system.mapper.SysRoleMapper; |
| | | import com.ruoyi.system.mapper.SysRoleMenuMapper; |
| | | import com.ruoyi.system.mapper.SysUserRoleMapper; |
| | | import com.ruoyi.system.query.SysRoleQuery; |
| | | import com.ruoyi.system.service.ISysRoleService; |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.HashSet; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.Set; |
| | | import java.util.stream.Collectors; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | /** |
| | | * 角色 业务层处理 |
| | | * |
| | | * |
| | | * @author ruoyi |
| | | */ |
| | | @Service |
| | | public class SysRoleServiceImpl implements ISysRoleService |
| | | { |
| | | public class SysRoleServiceImpl implements ISysRoleService { |
| | | |
| | | @Autowired |
| | | private SysRoleMapper roleMapper; |
| | | |
| | |
| | | |
| | | /** |
| | | * 根据条件分页查询角色数据 |
| | | * |
| | | * |
| | | * @param role 角色信息 |
| | | * @return 角色数据集合信息 |
| | | */ |
| | | @Override |
| | | public List<SysRole> selectRoleList(SysRole role) |
| | | { |
| | | public List<SysRole> selectRoleList(SysRole role) { |
| | | return roleMapper.selectRoleList(role); |
| | | } |
| | | |
| | | /** |
| | | * 根据用户ID查询角色 |
| | | * |
| | | * |
| | | * @param userId 用户ID |
| | | * @return 角色列表 |
| | | */ |
| | | @Override |
| | | public List<SysRole> selectRolesByUserId(Long userId) |
| | | { |
| | | public List<SysRole> selectRolesByUserId(Long userId) { |
| | | List<SysRole> userRoles = roleMapper.selectRolePermissionByUserId(userId); |
| | | List<SysRole> roles = selectRoleAll(); |
| | | for (SysRole role : roles) |
| | | { |
| | | for (SysRole userRole : userRoles) |
| | | { |
| | | if (role.getRoleId().longValue() == userRole.getRoleId().longValue()) |
| | | { |
| | | for (SysRole role : roles) { |
| | | for (SysRole userRole : userRoles) { |
| | | if (role.getRoleId().longValue() == userRole.getRoleId().longValue()) { |
| | | role.setFlag(true); |
| | | break; |
| | | } |
| | |
| | | |
| | | /** |
| | | * 根据用户ID查询权限 |
| | | * |
| | | * |
| | | * @param userId 用户ID |
| | | * @return 权限列表 |
| | | */ |
| | | @Override |
| | | public Set<String> selectRolePermissionByUserId(Long userId) |
| | | { |
| | | public Set<String> selectRolePermissionByUserId(Long userId) { |
| | | List<SysRole> perms = roleMapper.selectRolePermissionByUserId(userId); |
| | | Set<String> permsSet = new HashSet<>(); |
| | | for (SysRole perm : perms) |
| | | { |
| | | if (StringUtils.isNotNull(perm)) |
| | | { |
| | | for (SysRole perm : perms) { |
| | | if (StringUtils.isNotNull(perm)) { |
| | | permsSet.addAll(Arrays.asList(perm.getRoleKey().trim().split(","))); |
| | | } |
| | | } |
| | |
| | | |
| | | /** |
| | | * 查询所有角色 |
| | | * |
| | | * |
| | | * @return 角色列表 |
| | | */ |
| | | @Override |
| | | public List<SysRole> selectRoleAll() |
| | | { |
| | | public List<SysRole> selectRoleAll() { |
| | | return this.selectRoleList(new SysRole()); |
| | | } |
| | | |
| | | /** |
| | | * 根据用户ID获取角色选择框列表 |
| | | * |
| | | * |
| | | * @param userId 用户ID |
| | | * @return 选中角色ID列表 |
| | | */ |
| | | @Override |
| | | public List<Long> selectRoleListByUserId(Long userId) |
| | | { |
| | | public List<Long> selectRoleListByUserId(Long userId) { |
| | | return roleMapper.selectRoleListByUserId(userId); |
| | | } |
| | | |
| | | /** |
| | | * 通过角色ID查询角色 |
| | | * |
| | | * |
| | | * @param roleId 角色ID |
| | | * @return 角色对象信息 |
| | | */ |
| | | @Override |
| | | public SysRole selectRoleById(Long roleId) |
| | | { |
| | | public SysRole selectRoleById(Long roleId) { |
| | | return roleMapper.selectRoleById(roleId); |
| | | } |
| | | |
| | | /** |
| | | * 校验角色名称是否唯一 |
| | | * |
| | | * |
| | | * @param role 角色信息 |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public boolean checkRoleNameUnique(SysRole role) |
| | | { |
| | | public boolean checkRoleNameUnique(SysRole role) { |
| | | Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId(); |
| | | SysRole info = roleMapper.checkRoleNameUnique(role.getRoleName()); |
| | | if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) |
| | | { |
| | | if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) { |
| | | return UserConstants.NOT_UNIQUE; |
| | | } |
| | | return UserConstants.UNIQUE; |
| | |
| | | |
| | | /** |
| | | * 校验角色权限是否唯一 |
| | | * |
| | | * |
| | | * @param role 角色信息 |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public boolean checkRoleKeyUnique(SysRole role) |
| | | { |
| | | public boolean checkRoleKeyUnique(SysRole role) { |
| | | Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId(); |
| | | SysRole info = roleMapper.checkRoleKeyUnique(role.getRoleKey()); |
| | | if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) |
| | | { |
| | | if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) { |
| | | return UserConstants.NOT_UNIQUE; |
| | | } |
| | | return UserConstants.UNIQUE; |
| | |
| | | |
| | | /** |
| | | * 校验角色是否允许操作 |
| | | * |
| | | * |
| | | * @param role 角色信息 |
| | | */ |
| | | @Override |
| | | public void checkRoleAllowed(SysRole role) |
| | | { |
| | | if (StringUtils.isNotNull(role.getRoleId()) && role.isAdmin()) |
| | | { |
| | | public void checkRoleAllowed(SysRole role) { |
| | | if (StringUtils.isNotNull(role.getRoleId()) && role.isAdmin()) { |
| | | throw new ServiceException("不允许操作超级管理员角色"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 校验角色是否有数据权限 |
| | | * |
| | | * |
| | | * @param roleId 角色id |
| | | */ |
| | | @Override |
| | | public void checkRoleDataScope(Long roleId) |
| | | { |
| | | if (!SysUser.isAdmin(SecurityUtils.getUserId())) |
| | | { |
| | | public void checkRoleDataScope(Long roleId) { |
| | | if (!SysUser.isAdmin(SecurityUtils.getUserId())) { |
| | | SysRole role = new SysRole(); |
| | | role.setRoleId(roleId); |
| | | List<SysRole> roles = SpringUtils.getAopProxy(this).selectRoleList(role); |
| | | if (StringUtils.isEmpty(roles)) |
| | | { |
| | | if (StringUtils.isEmpty(roles)) { |
| | | throw new ServiceException("没有权限访问角色数据!"); |
| | | } |
| | | } |
| | |
| | | |
| | | /** |
| | | * 通过角色ID查询角色使用数量 |
| | | * |
| | | * |
| | | * @param roleId 角色ID |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public int countUserRoleByRoleId(Long roleId) |
| | | { |
| | | public int countUserRoleByRoleId(Long roleId) { |
| | | return userRoleMapper.countUserRoleByRoleId(roleId); |
| | | } |
| | | |
| | | /** |
| | | * 新增保存角色信息 |
| | | * |
| | | * |
| | | * @param role 角色信息 |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | @Transactional |
| | | public int insertRole(SysRole role) |
| | | { |
| | | public int insertRole(SysRole role) { |
| | | // 新增角色信息 |
| | | roleMapper.insertRole(role); |
| | | return insertRoleMenu(role); |
| | |
| | | |
| | | /** |
| | | * 修改保存角色信息 |
| | | * |
| | | * |
| | | * @param role 角色信息 |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | @Transactional |
| | | public int updateRole(SysRole role) |
| | | { |
| | | public int updateRole(SysRole role) { |
| | | // 修改角色信息 |
| | | roleMapper.updateRole(role); |
| | | // 删除角色与菜单关联 |
| | |
| | | |
| | | /** |
| | | * 修改角色状态 |
| | | * |
| | | * |
| | | * @param role 角色信息 |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public int updateRoleStatus(SysRole role) |
| | | { |
| | | public int updateRoleStatus(SysRole role) { |
| | | return roleMapper.updateRole(role); |
| | | } |
| | | |
| | | /** |
| | | * 修改数据权限信息 |
| | | * |
| | | * |
| | | * @param role 角色信息 |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | @Transactional |
| | | public int authDataScope(SysRole role) |
| | | { |
| | | public int authDataScope(SysRole role) { |
| | | // 修改角色信息 |
| | | roleMapper.updateRole(role); |
| | | // 删除角色与部门关联 |
| | |
| | | |
| | | /** |
| | | * 新增角色菜单信息 |
| | | * |
| | | * |
| | | * @param role 角色对象 |
| | | */ |
| | | public int insertRoleMenu(SysRole role) |
| | | { |
| | | public int insertRoleMenu(SysRole role) { |
| | | int rows = 1; |
| | | // 新增用户与角色管理 |
| | | List<SysRoleMenu> list = new ArrayList<SysRoleMenu>(); |
| | | for (Long menuId : role.getMenuIds()) |
| | | { |
| | | for (Long menuId : role.getMenuIds()) { |
| | | SysRoleMenu rm = new SysRoleMenu(); |
| | | rm.setRoleId(role.getRoleId()); |
| | | rm.setMenuId(menuId); |
| | | list.add(rm); |
| | | } |
| | | if (list.size() > 0) |
| | | { |
| | | if (list.size() > 0) { |
| | | rows = roleMenuMapper.batchRoleMenu(list); |
| | | } |
| | | return rows; |
| | |
| | | * |
| | | * @param role 角色对象 |
| | | */ |
| | | public int insertRoleDept(SysRole role) |
| | | { |
| | | public int insertRoleDept(SysRole role) { |
| | | int rows = 1; |
| | | // 新增角色与部门(数据权限)管理 |
| | | List<SysRoleDept> list = new ArrayList<SysRoleDept>(); |
| | | for (Long deptId : role.getDeptIds()) |
| | | { |
| | | for (Long deptId : role.getDeptIds()) { |
| | | SysRoleDept rd = new SysRoleDept(); |
| | | rd.setRoleId(role.getRoleId()); |
| | | rd.setDeptId(deptId); |
| | | list.add(rd); |
| | | } |
| | | if (list.size() > 0) |
| | | { |
| | | if (list.size() > 0) { |
| | | rows = roleDeptMapper.batchRoleDept(list); |
| | | } |
| | | return rows; |
| | |
| | | |
| | | /** |
| | | * 通过角色ID删除角色 |
| | | * |
| | | * |
| | | * @param roleId 角色ID |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | @Transactional |
| | | public int deleteRoleById(Long roleId) |
| | | { |
| | | public int deleteRoleById(Long roleId) { |
| | | // 删除角色与菜单关联 |
| | | roleMenuMapper.deleteRoleMenuByRoleId(roleId); |
| | | // 删除角色与部门关联 |
| | |
| | | |
| | | /** |
| | | * 批量删除角色信息 |
| | | * |
| | | * |
| | | * @param roleIds 需要删除的角色ID |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | @Transactional |
| | | public int deleteRoleByIds(List<Long> roleIds) |
| | | { |
| | | for (Long roleId : roleIds) |
| | | { |
| | | public int deleteRoleByIds(List<Long> roleIds) { |
| | | for (Long roleId : roleIds) { |
| | | SysRole role = selectRoleById(roleId); |
| | | if (countUserRoleByRoleId(roleId) > 0) |
| | | { |
| | | throw new ServiceException(String.format("%1$s已分配,不能删除", role.getRoleName())); |
| | | if (countUserRoleByRoleId(roleId) > 0) { |
| | | throw new ServiceException( |
| | | String.format("%1$s已分配,不能删除", role.getRoleName())); |
| | | } |
| | | } |
| | | // 删除角色与菜单关联 |
| | |
| | | |
| | | /** |
| | | * 取消授权用户角色 |
| | | * |
| | | * |
| | | * @param userRole 用户和角色关联信息 |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public int deleteAuthUser(SysUserRole userRole) |
| | | { |
| | | public int deleteAuthUser(SysUserRole userRole) { |
| | | return userRoleMapper.deleteUserRoleInfo(userRole); |
| | | } |
| | | |
| | | /** |
| | | * 批量取消授权用户角色 |
| | | * |
| | | * @param roleId 角色ID |
| | | * |
| | | * @param roleId 角色ID |
| | | * @param userIds 需要取消授权的用户数据ID |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public int deleteAuthUsers(Long roleId, Long[] userIds) |
| | | { |
| | | public int deleteAuthUsers(Long roleId, Long[] userIds) { |
| | | return userRoleMapper.deleteUserRoleInfos(roleId, userIds); |
| | | } |
| | | |
| | | /** |
| | | * 批量选择授权用户角色 |
| | | * |
| | | * @param roleId 角色ID |
| | | * |
| | | * @param roleId 角色ID |
| | | * @param userIds 需要授权的用户数据ID |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public int insertAuthUsers(Long roleId, Long[] userIds) |
| | | { |
| | | public int insertAuthUsers(Long roleId, Long[] userIds) { |
| | | // 新增用户与角色管理 |
| | | List<SysUserRole> list = new ArrayList<SysUserRole>(); |
| | | for (Long userId : userIds) |
| | | { |
| | | for (Long userId : userIds) { |
| | | SysUserRole ur = new SysUserRole(); |
| | | ur.setUserId(userId); |
| | | ur.setRoleId(roleId); |
| | |
| | | //获取当前的权限菜单 |
| | | List<SysMenu> all = menuMapper.getAllInIds(menusId); |
| | | // 第三级 |
| | | List<SysMenu> s3 = all.stream().filter(e -> e.getMenuType().equals("F")).collect(Collectors.toList()); |
| | | List<SysMenu> s3 = all.stream().filter(e -> e.getMenuType().equals("F")) |
| | | .collect(Collectors.toList()); |
| | | // 第二级 |
| | | List<SysMenu> s2 = all.stream().filter(e -> e.getMenuType().equals("C")).collect(Collectors.toList()); |
| | | List<SysMenu> s2 = all.stream().filter(e -> e.getMenuType().equals("C")) |
| | | .collect(Collectors.toList()); |
| | | // 第一级 |
| | | List<SysMenu> s1 = all.stream().filter(e -> e.getMenuType().equals("M")).collect(Collectors.toList()); |
| | | List<SysMenu> s1 = all.stream().filter(e -> e.getMenuType().equals("M")) |
| | | .collect(Collectors.toList()); |
| | | |
| | | for (SysMenu menu : s2) { |
| | | List<SysMenu> collect = s3.stream().filter(e -> e.getParentId().equals(menu.getMenuId())).collect(Collectors.toList()); |
| | | List<SysMenu> collect = s3.stream() |
| | | .filter(e -> e.getParentId().equals(menu.getMenuId())) |
| | | .collect(Collectors.toList()); |
| | | menu.setChildren(collect); |
| | | } |
| | | for (SysMenu menu : s1) { |
| | | List<SysMenu> collect = s2.stream().filter(e -> e.getParentId().equals(menu.getMenuId())).collect(Collectors.toList()); |
| | | List<SysMenu> collect = s2.stream() |
| | | .filter(e -> e.getParentId().equals(menu.getMenuId())) |
| | | .collect(Collectors.toList()); |
| | | menu.setChildren(collect); |
| | | } |
| | | return s1; |
| | |
| | | SysRole sysRole = roleMapper.selectRoleByUserId(userId); |
| | | // 获取当前角色的菜单列表 |
| | | List<SysMenu> menus = menuMapper.selectListByRoleId(sysRole.getRoleId()); |
| | | if(menus.size()==0){ |
| | | if (menus.size() == 0) { |
| | | return new ArrayList<>(); |
| | | } |
| | | List<Long> menusId = menus.stream().map(SysMenu::getMenuId).collect(Collectors.toList()); |
| | |
| | | // 添加角色 |
| | | SysRole sysRole = new SysRole(); |
| | | sysRole.setRoleName(dto.getRoleName()); |
| | | sysRole.setPostType(dto.getPostType()); |
| | | roleMapper.insertRole(sysRole); |
| | | |
| | | // 添加角色权限中间表 |
| | |
| | | @Override |
| | | public PageInfo<SysRole> selectList(SysRoleQuery query) { |
| | | PageInfo<SysRole> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); |
| | | List<SysRole> list = roleMapper.selectList(query,pageInfo); |
| | | List<SysRole> list = roleMapper.selectList(query, pageInfo); |
| | | pageInfo.setRecords(list); |
| | | return pageInfo; |
| | | } |
| | |
| | | SysRole sysRole = new SysRole(); |
| | | sysRole.setRoleId(dto.getRoleId()); |
| | | sysRole.setRoleName(dto.getRoleName()); |
| | | sysRole.setPostType(dto.getPostType()); |
| | | roleMapper.updateRole(sysRole); |
| | | // 删除角色与菜单关联 |
| | | roleMenuMapper.deleteRoleMenuByRoleId(dto.getRoleId()); |
| | |
| | | import com.ruoyi.system.domain.TbField; |
| | | import com.ruoyi.system.domain.TbScore; |
| | | import com.ruoyi.system.dto.BasicDataDTO; |
| | | import com.ruoyi.system.handler.CustomerHandler; |
| | | import com.ruoyi.system.handler.CustomCellWriteHandler; |
| | | import com.ruoyi.system.listener.BasicDataListener; |
| | | import com.ruoyi.system.listener.HistoryDataListener; |
| | | import com.ruoyi.system.mapper.TbBasicDataMapper; |
| | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void saveBasicData(BasicDataDTO dto) { |
| | | public void saveBasicData(BasicDataDTO dto) throws Exception { |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | String areaCode = loginUser.getUser().getAreaCode(); |
| | | // 数据校验 |
| | | if (Objects.isNull(dto) || CollUtils.isEmpty(dto.getFields())) { |
| | | return; |
| | | } |
| | | String nowQuarter = DateUtils.getNowQuarter(); |
| | | TbBasicData tbBasicData = BeanUtils.copyBean(dto, TbBasicData.class); |
| | | tbBasicData.setDeptAreaCode(areaCode); |
| | | tbBasicData.setStatus(ReportingStatusEnum.MISSING_DATA); |
| | | tbBasicData.setQuarter(nowQuarter); |
| | | tbBasicData.setReportingTime(DateUtils.getQuarterDate(nowQuarter)); |
| | | this.saveOrUpdate(tbBasicData); |
| | | // 保存基础数据动态字段数据 |
| | | List<TbBasicDataField> tbBasicDataFields = |
| | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void importData(MultipartFile file, String quarter) throws IOException { |
| | | //校验季度 |
| | | Date quarterDate = DateUtils.getQuarterDate(quarter); |
| | | |
| | | Map<String, Date> quarterMap = DateUtils.getQuarterDate(new Date()); |
| | | Date date = quarterMap.get("first"); |
| | | LocalDate quarterLocalDate = DateUtils.dateToLocalDate(quarterDate); |
| | | LocalDate dateLocalDate = DateUtils.dateToLocalDate(date); |
| | | if (quarterLocalDate.isAfter(dateLocalDate) || quarterLocalDate.equals(dateLocalDate)) { |
| | | throw new ServiceException("请导入过去季度的数据。"); |
| | | } |
| | | EasyExcel.read( |
| | | file.getInputStream(), |
| | | new HistoryDataListener( |
| | |
| | | .list(); |
| | | //构建Excel写对象 |
| | | try (ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()) |
| | | .registerWriteHandler(new CustomerHandler()) |
| | | .registerWriteHandler(new CustomCellWriteHandler()) |
| | | .registerWriteHandler(EasyExcelUtil.getStyleStrategy()).build()) { |
| | | WriteSheet writeSheet; |
| | | //遍历季度基础数据 |
| | |
| | | TbBasicDataField transferPaymentScale = basicDataFieldMap.get(-1L); |
| | | valueList.add( |
| | | Objects.nonNull(transferPaymentScale) |
| | | ? FieldBuildUtil.formatNumberWithCommas( |
| | | transferPaymentScale.getFieldValue()) |
| | | ? transferPaymentScale.getFieldValue() |
| | | : ""); |
| | | TbBasicDataField currentGdp = basicDataFieldMap.get(-2L); |
| | | valueList.add( |
| | | Objects.nonNull(currentGdp) |
| | | ? FieldBuildUtil.formatNumberWithCommas( |
| | | currentGdp.getFieldValue()) |
| | | ? currentGdp.getFieldValue() |
| | | : ""); |
| | | for (TbField tbField : fieldList) { |
| | | TbBasicDataField tbBasicDataField = basicDataFieldMap.get(tbField.getId()); |
| | | valueList.add( |
| | | Objects.nonNull(tbBasicDataField) |
| | | ? FieldBuildUtil.formatNumberWithCommas( |
| | | tbBasicDataField.getFieldValue()) |
| | | ? tbBasicDataField.getFieldValue() |
| | | : ""); |
| | | } |
| | | excellist.add(valueList); |
| | |
| | | package com.ruoyi.system.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.common.enums.DataScreenConfigEnum; |
| | | import com.ruoyi.common.utils.BeanUtils; |
| | | import com.ruoyi.system.domain.TbDataScreenConfig; |
| | | import com.ruoyi.system.dto.update.DataIndicatorsUpdDTO; |
| | | import com.ruoyi.system.dto.update.FormalIndicatorsUpdDTO; |
| | | import com.ruoyi.system.dto.update.RiskLevelUpdDTO; |
| | | import com.ruoyi.system.mapper.TbDataScreenConfigMapper; |
| | | import com.ruoyi.system.query.DataScreenConfigQuery; |
| | | import com.ruoyi.system.service.TbDataScreenConfigService; |
| | | import com.ruoyi.system.vo.DataScreenConfigVO; |
| | | import java.util.List; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | * @since 2024-03-13 |
| | | */ |
| | | @Service |
| | | public class TbDataScreenConfigServiceImpl extends ServiceImpl<TbDataScreenConfigMapper, TbDataScreenConfig> implements TbDataScreenConfigService { |
| | | public class TbDataScreenConfigServiceImpl extends |
| | | ServiceImpl<TbDataScreenConfigMapper, TbDataScreenConfig> implements |
| | | TbDataScreenConfigService { |
| | | |
| | | @Override |
| | | public DataScreenConfigVO getRiskLevel() { |
| | | TbDataScreenConfig tbDataScreenConfig = this.lambdaQuery() |
| | | .eq(TbDataScreenConfig::getType, DataScreenConfigEnum.RISK_LEVEL) |
| | | .one(); |
| | | return BeanUtils.copyBean(tbDataScreenConfig, DataScreenConfigVO.class); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public DataScreenConfigVO editRiskLevel(RiskLevelUpdDTO dto) { |
| | | TbDataScreenConfig tbDataScreenConfig = BeanUtils.copyBean(dto, |
| | | TbDataScreenConfig.class); |
| | | tbDataScreenConfig.setType(DataScreenConfigEnum.RISK_LEVEL); |
| | | this.saveOrUpdate(tbDataScreenConfig); |
| | | return BeanUtils.copyBean(tbDataScreenConfig, DataScreenConfigVO.class); |
| | | } |
| | | |
| | | @Override |
| | | public List<DataScreenConfigVO> getIndicatorsConfig(DataScreenConfigQuery query) { |
| | | List<TbDataScreenConfig> list = this.lambdaQuery() |
| | | .eq(TbDataScreenConfig::getType, query.getType()).list(); |
| | | return BeanUtils.copyList(list, DataScreenConfigVO.class); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public DataScreenConfigVO editDataIndicatorsConfig(DataIndicatorsUpdDTO dto) { |
| | | TbDataScreenConfig tbDataScreenConfig = BeanUtils.copyBean(dto, |
| | | TbDataScreenConfig.class); |
| | | tbDataScreenConfig.setType(DataScreenConfigEnum.DATA_INDICATORS); |
| | | this.saveOrUpdate(tbDataScreenConfig); |
| | | return BeanUtils.copyBean(tbDataScreenConfig, DataScreenConfigVO.class); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public DataScreenConfigVO editFormalIndicatorsConfig(FormalIndicatorsUpdDTO dto) { |
| | | TbDataScreenConfig tbDataScreenConfig = BeanUtils.copyBean(dto, |
| | | TbDataScreenConfig.class); |
| | | tbDataScreenConfig.setType(DataScreenConfigEnum.FORMAL_INDICATORS); |
| | | this.saveOrUpdate(tbDataScreenConfig); |
| | | return BeanUtils.copyBean(tbDataScreenConfig, DataScreenConfigVO.class); |
| | | } |
| | | } |
| | |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.system.domain.TbQuestion; |
| | | import com.ruoyi.system.dto.QuestionDTO; |
| | | import com.ruoyi.system.dto.QuestionUpdDto; |
| | | import com.ruoyi.system.dto.update.QuestionUpdDTO; |
| | | import com.ruoyi.system.mapper.TbQuestionMapper; |
| | | import com.ruoyi.system.query.QuestionQuery; |
| | | import com.ruoyi.system.service.TbQuestionService; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void editQuestion(QuestionUpdDto dto) { |
| | | public void editQuestion(QuestionUpdDTO dto) { |
| | | TbQuestion tbQuestion = BeanUtils.copyBean(dto, TbQuestion.class); |
| | | this.updateById(tbQuestion); |
| | | } |
New file |
| | |
| | | package com.ruoyi.system.vo; |
| | | |
| | | import com.ruoyi.common.enums.DataScreenConfigEnum; |
| | | import com.ruoyi.common.enums.SubTypeEnum; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author mitao |
| | | * @date 2024/4/10 |
| | | */ |
| | | @Data |
| | | @ApiModel(value = "大屏数据配置视图对象") |
| | | public class DataScreenConfigVO { |
| | | |
| | | @ApiModelProperty(value = "大屏数据配置id") |
| | | private Long id; |
| | | |
| | | @ApiModelProperty(value = "配置类型(1=风险等级设置 2=数据指标设置 3=形式指标设置)") |
| | | private DataScreenConfigEnum type; |
| | | |
| | | @ApiModelProperty(value = "得分计算规则") |
| | | private String calculateFormula; |
| | | |
| | | @ApiModelProperty(value = "得分率计算规则") |
| | | private String calculateRateFormula; |
| | | |
| | | @ApiModelProperty(value = "配置类型子类型(1=指标一 2=指标二 3=指标三 4=指标四)") |
| | | private SubTypeEnum subType; |
| | | |
| | | @ApiModelProperty(value = "风险等级范围-高风险得分") |
| | | private String highRisk; |
| | | |
| | | @ApiModelProperty(value = "风险等级范围-中风险得分") |
| | | private String mediumRisk; |
| | | |
| | | @ApiModelProperty(value = "风险等级范围-低风险得分") |
| | | private String lowRisk; |
| | | |
| | | @ApiModelProperty(value = "风险等级范围-无风险得分") |
| | | private String noRisk; |
| | | |
| | | } |
| | |
| | | <?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"> |
| | | PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
| | | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.ruoyi.system.mapper.SysRoleMapper"> |
| | | |
| | | <resultMap type="SysRole" id="SysRoleResult"> |
| | | <id property="roleId" column="role_id" /> |
| | | <result property="roleName" column="role_name" /> |
| | | <result property="roleKey" column="role_key" /> |
| | | <result property="roleSort" column="role_sort" /> |
| | | <result property="dataScope" column="data_scope" /> |
| | | <result property="menuCheckStrictly" column="menu_check_strictly" /> |
| | | <result property="deptCheckStrictly" column="dept_check_strictly" /> |
| | | <result property="status" column="status" /> |
| | | <result property="delFlag" column="del_flag" /> |
| | | <result property="createBy" column="create_by" /> |
| | | <result property="createTime" column="create_time" /> |
| | | <result property="updateBy" column="update_by" /> |
| | | <result property="updateTime" column="update_time" /> |
| | | <result property="remark" column="remark" /> |
| | | <result property="removeDays" column="removeDays" /> |
| | | <result property="postType" column="postType" /> |
| | | </resultMap> |
| | | |
| | | <sql id="selectRoleVo"> |
| | | select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.menu_check_strictly, r.dept_check_strictly, |
| | | r.status, r.del_flag, r.create_time, r.remark,r.postType,r.removeDays |
| | | from sys_role r |
| | | left join sys_user_role ur on ur.role_id = r.role_id |
| | | left join sys_user u on u.user_id = ur.user_id |
| | | left join sys_dept d on u.dept_id = d.dept_id |
| | | </sql> |
| | | |
| | | <select id="selectRoleList" parameterType="SysRole" resultMap="SysRoleResult"> |
| | | <include refid="selectRoleVo"/> |
| | | where r.del_flag = '0' |
| | | <if test="roleId != null and roleId != 0"> |
| | | AND r.role_id = #{roleId} |
| | | </if> |
| | | <if test="roleName != null and roleName != ''"> |
| | | AND r.role_name like concat('%', #{roleName}, '%') |
| | | </if> |
| | | <if test="status != null and status != ''"> |
| | | AND r.status = #{status} |
| | | </if> |
| | | <if test="roleKey != null and roleKey != ''"> |
| | | AND r.role_key like concat('%', #{roleKey}, '%') |
| | | </if> |
| | | order by r.role_sort |
| | | </select> |
| | | |
| | | <select id="selectRolePermissionByUserId" parameterType="Long" resultMap="SysRoleResult"> |
| | | <include refid="selectRoleVo"/> |
| | | WHERE r.del_flag = '0' and ur.user_id = #{userId} |
| | | </select> |
| | | |
| | | <select id="selectRoleAll" resultMap="SysRoleResult"> |
| | | <include refid="selectRoleVo"/> |
| | | </select> |
| | | |
| | | <select id="selectRoleListByUserId" parameterType="Long" resultType="Long"> |
| | | select r.role_id |
| | | from sys_role r |
| | | left join sys_user_role ur on ur.role_id = r.role_id |
| | | left join sys_user u on u.user_id = ur.user_id |
| | | where u.user_id = #{userId} |
| | | </select> |
| | | |
| | | <select id="selectRoleById" parameterType="Long" resultMap="SysRoleResult"> |
| | | <include refid="selectRoleVo"/> |
| | | where r.role_id = #{roleId} |
| | | </select> |
| | | |
| | | <select id="selectRolesByUserName" parameterType="String" resultMap="SysRoleResult"> |
| | | <include refid="selectRoleVo"/> |
| | | WHERE r.del_flag = '0' and u.user_name = #{userName} |
| | | </select> |
| | | |
| | | <select id="checkRoleNameUnique" parameterType="String" resultMap="SysRoleResult"> |
| | | <include refid="selectRoleVo"/> |
| | | where r.role_name=#{roleName} and r.del_flag = '0' limit 1 |
| | | </select> |
| | | |
| | | <select id="checkRoleKeyUnique" parameterType="String" resultMap="SysRoleResult"> |
| | | <include refid="selectRoleVo"/> |
| | | where r.role_key=#{roleKey} and r.del_flag = '0' limit 1 |
| | | </select> |
| | | <select id="selectCountByRoleName" resultType="java.lang.Integer"> |
| | | select count(*) from sys_role |
| | | <where> |
| | | <if test="roleName != null and roleName != ''"> |
| | | AND role_name = #{roleName} |
| | | </if> |
| | | AND del_flag = 0 |
| | | </where> |
| | | </select> |
| | | <select id="selectList" resultType="com.ruoyi.common.core.domain.entity.SysRole"> |
| | | select role_id AS roleId, role_name AS roleName, role_key AS roleKey, role_sort AS roleSort, data_scope AS dataScope, |
| | | menu_check_strictly AS menuCheckStrictly, dept_check_strictly AS deptCheckStrictly,status AS status, del_flag AS delFlag, |
| | | create_time AS createTime,create_by AS createBy,postType AS postType,removeDays AS removeDays |
| | | from sys_role |
| | | <where> |
| | | <if test="query.roleName != null and query.roleName != ''"> |
| | | AND role_name LIKE concat('%',#{query.roleName},'%') |
| | | </if> |
| | | <if test="query.status != null"> |
| | | AND status = #{query.status} |
| | | </if> |
| | | AND del_flag = 0 |
| | | </where> |
| | | </select> |
| | | <select id="selectCount" resultType="java.lang.Integer"> |
| | | select count(*) from sys_role |
| | | <where> |
| | | <if test="status != null"> |
| | | AND status = #{status} |
| | | </if> |
| | | AND del_flag = 0 |
| | | </where> |
| | | </select> |
| | | <select id="selectListByDelFlag" resultType="com.ruoyi.common.core.domain.entity.SysRole"> |
| | | select role_id AS roleId, role_name AS roleName, role_key AS roleKey, role_sort AS roleSort, data_scope AS dataScope, |
| | | menu_check_strictly AS menuCheckStrictly, dept_check_strictly AS deptCheckStrictly,status AS status, del_flag AS delFlag, |
| | | create_time AS createTime,create_by AS createBy,postType AS postType,removeDays AS removeDays |
| | | from sys_role where del_flag = 0 |
| | | </select> |
| | | <resultMap type="SysRole" id="SysRoleResult"> |
| | | <id property="roleId" column="role_id"/> |
| | | <result property="roleName" column="role_name"/> |
| | | <result property="roleKey" column="role_key"/> |
| | | <result property="roleSort" column="role_sort"/> |
| | | <result property="dataScope" column="data_scope"/> |
| | | <result property="menuCheckStrictly" column="menu_check_strictly"/> |
| | | <result property="deptCheckStrictly" column="dept_check_strictly"/> |
| | | <result property="status" column="status"/> |
| | | <result property="delFlag" column="del_flag"/> |
| | | <result property="createBy" column="create_by"/> |
| | | <result property="createTime" column="create_time"/> |
| | | <result property="updateBy" column="update_by"/> |
| | | <result property="updateTime" column="update_time"/> |
| | | <result property="remark" column="remark"/> |
| | | <result property="removeDays" column="removeDays"/> |
| | | <result property="postType" column="postType"/> |
| | | </resultMap> |
| | | |
| | | <select id="selectRoleByUserId" resultType="com.ruoyi.common.core.domain.entity.SysRole"> |
| | | select distinct r.role_id AS roleId, r.role_name AS roleName, r.role_key AS roleKey, r.role_sort AS roleSort, r.data_scope AS dataScope, |
| | | r.menu_check_strictly AS menuCheckStrictly, r.dept_check_strictly AS deptCheckStrictly,r.status AS status, |
| | | r.del_flag AS delFlag, r.create_time AS createTime,r.create_by AS createBy |
| | | from sys_role r |
| | | left join sys_user_role ur on ur.role_id = r.role_id |
| | | where ur.user_id = #{userId} |
| | | </select> |
| | | <select id="selectByUserId" resultType="java.lang.String"> |
| | | select t2.role_name from sys_user_role t1 |
| | | left join sys_role t2 on t1.role_id = t2.role_id |
| | | where t1.user_id = #{userId} |
| | | </select> |
| | | <sql id="selectRoleVo"> |
| | | select distinct r.role_id, |
| | | r.role_name, |
| | | r.role_key, |
| | | r.role_sort, |
| | | r.data_scope, |
| | | r.menu_check_strictly, |
| | | r.dept_check_strictly, |
| | | r.status, |
| | | r.del_flag, |
| | | r.create_time, |
| | | r.remark, |
| | | r.postType, |
| | | r.removeDays |
| | | from sys_role r |
| | | left join sys_user_role ur on ur.role_id = r.role_id |
| | | left join sys_user u on u.user_id = ur.user_id |
| | | left join sys_dept d on u.dept_id = d.dept_id |
| | | </sql> |
| | | |
| | | <insert id="insertRole" parameterType="SysRole" useGeneratedKeys="true" keyProperty="roleId"> |
| | | insert into sys_role( |
| | | <if test="roleId != null and roleId != 0">role_id,</if> |
| | | <if test="roleName != null and roleName != ''">role_name,</if> |
| | | <if test="roleKey != null and roleKey != ''">role_key,</if> |
| | | <if test="roleSort != null">role_sort,</if> |
| | | <if test="dataScope != null and dataScope != ''">data_scope,</if> |
| | | <if test="menuCheckStrictly != null">menu_check_strictly,</if> |
| | | <if test="deptCheckStrictly != null">dept_check_strictly,</if> |
| | | <if test="status != null and status != ''">status,</if> |
| | | <if test="remark != null and remark != ''">remark,</if> |
| | | <if test="createBy != null and createBy != ''">create_by,</if> |
| | | <if test="removeDays != null">removeDays,</if> |
| | | <if test="postType != null">postType,</if> |
| | | create_time |
| | | )values( |
| | | <if test="roleId != null and roleId != 0">#{roleId},</if> |
| | | <if test="roleName != null and roleName != ''">#{roleName},</if> |
| | | <if test="roleKey != null and roleKey != ''">#{roleKey},</if> |
| | | <if test="roleSort != null">#{roleSort},</if> |
| | | <if test="dataScope != null and dataScope != ''">#{dataScope},</if> |
| | | <if test="menuCheckStrictly != null">#{menuCheckStrictly},</if> |
| | | <if test="deptCheckStrictly != null">#{deptCheckStrictly},</if> |
| | | <if test="status != null and status != ''">#{status},</if> |
| | | <if test="remark != null and remark != ''">#{remark},</if> |
| | | <if test="createBy != null and createBy != ''">#{createBy},</if> |
| | | <if test="removeDays != null">#{removeDays},</if> |
| | | <if test="postType != null">#{postType},</if> |
| | | sysdate() |
| | | ) |
| | | </insert> |
| | | |
| | | <update id="updateRole" parameterType="SysRole"> |
| | | update sys_role |
| | | <set> |
| | | <if test="roleName != null and roleName != ''">role_name = #{roleName},</if> |
| | | <if test="roleKey != null and roleKey != ''">role_key = #{roleKey},</if> |
| | | <if test="roleSort != null">role_sort = #{roleSort},</if> |
| | | <if test="dataScope != null and dataScope != ''">data_scope = #{dataScope},</if> |
| | | <if test="menuCheckStrictly != null">menu_check_strictly = #{menuCheckStrictly},</if> |
| | | <if test="deptCheckStrictly != null">dept_check_strictly = #{deptCheckStrictly},</if> |
| | | <if test="status != null and status != ''">status = #{status},</if> |
| | | <if test="remark != null">remark = #{remark},</if> |
| | | <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> |
| | | <if test="removeDays != null">removeDays = #{removeDays},</if> |
| | | <if test="postType != null">postType = #{postType},</if> |
| | | update_time = sysdate() |
| | | </set> |
| | | where role_id = #{roleId} |
| | | </update> |
| | | <update id="updateStatus" parameterType="SysRole"> |
| | | update sys_role |
| | | <set> |
| | | <if test="status != null">status = #{status},</if> |
| | | <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> |
| | | update_time = sysdate() |
| | | </set> |
| | | where role_id = #{roleId} |
| | | </update> |
| | | <select id="selectRoleList" parameterType="SysRole" resultMap="SysRoleResult"> |
| | | <include refid="selectRoleVo"/> |
| | | where r.del_flag = '0' |
| | | <if test="roleId != null and roleId != 0"> |
| | | AND r.role_id = #{roleId} |
| | | </if> |
| | | <if test="roleName != null and roleName != ''"> |
| | | AND r.role_name like concat('%', #{roleName}, '%') |
| | | </if> |
| | | <if test="status != null and status != ''"> |
| | | AND r.status = #{status} |
| | | </if> |
| | | <if test="roleKey != null and roleKey != ''"> |
| | | AND r.role_key like concat('%', #{roleKey}, '%') |
| | | </if> |
| | | order by r.role_sort |
| | | </select> |
| | | |
| | | <delete id="deleteRoleById" parameterType="Long"> |
| | | update sys_role set del_flag = '2' where role_id = #{roleId} |
| | | </delete> |
| | | |
| | | <delete id="deleteRoleByIds" parameterType="Long"> |
| | | update sys_role set del_flag = '2' where role_id in |
| | | <foreach collection="roleIds" item="roleId" open="(" separator="," close=")"> |
| | | #{roleId} |
| | | </foreach> |
| | | </delete> |
| | | |
| | | <select id="selectRolePermissionByUserId" parameterType="Long" resultMap="SysRoleResult"> |
| | | <include refid="selectRoleVo"/> |
| | | WHERE r.del_flag = '0' and ur.user_id = #{userId} |
| | | </select> |
| | | |
| | | <select id="selectRoleAll" resultMap="SysRoleResult"> |
| | | <include refid="selectRoleVo"/> |
| | | </select> |
| | | |
| | | <select id="selectRoleListByUserId" parameterType="Long" resultType="Long"> |
| | | select r.role_id |
| | | from sys_role r |
| | | left join sys_user_role ur on ur.role_id = r.role_id |
| | | left join sys_user u on u.user_id = ur.user_id |
| | | where u.user_id = #{userId} |
| | | </select> |
| | | |
| | | <select id="selectRoleById" parameterType="Long" resultMap="SysRoleResult"> |
| | | <include refid="selectRoleVo"/> |
| | | where r.role_id = #{roleId} |
| | | </select> |
| | | |
| | | <select id="selectRolesByUserName" parameterType="String" resultMap="SysRoleResult"> |
| | | <include refid="selectRoleVo"/> |
| | | WHERE r.del_flag = '0' and u.user_name = #{userName} |
| | | </select> |
| | | |
| | | <select id="checkRoleNameUnique" parameterType="String" resultMap="SysRoleResult"> |
| | | <include refid="selectRoleVo"/> |
| | | where r.role_name=#{roleName} and r.del_flag = '0' limit 1 |
| | | </select> |
| | | |
| | | <select id="checkRoleKeyUnique" parameterType="String" resultMap="SysRoleResult"> |
| | | <include refid="selectRoleVo"/> |
| | | where r.role_key=#{roleKey} and r.del_flag = '0' limit 1 |
| | | </select> |
| | | <select id="selectCountByRoleName" resultType="java.lang.Integer"> |
| | | select count(*) from sys_role |
| | | <where> |
| | | <if test="roleName != null and roleName != ''"> |
| | | AND role_name = #{roleName} |
| | | </if> |
| | | AND del_flag = 0 |
| | | </where> |
| | | </select> |
| | | <select id="selectList" resultType="com.ruoyi.common.core.domain.entity.SysRole"> |
| | | select role_id AS roleId, role_name AS roleName, role_key AS roleKey, role_sort AS roleSort, |
| | | data_scope AS dataScope, |
| | | menu_check_strictly AS menuCheckStrictly, dept_check_strictly AS deptCheckStrictly,status AS |
| | | status, del_flag AS delFlag, |
| | | create_time AS createTime,create_by AS createBy |
| | | from sys_role |
| | | <where> |
| | | <if test="query.roleName != null and query.roleName != ''"> |
| | | AND role_name LIKE concat('%',#{query.roleName},'%') |
| | | </if> |
| | | <if test="query.status != null"> |
| | | AND status = #{query.status} |
| | | </if> |
| | | AND del_flag = 0 |
| | | </where> |
| | | </select> |
| | | <select id="selectCount" resultType="java.lang.Integer"> |
| | | select count(*) from sys_role |
| | | <where> |
| | | <if test="status != null"> |
| | | AND status = #{status} |
| | | </if> |
| | | AND del_flag = 0 |
| | | </where> |
| | | </select> |
| | | <select id="selectListByDelFlag" resultType="com.ruoyi.common.core.domain.entity.SysRole"> |
| | | select role_id AS roleId, |
| | | role_name AS roleName, |
| | | role_key AS roleKey, |
| | | role_sort AS roleSort, |
| | | data_scope AS dataScope, |
| | | menu_check_strictly AS menuCheckStrictly, |
| | | dept_check_strictly AS deptCheckStrictly, |
| | | status AS status, |
| | | del_flag AS delFlag, |
| | | create_time AS createTime, |
| | | create_by AS createBy, |
| | | postType AS postType, |
| | | removeDays AS removeDays |
| | | from sys_role |
| | | where del_flag = 0 |
| | | </select> |
| | | |
| | | <select id="selectRoleByUserId" resultType="com.ruoyi.common.core.domain.entity.SysRole"> |
| | | select distinct r.role_id AS roleId, |
| | | r.role_name AS roleName, |
| | | r.role_key AS roleKey, |
| | | r.role_sort AS roleSort, |
| | | r.data_scope AS dataScope, |
| | | r.menu_check_strictly AS menuCheckStrictly, |
| | | r.dept_check_strictly AS deptCheckStrictly, |
| | | r.status AS status, |
| | | r.del_flag AS delFlag, |
| | | r.create_time AS createTime, |
| | | r.create_by AS createBy |
| | | from sys_role r |
| | | left join sys_user_role ur on ur.role_id = r.role_id |
| | | where ur.user_id = #{userId} |
| | | </select> |
| | | <select id="selectByUserId" resultType="java.lang.String"> |
| | | select t2.role_name |
| | | from sys_user_role t1 |
| | | left join sys_role t2 on t1.role_id = t2.role_id |
| | | where t1.user_id = #{userId} |
| | | </select> |
| | | |
| | | <insert id="insertRole" parameterType="SysRole" useGeneratedKeys="true" keyProperty="roleId"> |
| | | insert into sys_role( |
| | | <if test="roleId != null and roleId != 0">role_id,</if> |
| | | <if test="roleName != null and roleName != ''">role_name,</if> |
| | | <if test="roleKey != null and roleKey != ''">role_key,</if> |
| | | <if test="roleSort != null">role_sort,</if> |
| | | <if test="dataScope != null and dataScope != ''">data_scope,</if> |
| | | <if test="menuCheckStrictly != null">menu_check_strictly,</if> |
| | | <if test="deptCheckStrictly != null">dept_check_strictly,</if> |
| | | <if test="status != null and status != ''">status,</if> |
| | | <if test="remark != null and remark != ''">remark,</if> |
| | | <if test="createBy != null and createBy != ''">create_by,</if> |
| | | <if test="removeDays != null">removeDays,</if> |
| | | <if test="postType != null">postType,</if> |
| | | create_time |
| | | )values( |
| | | <if test="roleId != null and roleId != 0">#{roleId},</if> |
| | | <if test="roleName != null and roleName != ''">#{roleName},</if> |
| | | <if test="roleKey != null and roleKey != ''">#{roleKey},</if> |
| | | <if test="roleSort != null">#{roleSort},</if> |
| | | <if test="dataScope != null and dataScope != ''">#{dataScope},</if> |
| | | <if test="menuCheckStrictly != null">#{menuCheckStrictly},</if> |
| | | <if test="deptCheckStrictly != null">#{deptCheckStrictly},</if> |
| | | <if test="status != null and status != ''">#{status},</if> |
| | | <if test="remark != null and remark != ''">#{remark},</if> |
| | | <if test="createBy != null and createBy != ''">#{createBy},</if> |
| | | <if test="removeDays != null">#{removeDays},</if> |
| | | <if test="postType != null">#{postType},</if> |
| | | sysdate() |
| | | ) |
| | | </insert> |
| | | |
| | | <update id="updateRole" parameterType="SysRole"> |
| | | update sys_role |
| | | <set> |
| | | <if test="roleName != null and roleName != ''">role_name = #{roleName},</if> |
| | | <if test="roleKey != null and roleKey != ''">role_key = #{roleKey},</if> |
| | | <if test="roleSort != null">role_sort = #{roleSort},</if> |
| | | <if test="dataScope != null and dataScope != ''">data_scope = #{dataScope},</if> |
| | | <if test="menuCheckStrictly != null">menu_check_strictly = #{menuCheckStrictly},</if> |
| | | <if test="deptCheckStrictly != null">dept_check_strictly = #{deptCheckStrictly},</if> |
| | | <if test="status != null and status != ''">status = #{status},</if> |
| | | <if test="remark != null">remark = #{remark},</if> |
| | | <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> |
| | | <if test="removeDays != null">removeDays = #{removeDays},</if> |
| | | <if test="postType != null">postType = #{postType},</if> |
| | | update_time = sysdate() |
| | | </set> |
| | | where role_id = #{roleId} |
| | | </update> |
| | | <update id="updateStatus" parameterType="SysRole"> |
| | | update sys_role |
| | | <set> |
| | | <if test="status != null">status = #{status},</if> |
| | | <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> |
| | | update_time = sysdate() |
| | | </set> |
| | | where role_id = #{roleId} |
| | | </update> |
| | | |
| | | <delete id="deleteRoleById" parameterType="Long"> |
| | | update sys_role |
| | | set del_flag = '2' |
| | | where role_id = #{roleId} |
| | | </delete> |
| | | |
| | | <delete id="deleteRoleByIds" parameterType="Long"> |
| | | update sys_role set del_flag = '2' where role_id in |
| | | <foreach collection="roleIds" item="roleId" open="(" separator="," close=")"> |
| | | #{roleId} |
| | | </foreach> |
| | | </delete> |
| | | |
| | | </mapper> |
| | |
| | | </insert> |
| | | |
| | | <resultMap id="SysUserResult" type="SysUser"> |
| | | <association javaType="SysDept" property="dept" resultMap="deptResult"/> |
| | | <collection javaType="java.util.List" property="roles" resultMap="RoleResult"/> |
| | | <id column="user_id" property="userId"/> |
| | | <result column="dept_id" property="deptId"/> |
| | | <result column="user_name" property="userName"/> |
| | |
| | | <result column="county_flag" property="countyFlag"/> |
| | | <result column="person_in_charge" property="personInCharge"/> |
| | | <result column="focussed" property="focussed"/> |
| | | <association javaType="SysDept" property="dept" resultMap="deptResult"/> |
| | | <collection javaType="java.util.List" property="roles" resultMap="RoleResult"/> |
| | | </resultMap> |
| | | <resultMap id="deptResult" type="SysDept"> |
| | | <id column="dept_id" property="deptId"/> |
| | |
| | | <?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"> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
| | | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.ruoyi.system.mapper.TbBasicDataMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.ruoyi.system.domain.TbBasicData"> |
| | | <id column="id" property="id"/> |
| | | <result column="quarter" property="quarter"/> |
| | | <result column="dept_area_code" property="deptAreaCode"/> |
| | | <result column="transfer_payment_scale" property="transferPaymentScale"/> |
| | | <result column="current_gdp" property="currentGdp"/> |
| | | <result column="remark" property="remark"/> |
| | | <result column="status" property="status"/> |
| | | <result column="del_flag" property="delFlag"/> |
| | | <result column="create_by" property="createBy"/> |
| | | <result column="create_time" property="createTime"/> |
| | | <result column="update_by" property="updateBy"/> |
| | | <result column="update_time" property="updateTime"/> |
| | | </resultMap> |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.ruoyi.system.domain.TbBasicData"> |
| | | <id column="id" property="id"/> |
| | | <result column="quarter" property="quarter"/> |
| | | <result column="dept_area_code" property="deptAreaCode"/> |
| | | <result column="transfer_payment_scale" property="transferPaymentScale"/> |
| | | <result column="current_gdp" property="currentGdp"/> |
| | | <result column="remark" property="remark"/> |
| | | <result column="status" property="status"/> |
| | | <result column="del_flag" property="delFlag"/> |
| | | <result column="create_by" property="createBy"/> |
| | | <result column="create_time" property="createTime"/> |
| | | <result column="update_by" property="updateBy"/> |
| | | <result column="update_time" property="updateTime"/> |
| | | <result column="reporting_time" property="reportingTime"/> |
| | | </resultMap> |
| | | |
| | | <!-- 通用查询结果列 --> |
| | | <sql id="Base_Column_List"> |
| | | id, quarter, dept_id, transfer_payment_scale, current_gdp, remark, status, del_flag, create_by, create_time, update_by, update_time |
| | | </sql> |
| | | <select id="fieldsStatics" resultType="com.ruoyi.system.vo.CurrentFieldsVO"> |
| | | SELECT |
| | | tbd.id, |
| | | su.area_name, |
| | | IF(tbd.`quarter` IS NULL, CONCAT(YEAR(NOW()), '年', |
| | | CASE |
| | | WHEN MONTH(NOW()) BETWEEN 1 AND 3 THEN '一季度' |
| | | WHEN MONTH(NOW()) BETWEEN 4 AND 6 THEN '二季度' |
| | | WHEN MONTH(NOW()) BETWEEN 7 AND 9 THEN '三季度' |
| | | ELSE '四季度' |
| | | END), tbd.`quarter`) AS `quarter`, |
| | | su.person_in_charge, |
| | | su.phone_number, |
| | | tbd.create_time, |
| | | COALESCE(tbd.`status`, 1) AS `status` |
| | | FROM |
| | | (SELECT * FROM sys_user WHERE user_type = 2) AS su |
| | | LEFT JOIN |
| | | (SELECT * FROM tb_basic_data WHERE `quarter` = #{dto.quarter}) AS tbd ON su.area_code = tbd.dept_area_code |
| | | <where> |
| | | tbd.quarter = #{dto.quarter} |
| | | <if test="dto.areaName != null and dto.areaName !=''"> |
| | | AND su.area_name LIKE CONCAT('%',#{dto.areaName},'%') |
| | | </if> |
| | | <if test="dto.status != null"> |
| | | AND tbd.status = #{dto.status} |
| | | </if> |
| | | <if test="dto.personInCharge != null and dto.personInCharge !=''"> |
| | | AND su.person_in_charge LIKE CONCAT('%',#{dto.personInCharge},'%') |
| | | </if> |
| | | <if test="dto.phoneNumber != null and dto.phoneNumber != ''"> |
| | | AND su.phone_number LIKE CONCAT('%',#{dto.phoneNumber},'%') |
| | | </if> |
| | | </where> |
| | | </select> |
| | | <!-- 通用查询结果列 --> |
| | | <sql id="Base_Column_List"> |
| | | id, quarter, dept_id, transfer_payment_scale, current_gdp, remark, status, del_flag, create_by, create_time, update_by, update_time,reporting_time |
| | | </sql> |
| | | <select id="fieldsStatics" resultType="com.ruoyi.system.vo.CurrentFieldsVO"> |
| | | SELECT |
| | | tbd.id, |
| | | su.area_name, |
| | | IF(tbd.`quarter` IS NULL, CONCAT(YEAR(NOW()), '年', |
| | | CASE |
| | | WHEN MONTH(NOW()) BETWEEN 1 AND 3 THEN '一季度' |
| | | WHEN MONTH(NOW()) BETWEEN 4 AND 6 THEN '二季度' |
| | | WHEN MONTH(NOW()) BETWEEN 7 AND 9 THEN '三季度' |
| | | ELSE '四季度' |
| | | END), tbd.`quarter`) AS `quarter`, |
| | | su.person_in_charge, |
| | | su.phone_number, |
| | | tbd.create_time, |
| | | COALESCE(tbd.`status`, 1) AS `status` |
| | | FROM |
| | | (SELECT * FROM sys_user WHERE user_type = 2) AS su |
| | | LEFT JOIN |
| | | (SELECT * FROM tb_basic_data WHERE `quarter` = #{dto.quarter}) AS tbd ON su.area_code = |
| | | tbd.dept_area_code |
| | | <where> |
| | | tbd.quarter = #{dto.quarter} |
| | | <if test="dto.areaName != null and dto.areaName !=''"> |
| | | AND su.area_name LIKE CONCAT('%',#{dto.areaName},'%') |
| | | </if> |
| | | <if test="dto.status != null"> |
| | | AND tbd.status = #{dto.status} |
| | | </if> |
| | | <if test="dto.personInCharge != null and dto.personInCharge !=''"> |
| | | AND su.person_in_charge LIKE CONCAT('%',#{dto.personInCharge},'%') |
| | | </if> |
| | | <if test="dto.phoneNumber != null and dto.phoneNumber != ''"> |
| | | AND su.phone_number LIKE CONCAT('%',#{dto.phoneNumber},'%') |
| | | </if> |
| | | </where> |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | <?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"> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
| | | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.ruoyi.system.mapper.TbDataScreenConfigMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.ruoyi.system.domain.TbDataScreenConfig"> |
| | | <id column="id" property="id" /> |
| | | <result column="type" property="type" /> |
| | | <result column="caculate_formula" property="caculateFormula" /> |
| | | <result column="sub_type" property="subType" /> |
| | | <result column="del_flag" property="delFlag" /> |
| | | <result column="create_by" property="createBy" /> |
| | | <result column="create_time" property="createTime" /> |
| | | <result column="update_by" property="updateBy" /> |
| | | <result column="update_time" property="updateTime" /> |
| | | </resultMap> |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.ruoyi.system.domain.TbDataScreenConfig"> |
| | | <id column="id" property="id"/> |
| | | <result column="type" property="type"/> |
| | | <result column="calculate_formula" property="calculateFormula"/> |
| | | <result column="sub_type" property="subType"/> |
| | | <result column="calculate_rate_formula" property="calculateRateFormula"/> |
| | | <result column="high_risk" property="highRisk"/> |
| | | <result column="medium_risk" property="mediumRisk"/> |
| | | <result column="low_risk" property="lowRisk"/> |
| | | <result column="no_risk" property="noRisk"/> |
| | | <result column="del_flag" property="delFlag"/> |
| | | <result column="create_by" property="createBy"/> |
| | | <result column="create_time" property="createTime"/> |
| | | <result column="update_by" property="updateBy"/> |
| | | <result column="update_time" property="updateTime"/> |
| | | </resultMap> |
| | | |
| | | <!-- 通用查询结果列 --> |
| | | <sql id="Base_Column_List"> |
| | | id, type, caculate_formula, sub_type, del_flag, create_by, create_time, update_by, update_time |
| | | </sql> |
| | | <!-- 通用查询结果列 --> |
| | | <sql id="Base_Column_List"> |
| | | <if test="true"> |
| | | id, type, caculate_formula, sub_type, del_flag, create_by, create_time, update_by, update_time |
| | | </if> |
| | | </sql> |
| | | |
| | | </mapper> |