运维模块搭建
This commit is contained in:
		| @ -15,6 +15,7 @@ | ||||
|         <module>ruoyi-resource</module> | ||||
|         <module>ruoyi-workflow</module> | ||||
|         <module>ruoyi-synjinlangyun</module> | ||||
|         <module>xny-ops</module> | ||||
|     </modules> | ||||
|  | ||||
|     <artifactId>ruoyi-modules</artifactId> | ||||
|  | ||||
| @ -195,7 +195,7 @@ public class GenController extends BaseController { | ||||
|      */ | ||||
|     private void genCode(HttpServletResponse response, byte[] data) throws IOException { | ||||
|         response.reset(); | ||||
|         response.addHeader("Access-Control-Allow-Origin", "*"); | ||||
| //        response.addHeader("Access-Control-Allow-Origin", "*"); | ||||
|         response.addHeader("Access-Control-Expose-Headers", "Content-Disposition"); | ||||
|         response.setHeader("Content-Disposition", "attachment; filename=\"ruoyi.zip\""); | ||||
|         response.addHeader("Content-Length", "" + data.length); | ||||
|  | ||||
							
								
								
									
										27
									
								
								ruoyi-modules/xny-ops/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								ruoyi-modules/xny-ops/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | ||||
| # 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/ | ||||
| FROM bellsoft/liberica-openjdk-rocky:17.0.15-cds | ||||
| #FROM bellsoft/liberica-openjdk-rocky:21.0.7-cds | ||||
| #FROM findepi/graalvm:java17-native | ||||
|  | ||||
| LABEL maintainer="Lion Li" | ||||
|  | ||||
| RUN mkdir -p /xny/ops/logs \ | ||||
|     /xny/ops/temp \ | ||||
|     /ruoyi/skywalking/agent | ||||
|  | ||||
| WORKDIR /xny/ops | ||||
|  | ||||
| ENV SERVER_PORT=19301 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="" | ||||
|  | ||||
| EXPOSE ${SERVER_PORT} | ||||
|  | ||||
| ADD ./target/xny-ops.jar ./app.jar | ||||
|  | ||||
| SHELL ["/bin/bash", "-c"] | ||||
|  | ||||
| ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -Dserver.port=${SERVER_PORT} \ | ||||
|            #-Dskywalking.agent.service_name=xny-ops \ | ||||
|            #-javaagent:/ruoyi/skywalking/agent/skywalking-agent.jar \ | ||||
|            -XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC ${JAVA_OPTS} \ | ||||
|            -jar app.jar | ||||
|  | ||||
							
								
								
									
										117
									
								
								ruoyi-modules/xny-ops/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										117
									
								
								ruoyi-modules/xny-ops/pom.xml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,117 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project xmlns="http://maven.apache.org/POM/4.0.0" | ||||
|          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||||
|          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||||
|     <parent> | ||||
|         <groupId>org.dromara</groupId> | ||||
|         <artifactId>ruoyi-modules</artifactId> | ||||
|         <version>${revision}</version> | ||||
|     </parent> | ||||
|     <modelVersion>4.0.0</modelVersion> | ||||
|  | ||||
|     <artifactId>xny-ops</artifactId> | ||||
|  | ||||
|     <description> | ||||
|         xny-ops模块 | ||||
|     </description> | ||||
|  | ||||
|     <dependencies> | ||||
|  | ||||
|         <dependency> | ||||
|             <groupId>org.dromara</groupId> | ||||
|             <artifactId>ruoyi-common-nacos</artifactId> | ||||
|         </dependency> | ||||
|  | ||||
|         <dependency> | ||||
|             <groupId>org.dromara</groupId> | ||||
|             <artifactId>ruoyi-common-sentinel</artifactId> | ||||
|         </dependency> | ||||
|  | ||||
|         <!-- RuoYi Common Log --> | ||||
|         <dependency> | ||||
|             <groupId>org.dromara</groupId> | ||||
|             <artifactId>ruoyi-common-log</artifactId> | ||||
|         </dependency> | ||||
|  | ||||
|         <dependency> | ||||
|             <groupId>org.dromara</groupId> | ||||
|             <artifactId>ruoyi-common-service-impl</artifactId> | ||||
|         </dependency> | ||||
|  | ||||
|         <dependency> | ||||
|             <groupId>org.dromara</groupId> | ||||
|             <artifactId>ruoyi-common-doc</artifactId> | ||||
|         </dependency> | ||||
|  | ||||
|         <dependency> | ||||
|             <groupId>org.dromara</groupId> | ||||
|             <artifactId>ruoyi-common-web</artifactId> | ||||
|         </dependency> | ||||
|  | ||||
|         <dependency> | ||||
|             <groupId>org.dromara</groupId> | ||||
|             <artifactId>ruoyi-common-mybatis</artifactId> | ||||
|         </dependency> | ||||
|  | ||||
|         <dependency> | ||||
|             <groupId>org.dromara</groupId> | ||||
|             <artifactId>ruoyi-common-dubbo</artifactId> | ||||
|         </dependency> | ||||
|  | ||||
|         <dependency> | ||||
|             <groupId>org.dromara</groupId> | ||||
|             <artifactId>ruoyi-common-seata</artifactId> | ||||
|         </dependency> | ||||
|  | ||||
|         <dependency> | ||||
|             <groupId>org.dromara</groupId> | ||||
|             <artifactId>ruoyi-common-idempotent</artifactId> | ||||
|         </dependency> | ||||
|  | ||||
|         <dependency> | ||||
|             <groupId>org.dromara</groupId> | ||||
|             <artifactId>ruoyi-common-tenant</artifactId> | ||||
|         </dependency> | ||||
|  | ||||
|         <dependency> | ||||
|             <groupId>org.dromara</groupId> | ||||
|             <artifactId>ruoyi-common-security</artifactId> | ||||
|         </dependency> | ||||
|  | ||||
|         <dependency> | ||||
|             <groupId>org.dromara</groupId> | ||||
|             <artifactId>ruoyi-common-translation</artifactId> | ||||
|         </dependency> | ||||
|  | ||||
|         <dependency> | ||||
|             <groupId>org.dromara</groupId> | ||||
|             <artifactId>ruoyi-common-sensitive</artifactId> | ||||
|         </dependency> | ||||
|  | ||||
|         <dependency> | ||||
|             <groupId>org.dromara</groupId> | ||||
|             <artifactId>ruoyi-common-encrypt</artifactId> | ||||
|         </dependency> | ||||
|  | ||||
|     </dependencies> | ||||
|  | ||||
|  | ||||
|     <build> | ||||
|         <finalName>${project.artifactId}</finalName> | ||||
|         <plugins> | ||||
|             <plugin> | ||||
|                 <groupId>org.springframework.boot</groupId> | ||||
|                 <artifactId>spring-boot-maven-plugin</artifactId> | ||||
|                 <version>${spring-boot.version}</version> | ||||
|                 <executions> | ||||
|                     <execution> | ||||
|                         <goals> | ||||
|                             <goal>repackage</goal> | ||||
|                         </goals> | ||||
|                     </execution> | ||||
|                 </executions> | ||||
|             </plugin> | ||||
|         </plugins> | ||||
|     </build> | ||||
|  | ||||
| </project> | ||||
| @ -0,0 +1,106 @@ | ||||
| package org.dromara.ops.personnel.controller; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| import lombok.RequiredArgsConstructor; | ||||
| import jakarta.servlet.http.HttpServletResponse; | ||||
| import jakarta.validation.constraints.*; | ||||
| import cn.dev33.satoken.annotation.SaCheckPermission; | ||||
| import org.springframework.web.bind.annotation.*; | ||||
| import org.springframework.validation.annotation.Validated; | ||||
| import org.dromara.common.idempotent.annotation.RepeatSubmit; | ||||
| import org.dromara.common.log.annotation.Log; | ||||
| import org.dromara.common.web.core.BaseController; | ||||
| import org.dromara.common.mybatis.core.page.PageQuery; | ||||
| import org.dromara.common.core.domain.R; | ||||
| import org.dromara.common.core.validate.AddGroup; | ||||
| import org.dromara.common.core.validate.EditGroup; | ||||
| import org.dromara.common.log.enums.BusinessType; | ||||
| import org.dromara.common.excel.utils.ExcelUtil; | ||||
| import org.dromara.ops.personnel.domain.vo.SubConstructionUserVo; | ||||
| import org.dromara.ops.personnel.domain.bo.SubConstructionUserBo; | ||||
| import org.dromara.ops.personnel.service.ISubConstructionUserService; | ||||
| import org.dromara.common.mybatis.core.page.TableDataInfo; | ||||
|  | ||||
| /** | ||||
|  * 运维人员 | ||||
|  * 前端访问路由地址为:/personnel/constructionUser | ||||
|  * | ||||
|  * @author LionLi | ||||
|  * @date 2025-09-16 | ||||
|  */ | ||||
| @Validated | ||||
| @RequiredArgsConstructor | ||||
| @RestController | ||||
| @RequestMapping("/constructionUser") | ||||
| public class SubConstructionUserController extends BaseController { | ||||
|  | ||||
|     private final ISubConstructionUserService subConstructionUserService; | ||||
|  | ||||
|     /** | ||||
|      * 查询运维人员列表 | ||||
|      */ | ||||
|     @SaCheckPermission("personnel:constructionUser:list") | ||||
|     @GetMapping("/list") | ||||
|     public TableDataInfo<SubConstructionUserVo> list(SubConstructionUserBo bo, PageQuery pageQuery) { | ||||
|         return subConstructionUserService.queryPageList(bo, pageQuery); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 导出运维人员列表 | ||||
|      */ | ||||
|     @SaCheckPermission("personnel:constructionUser:export") | ||||
|     @Log(title = "运维人员", businessType = BusinessType.EXPORT) | ||||
|     @PostMapping("/export") | ||||
|     public void export(SubConstructionUserBo bo, HttpServletResponse response) { | ||||
|         List<SubConstructionUserVo> list = subConstructionUserService.queryList(bo); | ||||
|         ExcelUtil.exportExcel(list, "运维人员", SubConstructionUserVo.class, response); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 获取运维人员详细信息 | ||||
|      * | ||||
|      * @param id 主键 | ||||
|      */ | ||||
|     @SaCheckPermission("personnel:constructionUser:query") | ||||
|     @GetMapping("/{id}") | ||||
|     public R<SubConstructionUserVo> getInfo(@NotNull(message = "主键不能为空") | ||||
|                                      @PathVariable("id") Long id) { | ||||
|         return R.ok(subConstructionUserService.queryById(id)); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 新增运维人员 | ||||
|      */ | ||||
|     @SaCheckPermission("personnel:constructionUser:add") | ||||
|     @Log(title = "运维人员", businessType = BusinessType.INSERT) | ||||
|     @RepeatSubmit() | ||||
|     @PostMapping() | ||||
|     public R<Void> add(@Validated(AddGroup.class) @RequestBody SubConstructionUserBo bo) { | ||||
|         return toAjax(subConstructionUserService.insertByBo(bo)); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 修改运维人员 | ||||
|      */ | ||||
|     @SaCheckPermission("personnel:constructionUser:edit") | ||||
|     @Log(title = "运维人员", businessType = BusinessType.UPDATE) | ||||
|     @RepeatSubmit() | ||||
|     @PutMapping() | ||||
|     public R<Void> edit(@Validated(EditGroup.class) @RequestBody SubConstructionUserBo bo) { | ||||
|         return toAjax(subConstructionUserService.updateByBo(bo)); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 删除运维人员 | ||||
|      * | ||||
|      * @param ids 主键串 | ||||
|      */ | ||||
|     @SaCheckPermission("personnel:constructionUser:remove") | ||||
|     @Log(title = "运维人员", businessType = BusinessType.DELETE) | ||||
|     @DeleteMapping("/{ids}") | ||||
|     public R<Void> remove(@NotEmpty(message = "主键不能为空") | ||||
|                           @PathVariable("ids") Long[] ids) { | ||||
|         return toAjax(subConstructionUserService.deleteWithValidByIds(List.of(ids), true)); | ||||
|     } | ||||
| } | ||||
| @ -0,0 +1,203 @@ | ||||
| package org.dromara.ops.personnel.domain; | ||||
|  | ||||
| import org.dromara.common.mybatis.core.domain.BaseEntity; | ||||
| import com.baomidou.mybatisplus.annotation.*; | ||||
| import lombok.Data; | ||||
| import lombok.EqualsAndHashCode; | ||||
| import java.util.Date; | ||||
| import com.fasterxml.jackson.annotation.JsonFormat; | ||||
|  | ||||
| import java.io.Serial; | ||||
|  | ||||
| /** | ||||
|  * 运维人员对象 sub_construction_user | ||||
|  * | ||||
|  * @author LionLi | ||||
|  * @date 2025-09-16 | ||||
|  */ | ||||
| @Data | ||||
| @EqualsAndHashCode(callSuper = true) | ||||
| @TableName("sub_construction_user") | ||||
| public class SubConstructionUser extends BaseEntity { | ||||
|  | ||||
|     @Serial | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     /** | ||||
|      * | ||||
|      */ | ||||
|     @TableId(value = "id") | ||||
|     private Long id; | ||||
|  | ||||
|     /** | ||||
|      * 人脸照 | ||||
|      */ | ||||
|     private String facePic; | ||||
|  | ||||
|     /** | ||||
|      * 系统用户id | ||||
|      */ | ||||
|     private Long sysUserId; | ||||
|  | ||||
|     /** | ||||
|      * 人员姓名 | ||||
|      */ | ||||
|     private String userName; | ||||
|  | ||||
|     /** | ||||
|      * 项目id | ||||
|      */ | ||||
|     private Long projectId; | ||||
|  | ||||
|     /** | ||||
|      * 分包公司id | ||||
|      */ | ||||
|     private Long contractorId; | ||||
|  | ||||
|     /** | ||||
|      * 班组id | ||||
|      */ | ||||
|     private Long teamId; | ||||
|  | ||||
|     /** | ||||
|      * 班组名称 | ||||
|      */ | ||||
|     private String teamName; | ||||
|  | ||||
|     /** | ||||
|      * 状态(0在职 1离职) | ||||
|      */ | ||||
|     private String status; | ||||
|  | ||||
|     /** | ||||
|      * 联系电话 | ||||
|      */ | ||||
|     private String phone; | ||||
|  | ||||
|     /** | ||||
|      * 性别(0:保密 1:男 2女) | ||||
|      */ | ||||
|     private String sex; | ||||
|  | ||||
|     /** | ||||
|      * 民族 | ||||
|      */ | ||||
|     private String nation; | ||||
|  | ||||
|     /** | ||||
|      * 身份证正面图片 | ||||
|      */ | ||||
|     private String sfzFrontPic; | ||||
|  | ||||
|     /** | ||||
|      * 身份证背面图片 | ||||
|      */ | ||||
|     private String sfzBackPic; | ||||
|  | ||||
|     /** | ||||
|      * 身份证号码 | ||||
|      */ | ||||
|     private String sfzNumber; | ||||
|  | ||||
|     /** | ||||
|      * 身份证有效开始期 | ||||
|      */ | ||||
|     private Date sfzStart; | ||||
|  | ||||
|     /** | ||||
|      * 身份证有效结束期 | ||||
|      */ | ||||
|     private Date sfzEnd; | ||||
|  | ||||
|     /** | ||||
|      * 身份证地址 | ||||
|      */ | ||||
|     private String sfzSite; | ||||
|  | ||||
|     /** | ||||
|      * 身份证出生日期 | ||||
|      */ | ||||
|     private Date sfzBirth; | ||||
|  | ||||
|     /** | ||||
|      * 籍贯 | ||||
|      */ | ||||
|     private String nativePlace; | ||||
|  | ||||
|     /** | ||||
|      * 银行卡图片 | ||||
|      */ | ||||
|     private String yhkPic; | ||||
|  | ||||
|     /** | ||||
|      * 银行卡号 | ||||
|      */ | ||||
|     private String yhkNumber; | ||||
|  | ||||
|     /** | ||||
|      * 开户行 | ||||
|      */ | ||||
|     private String yhkOpeningBank; | ||||
|  | ||||
|     /** | ||||
|      * 持卡人 | ||||
|      */ | ||||
|     private String yhkCardholder; | ||||
|  | ||||
|     /** | ||||
|      * 工种(字典type_of_work) | ||||
|      */ | ||||
|     private String typeOfWork; | ||||
|  | ||||
|     /** | ||||
|      * 工资计量单位 | ||||
|      */ | ||||
|     private String wageMeasureUnit; | ||||
|  | ||||
|     /** | ||||
|      * 特种作业证图片 | ||||
|      */ | ||||
|     private String specialWorkPic; | ||||
|  | ||||
|     /** | ||||
|      * 打卡(0启用打卡 1禁止打卡) | ||||
|      */ | ||||
|     private String clock; | ||||
|  | ||||
|     /** | ||||
|      * 入场时间 | ||||
|      */ | ||||
|     private String entryDate; | ||||
|  | ||||
|     /** | ||||
|      * 离场时间 | ||||
|      */ | ||||
|     private String leaveDate; | ||||
|  | ||||
|     /** | ||||
|      * 薪水 | ||||
|      */ | ||||
|     private Long salary; | ||||
|  | ||||
|     /** | ||||
|      * 用户角色(1=普通用户,2=管理员) | ||||
|      */ | ||||
|     private String userRole; | ||||
|  | ||||
|     /** | ||||
|      * 退场状态(0未退场 1退场未提交材料 2已退场) | ||||
|      */ | ||||
|     private String exitStatus; | ||||
|  | ||||
|     /** | ||||
|      * 首次进入项目的时间 | ||||
|      */ | ||||
|     private Date firstDate; | ||||
|  | ||||
|     /** | ||||
|      * 备注 | ||||
|      */ | ||||
|     private String remark; | ||||
|  | ||||
|  | ||||
| } | ||||
| @ -0,0 +1,230 @@ | ||||
| package org.dromara.ops.personnel.domain.bo; | ||||
|  | ||||
| import org.dromara.ops.personnel.domain.SubConstructionUser; | ||||
| import org.dromara.common.mybatis.core.domain.BaseEntity; | ||||
| import org.dromara.common.core.validate.AddGroup; | ||||
| import org.dromara.common.core.validate.EditGroup; | ||||
| import io.github.linpeilie.annotations.AutoMapper; | ||||
| import lombok.Data; | ||||
| import lombok.EqualsAndHashCode; | ||||
| import jakarta.validation.constraints.*; | ||||
| import java.util.Date; | ||||
| import com.fasterxml.jackson.annotation.JsonFormat; | ||||
|  | ||||
| /** | ||||
|  * 运维人员业务对象 sub_construction_user | ||||
|  * | ||||
|  * @author LionLi | ||||
|  * @date 2025-09-16 | ||||
|  */ | ||||
| @Data | ||||
| @EqualsAndHashCode(callSuper = true) | ||||
| @AutoMapper(target = SubConstructionUser.class, reverseConvertGenerate = false) | ||||
| public class SubConstructionUserBo extends BaseEntity { | ||||
|  | ||||
|     /** | ||||
|      * | ||||
|      */ | ||||
|     private Long id; | ||||
|  | ||||
|     /** | ||||
|      * 人脸照 | ||||
|      */ | ||||
|     @NotBlank(message = "人脸照不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private String facePic; | ||||
|  | ||||
|     /** | ||||
|      * 系统用户id | ||||
|      */ | ||||
|     @NotNull(message = "系统用户id不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private Long sysUserId; | ||||
|  | ||||
|     /** | ||||
|      * 人员姓名 | ||||
|      */ | ||||
|     @NotBlank(message = "人员姓名不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private String userName; | ||||
|  | ||||
|     /** | ||||
|      * 项目id | ||||
|      */ | ||||
|     @NotNull(message = "项目id不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private Long projectId; | ||||
|  | ||||
|     /** | ||||
|      * 分包公司id | ||||
|      */ | ||||
|     @NotNull(message = "分包公司id不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private Long contractorId; | ||||
|  | ||||
|     /** | ||||
|      * 班组id | ||||
|      */ | ||||
|     @NotNull(message = "班组id不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private Long teamId; | ||||
|  | ||||
|     /** | ||||
|      * 班组名称 | ||||
|      */ | ||||
|     @NotBlank(message = "班组名称不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private String teamName; | ||||
|  | ||||
|     /** | ||||
|      * 状态(0在职 1离职) | ||||
|      */ | ||||
|     private String status; | ||||
|  | ||||
|     /** | ||||
|      * 联系电话 | ||||
|      */ | ||||
|     @NotBlank(message = "联系电话不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private String phone; | ||||
|  | ||||
|     /** | ||||
|      * 性别(0:保密 1:男 2女) | ||||
|      */ | ||||
|     private String sex; | ||||
|  | ||||
|     /** | ||||
|      * 民族 | ||||
|      */ | ||||
|     @NotBlank(message = "民族不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private String nation; | ||||
|  | ||||
|     /** | ||||
|      * 身份证正面图片 | ||||
|      */ | ||||
|     @NotBlank(message = "身份证正面图片不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private String sfzFrontPic; | ||||
|  | ||||
|     /** | ||||
|      * 身份证背面图片 | ||||
|      */ | ||||
|     @NotBlank(message = "身份证背面图片不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private String sfzBackPic; | ||||
|  | ||||
|     /** | ||||
|      * 身份证号码 | ||||
|      */ | ||||
|     @NotBlank(message = "身份证号码不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private String sfzNumber; | ||||
|  | ||||
|     /** | ||||
|      * 身份证有效开始期 | ||||
|      */ | ||||
|     @NotNull(message = "身份证有效开始期不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private Date sfzStart; | ||||
|  | ||||
|     /** | ||||
|      * 身份证有效结束期 | ||||
|      */ | ||||
|     @NotNull(message = "身份证有效结束期不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private Date sfzEnd; | ||||
|  | ||||
|     /** | ||||
|      * 身份证地址 | ||||
|      */ | ||||
|     @NotBlank(message = "身份证地址不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private String sfzSite; | ||||
|  | ||||
|     /** | ||||
|      * 身份证出生日期 | ||||
|      */ | ||||
|     @NotNull(message = "身份证出生日期不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private Date sfzBirth; | ||||
|  | ||||
|     /** | ||||
|      * 籍贯 | ||||
|      */ | ||||
|     @NotBlank(message = "籍贯不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private String nativePlace; | ||||
|  | ||||
|     /** | ||||
|      * 银行卡图片 | ||||
|      */ | ||||
|     @NotBlank(message = "银行卡图片不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private String yhkPic; | ||||
|  | ||||
|     /** | ||||
|      * 银行卡号 | ||||
|      */ | ||||
|     @NotBlank(message = "银行卡号不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private String yhkNumber; | ||||
|  | ||||
|     /** | ||||
|      * 开户行 | ||||
|      */ | ||||
|     @NotBlank(message = "开户行不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private String yhkOpeningBank; | ||||
|  | ||||
|     /** | ||||
|      * 持卡人 | ||||
|      */ | ||||
|     @NotBlank(message = "持卡人不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private String yhkCardholder; | ||||
|  | ||||
|     /** | ||||
|      * 工种(字典type_of_work) | ||||
|      */ | ||||
|     @NotBlank(message = "工种(字典type_of_work)不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private String typeOfWork; | ||||
|  | ||||
|     /** | ||||
|      * 工资计量单位 | ||||
|      */ | ||||
|     @NotBlank(message = "工资计量单位不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private String wageMeasureUnit; | ||||
|  | ||||
|     /** | ||||
|      * 特种作业证图片 | ||||
|      */ | ||||
|     @NotBlank(message = "特种作业证图片不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private String specialWorkPic; | ||||
|  | ||||
|     /** | ||||
|      * 打卡(0启用打卡 1禁止打卡) | ||||
|      */ | ||||
|     private String clock; | ||||
|  | ||||
|     /** | ||||
|      * 入场时间 | ||||
|      */ | ||||
|     @NotBlank(message = "入场时间不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private String entryDate; | ||||
|  | ||||
|     /** | ||||
|      * 离场时间 | ||||
|      */ | ||||
|     @NotBlank(message = "离场时间不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private String leaveDate; | ||||
|  | ||||
|     /** | ||||
|      * 薪水 | ||||
|      */ | ||||
|     @NotNull(message = "薪水不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private Long salary; | ||||
|  | ||||
|     /** | ||||
|      * 用户角色(1=普通用户,2=管理员) | ||||
|      */ | ||||
|     private String userRole; | ||||
|  | ||||
|     /** | ||||
|      * 退场状态(0未退场 1退场未提交材料 2已退场) | ||||
|      */ | ||||
|     private String exitStatus; | ||||
|  | ||||
|     /** | ||||
|      * 首次进入项目的时间 | ||||
|      */ | ||||
|     @NotNull(message = "首次进入项目的时间不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private Date firstDate; | ||||
|  | ||||
|     /** | ||||
|      * 备注 | ||||
|      */ | ||||
|     @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) | ||||
|     private String remark; | ||||
|  | ||||
|  | ||||
| } | ||||
| @ -0,0 +1,246 @@ | ||||
| package org.dromara.ops.personnel.domain.vo; | ||||
|  | ||||
| import java.util.Date; | ||||
| import com.fasterxml.jackson.annotation.JsonFormat; | ||||
|  | ||||
| import cn.idev.excel.annotation.ExcelIgnoreUnannotated; | ||||
| import cn.idev.excel.annotation.ExcelProperty; | ||||
| import org.dromara.common.excel.annotation.ExcelDictFormat; | ||||
| import org.dromara.common.excel.convert.ExcelDictConvert; | ||||
| import io.github.linpeilie.annotations.AutoMapper; | ||||
| import lombok.Data; | ||||
| import org.dromara.ops.personnel.domain.SubConstructionUser; | ||||
|  | ||||
| import java.io.Serial; | ||||
| import java.io.Serializable; | ||||
| import java.util.Date; | ||||
|  | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * 运维人员视图对象 sub_construction_user | ||||
|  * | ||||
|  * @author LionLi | ||||
|  * @date 2025-09-16 | ||||
|  */ | ||||
| @Data | ||||
| @ExcelIgnoreUnannotated | ||||
| @AutoMapper(target = SubConstructionUser.class) | ||||
| public class SubConstructionUserVo implements Serializable { | ||||
|  | ||||
|     @Serial | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     /** | ||||
|      * | ||||
|      */ | ||||
|     @ExcelProperty(value = "") | ||||
|     private Long id; | ||||
|  | ||||
|     /** | ||||
|      * 人脸照 | ||||
|      */ | ||||
|     @ExcelProperty(value = "人脸照") | ||||
|     private String facePic; | ||||
|  | ||||
|     /** | ||||
|      * 系统用户id | ||||
|      */ | ||||
|     @ExcelProperty(value = "系统用户id") | ||||
|     private Long sysUserId; | ||||
|  | ||||
|     /** | ||||
|      * 人员姓名 | ||||
|      */ | ||||
|     @ExcelProperty(value = "人员姓名") | ||||
|     private String userName; | ||||
|  | ||||
|     /** | ||||
|      * 项目id | ||||
|      */ | ||||
|     @ExcelProperty(value = "项目id") | ||||
|     private Long projectId; | ||||
|  | ||||
|     /** | ||||
|      * 分包公司id | ||||
|      */ | ||||
|     @ExcelProperty(value = "分包公司id") | ||||
|     private Long contractorId; | ||||
|  | ||||
|     /** | ||||
|      * 班组id | ||||
|      */ | ||||
|     @ExcelProperty(value = "班组id") | ||||
|     private Long teamId; | ||||
|  | ||||
|     /** | ||||
|      * 班组名称 | ||||
|      */ | ||||
|     @ExcelProperty(value = "班组名称") | ||||
|     private String teamName; | ||||
|  | ||||
|     /** | ||||
|      * 状态(0在职 1离职) | ||||
|      */ | ||||
|     @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) | ||||
|     @ExcelDictFormat(readConverterExp = "0=在职,1=离职") | ||||
|     private String status; | ||||
|  | ||||
|     /** | ||||
|      * 联系电话 | ||||
|      */ | ||||
|     @ExcelProperty(value = "联系电话") | ||||
|     private String phone; | ||||
|  | ||||
|     /** | ||||
|      * 性别(0:保密 1:男 2女) | ||||
|      */ | ||||
|     @ExcelProperty(value = "性别(0:保密 1:男 2女)") | ||||
|     private String sex; | ||||
|  | ||||
|     /** | ||||
|      * 民族 | ||||
|      */ | ||||
|     @ExcelProperty(value = "民族") | ||||
|     private String nation; | ||||
|  | ||||
|     /** | ||||
|      * 身份证正面图片 | ||||
|      */ | ||||
|     @ExcelProperty(value = "身份证正面图片") | ||||
|     private String sfzFrontPic; | ||||
|  | ||||
|     /** | ||||
|      * 身份证背面图片 | ||||
|      */ | ||||
|     @ExcelProperty(value = "身份证背面图片") | ||||
|     private String sfzBackPic; | ||||
|  | ||||
|     /** | ||||
|      * 身份证号码 | ||||
|      */ | ||||
|     @ExcelProperty(value = "身份证号码") | ||||
|     private String sfzNumber; | ||||
|  | ||||
|     /** | ||||
|      * 身份证有效开始期 | ||||
|      */ | ||||
|     @ExcelProperty(value = "身份证有效开始期") | ||||
|     private Date sfzStart; | ||||
|  | ||||
|     /** | ||||
|      * 身份证有效结束期 | ||||
|      */ | ||||
|     @ExcelProperty(value = "身份证有效结束期") | ||||
|     private Date sfzEnd; | ||||
|  | ||||
|     /** | ||||
|      * 身份证地址 | ||||
|      */ | ||||
|     @ExcelProperty(value = "身份证地址") | ||||
|     private String sfzSite; | ||||
|  | ||||
|     /** | ||||
|      * 身份证出生日期 | ||||
|      */ | ||||
|     @ExcelProperty(value = "身份证出生日期") | ||||
|     private Date sfzBirth; | ||||
|  | ||||
|     /** | ||||
|      * 籍贯 | ||||
|      */ | ||||
|     @ExcelProperty(value = "籍贯") | ||||
|     private String nativePlace; | ||||
|  | ||||
|     /** | ||||
|      * 银行卡图片 | ||||
|      */ | ||||
|     @ExcelProperty(value = "银行卡图片") | ||||
|     private String yhkPic; | ||||
|  | ||||
|     /** | ||||
|      * 银行卡号 | ||||
|      */ | ||||
|     @ExcelProperty(value = "银行卡号") | ||||
|     private String yhkNumber; | ||||
|  | ||||
|     /** | ||||
|      * 开户行 | ||||
|      */ | ||||
|     @ExcelProperty(value = "开户行") | ||||
|     private String yhkOpeningBank; | ||||
|  | ||||
|     /** | ||||
|      * 持卡人 | ||||
|      */ | ||||
|     @ExcelProperty(value = "持卡人") | ||||
|     private String yhkCardholder; | ||||
|  | ||||
|     /** | ||||
|      * 工种(字典type_of_work) | ||||
|      */ | ||||
|     @ExcelProperty(value = "工种(字典type_of_work)") | ||||
|     private String typeOfWork; | ||||
|  | ||||
|     /** | ||||
|      * 工资计量单位 | ||||
|      */ | ||||
|     @ExcelProperty(value = "工资计量单位") | ||||
|     private String wageMeasureUnit; | ||||
|  | ||||
|     /** | ||||
|      * 特种作业证图片 | ||||
|      */ | ||||
|     @ExcelProperty(value = "特种作业证图片") | ||||
|     private String specialWorkPic; | ||||
|  | ||||
|     /** | ||||
|      * 打卡(0启用打卡 1禁止打卡) | ||||
|      */ | ||||
|     @ExcelProperty(value = "打卡(0启用打卡 1禁止打卡)") | ||||
|     private String clock; | ||||
|  | ||||
|     /** | ||||
|      * 入场时间 | ||||
|      */ | ||||
|     @ExcelProperty(value = "入场时间") | ||||
|     private String entryDate; | ||||
|  | ||||
|     /** | ||||
|      * 离场时间 | ||||
|      */ | ||||
|     @ExcelProperty(value = "离场时间") | ||||
|     private String leaveDate; | ||||
|  | ||||
|     /** | ||||
|      * 薪水 | ||||
|      */ | ||||
|     @ExcelProperty(value = "薪水") | ||||
|     private Long salary; | ||||
|  | ||||
|     /** | ||||
|      * 用户角色(1=普通用户,2=管理员) | ||||
|      */ | ||||
|     @ExcelProperty(value = "用户角色(1=普通用户,2=管理员)") | ||||
|     private String userRole; | ||||
|  | ||||
|     /** | ||||
|      * 退场状态(0未退场 1退场未提交材料 2已退场) | ||||
|      */ | ||||
|     @ExcelProperty(value = "退场状态(0未退场 1退场未提交材料 2已退场)") | ||||
|     private String exitStatus; | ||||
|  | ||||
|     /** | ||||
|      * 首次进入项目的时间 | ||||
|      */ | ||||
|     @ExcelProperty(value = "首次进入项目的时间") | ||||
|     private Date firstDate; | ||||
|  | ||||
|     /** | ||||
|      * 备注 | ||||
|      */ | ||||
|     @ExcelProperty(value = "备注") | ||||
|     private String remark; | ||||
|  | ||||
|  | ||||
| } | ||||
| @ -0,0 +1,15 @@ | ||||
| package org.dromara.ops.personnel.mapper; | ||||
|  | ||||
| import org.dromara.ops.personnel.domain.SubConstructionUser; | ||||
| import org.dromara.ops.personnel.domain.vo.SubConstructionUserVo; | ||||
| import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; | ||||
|  | ||||
| /** | ||||
|  * 运维人员Mapper接口 | ||||
|  * | ||||
|  * @author LionLi | ||||
|  * @date 2025-09-16 | ||||
|  */ | ||||
| public interface SubConstructionUserMapper extends BaseMapperPlus<SubConstructionUser, SubConstructionUserVo> { | ||||
|  | ||||
| } | ||||
| @ -0,0 +1,164 @@ | ||||
| package org.dromara.ops.personnel.service.impl; | ||||
|  | ||||
| import org.dromara.common.core.utils.MapstructUtils; | ||||
| import org.dromara.common.core.utils.StringUtils; | ||||
| import org.dromara.common.mybatis.core.page.TableDataInfo; | ||||
| import org.dromara.common.mybatis.core.page.PageQuery; | ||||
| import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||
| import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
| import lombok.RequiredArgsConstructor; | ||||
| import lombok.extern.slf4j.Slf4j; | ||||
| import org.springframework.stereotype.Service; | ||||
| import org.dromara.ops.personnel.domain.bo.SubConstructionUserBo; | ||||
| import org.dromara.ops.personnel.domain.vo.SubConstructionUserVo; | ||||
| import org.dromara.ops.personnel.domain.SubConstructionUser; | ||||
| import org.dromara.ops.personnel.mapper.SubConstructionUserMapper; | ||||
| import org.dromara.ops.personnel.service.ISubConstructionUserService; | ||||
|  | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import java.util.Collection; | ||||
|  | ||||
| /** | ||||
|  * 运维人员Service业务层处理 | ||||
|  * | ||||
|  * @author LionLi | ||||
|  * @date 2025-09-16 | ||||
|  */ | ||||
| @Slf4j | ||||
| @RequiredArgsConstructor | ||||
| @Service | ||||
| public class SubConstructionUserServiceImpl implements ISubConstructionUserService { | ||||
|  | ||||
|     private final SubConstructionUserMapper baseMapper; | ||||
|  | ||||
|     /** | ||||
|      * 查询运维人员 | ||||
|      * | ||||
|      * @param id 主键 | ||||
|      * @return 运维人员 | ||||
|      */ | ||||
|     @Override | ||||
|     public SubConstructionUserVo queryById(Long id){ | ||||
|         return baseMapper.selectVoById(id); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 分页查询运维人员列表 | ||||
|      * | ||||
|      * @param bo        查询条件 | ||||
|      * @param pageQuery 分页参数 | ||||
|      * @return 运维人员分页列表 | ||||
|      */ | ||||
|     @Override | ||||
|     public TableDataInfo<SubConstructionUserVo> queryPageList(SubConstructionUserBo bo, PageQuery pageQuery) { | ||||
|         LambdaQueryWrapper<SubConstructionUser> lqw = buildQueryWrapper(bo); | ||||
|         Page<SubConstructionUserVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); | ||||
|         return TableDataInfo.build(result); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 查询符合条件的运维人员列表 | ||||
|      * | ||||
|      * @param bo 查询条件 | ||||
|      * @return 运维人员列表 | ||||
|      */ | ||||
|     @Override | ||||
|     public List<SubConstructionUserVo> queryList(SubConstructionUserBo bo) { | ||||
|         LambdaQueryWrapper<SubConstructionUser> lqw = buildQueryWrapper(bo); | ||||
|         return baseMapper.selectVoList(lqw); | ||||
|     } | ||||
|  | ||||
|     private LambdaQueryWrapper<SubConstructionUser> buildQueryWrapper(SubConstructionUserBo bo) { | ||||
|         Map<String, Object> params = bo.getParams(); | ||||
|         LambdaQueryWrapper<SubConstructionUser> lqw = Wrappers.lambdaQuery(); | ||||
|         lqw.orderByAsc(SubConstructionUser::getId); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getFacePic()), SubConstructionUser::getFacePic, bo.getFacePic()); | ||||
|         lqw.eq(bo.getSysUserId() != null, SubConstructionUser::getSysUserId, bo.getSysUserId()); | ||||
|         lqw.like(StringUtils.isNotBlank(bo.getUserName()), SubConstructionUser::getUserName, bo.getUserName()); | ||||
|         lqw.eq(bo.getProjectId() != null, SubConstructionUser::getProjectId, bo.getProjectId()); | ||||
|         lqw.eq(bo.getContractorId() != null, SubConstructionUser::getContractorId, bo.getContractorId()); | ||||
|         lqw.eq(bo.getTeamId() != null, SubConstructionUser::getTeamId, bo.getTeamId()); | ||||
|         lqw.like(StringUtils.isNotBlank(bo.getTeamName()), SubConstructionUser::getTeamName, bo.getTeamName()); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SubConstructionUser::getStatus, bo.getStatus()); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getPhone()), SubConstructionUser::getPhone, bo.getPhone()); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getSex()), SubConstructionUser::getSex, bo.getSex()); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getNation()), SubConstructionUser::getNation, bo.getNation()); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getSfzFrontPic()), SubConstructionUser::getSfzFrontPic, bo.getSfzFrontPic()); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getSfzBackPic()), SubConstructionUser::getSfzBackPic, bo.getSfzBackPic()); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getSfzNumber()), SubConstructionUser::getSfzNumber, bo.getSfzNumber()); | ||||
|         lqw.eq(bo.getSfzStart() != null, SubConstructionUser::getSfzStart, bo.getSfzStart()); | ||||
|         lqw.eq(bo.getSfzEnd() != null, SubConstructionUser::getSfzEnd, bo.getSfzEnd()); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getSfzSite()), SubConstructionUser::getSfzSite, bo.getSfzSite()); | ||||
|         lqw.eq(bo.getSfzBirth() != null, SubConstructionUser::getSfzBirth, bo.getSfzBirth()); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getNativePlace()), SubConstructionUser::getNativePlace, bo.getNativePlace()); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getYhkPic()), SubConstructionUser::getYhkPic, bo.getYhkPic()); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getYhkNumber()), SubConstructionUser::getYhkNumber, bo.getYhkNumber()); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getYhkOpeningBank()), SubConstructionUser::getYhkOpeningBank, bo.getYhkOpeningBank()); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getYhkCardholder()), SubConstructionUser::getYhkCardholder, bo.getYhkCardholder()); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getTypeOfWork()), SubConstructionUser::getTypeOfWork, bo.getTypeOfWork()); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getWageMeasureUnit()), SubConstructionUser::getWageMeasureUnit, bo.getWageMeasureUnit()); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getSpecialWorkPic()), SubConstructionUser::getSpecialWorkPic, bo.getSpecialWorkPic()); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getClock()), SubConstructionUser::getClock, bo.getClock()); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getEntryDate()), SubConstructionUser::getEntryDate, bo.getEntryDate()); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getLeaveDate()), SubConstructionUser::getLeaveDate, bo.getLeaveDate()); | ||||
|         lqw.eq(bo.getSalary() != null, SubConstructionUser::getSalary, bo.getSalary()); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getUserRole()), SubConstructionUser::getUserRole, bo.getUserRole()); | ||||
|         lqw.eq(StringUtils.isNotBlank(bo.getExitStatus()), SubConstructionUser::getExitStatus, bo.getExitStatus()); | ||||
|         lqw.eq(bo.getFirstDate() != null, SubConstructionUser::getFirstDate, bo.getFirstDate()); | ||||
|         return lqw; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 新增运维人员 | ||||
|      * | ||||
|      * @param bo 运维人员 | ||||
|      * @return 是否新增成功 | ||||
|      */ | ||||
|     @Override | ||||
|     public Boolean insertByBo(SubConstructionUserBo bo) { | ||||
|         SubConstructionUser add = MapstructUtils.convert(bo, SubConstructionUser.class); | ||||
|         validEntityBeforeSave(add); | ||||
|         boolean flag = baseMapper.insert(add) > 0; | ||||
|         if (flag) { | ||||
|             bo.setId(add.getId()); | ||||
|         } | ||||
|         return flag; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 修改运维人员 | ||||
|      * | ||||
|      * @param bo 运维人员 | ||||
|      * @return 是否修改成功 | ||||
|      */ | ||||
|     @Override | ||||
|     public Boolean updateByBo(SubConstructionUserBo bo) { | ||||
|         SubConstructionUser update = MapstructUtils.convert(bo, SubConstructionUser.class); | ||||
|         validEntityBeforeSave(update); | ||||
|         return baseMapper.updateById(update) > 0; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 保存前的数据校验 | ||||
|      */ | ||||
|     private void validEntityBeforeSave(SubConstructionUser entity){ | ||||
|         //TODO 做一些数据校验,如唯一约束 | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 校验并批量删除运维人员信息 | ||||
|      * | ||||
|      * @param ids     待删除的主键集合 | ||||
|      * @param isValid 是否进行有效性校验 | ||||
|      * @return 是否删除成功 | ||||
|      */ | ||||
|     @Override | ||||
|     public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { | ||||
|         if(isValid){ | ||||
|             //TODO 做一些业务上的校验,判断是否需要校验 | ||||
|         } | ||||
|         return baseMapper.deleteByIds(ids) > 0; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										34
									
								
								ruoyi-modules/xny-ops/src/main/resources/application.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								ruoyi-modules/xny-ops/src/main/resources/application.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,34 @@ | ||||
| # Tomcat | ||||
| server: | ||||
|   port: 9203 | ||||
|  | ||||
| # Spring | ||||
| spring: | ||||
|   application: | ||||
|     # 应用名称 | ||||
|     name: xny-ops | ||||
|   profiles: | ||||
|     # 环境配置 | ||||
|     active: @profiles.active@ | ||||
|  | ||||
| --- # nacos 配置 | ||||
| spring: | ||||
|   cloud: | ||||
|     nacos: | ||||
|       # nacos 服务地址 | ||||
|       server-addr: @nacos.server@ | ||||
|       username: @nacos.username@ | ||||
|       password: @nacos.password@ | ||||
|       discovery: | ||||
|         # 注册组 | ||||
|         group: @nacos.discovery.group@ | ||||
|         namespace: ${spring.profiles.active} | ||||
|       config: | ||||
|         # 配置组 | ||||
|         group: @nacos.config.group@ | ||||
|         namespace: ${spring.profiles.active} | ||||
|   config: | ||||
|     import: | ||||
|       - optional:nacos:application-common.yml | ||||
|       - optional:nacos:datasource.yml | ||||
|       - optional:nacos:${spring.application.name}.yml | ||||
							
								
								
									
										10
									
								
								ruoyi-modules/xny-ops/src/main/resources/banner.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								ruoyi-modules/xny-ops/src/main/resources/banner.txt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | ||||
| Spring Boot Version: ${spring-boot.version} | ||||
| Spring Application Name: ${spring.application.name} | ||||
|                             _                           _                     | ||||
|                            (_)                         | |                    | ||||
|  _ __  _   _   ___   _   _  _  ______  ___  _   _  ___ | |_   ___  _ __ ___   | ||||
| | '__|| | | | / _ \ | | | || ||______|/ __|| | | |/ __|| __| / _ \| '_ ` _ \  | ||||
| | |   | |_| || (_) || |_| || |        \__ \| |_| |\__ \| |_ |  __/| | | | | | | ||||
| |_|    \__,_| \___/  \__, ||_|        |___/ \__, ||___/ \__| \___||_| |_| |_| | ||||
|                       __/ |                  __/ |                            | ||||
|                      |___/                  |___/                             | ||||
							
								
								
									
										28
									
								
								ruoyi-modules/xny-ops/src/main/resources/logback-plus.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								ruoyi-modules/xny-ops/src/main/resources/logback-plus.xml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <configuration scan="true" scanPeriod="60 seconds" debug="false"> | ||||
|     <!-- 日志存放路径 --> | ||||
| 	<property name="log.path" value="logs/${project.artifactId}" /> | ||||
|    <!-- 日志输出格式 --> | ||||
|     <property name="console.log.pattern" | ||||
|               value="%cyan(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}%n) - %msg%n"/> | ||||
|  | ||||
|     <!-- 控制台输出 --> | ||||
|     <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> | ||||
|         <encoder> | ||||
|             <pattern>${console.log.pattern}</pattern> | ||||
|             <charset>utf-8</charset> | ||||
|         </encoder> | ||||
|     </appender> | ||||
|  | ||||
|     <include resource="logback-common.xml" /> | ||||
|  | ||||
|     <include resource="logback-logstash.xml" /> | ||||
|  | ||||
|     <!-- 开启 skywalking 日志收集 --> | ||||
|     <include resource="logback-skylog.xml" /> | ||||
|  | ||||
| 	<!--系统操作日志--> | ||||
|     <root level="info"> | ||||
|         <appender-ref ref="console" /> | ||||
|     </root> | ||||
| </configuration> | ||||
		Reference in New Issue
	
	Block a user