1. 修改 mybatis plus 字段填充, insert 时添加 create 修改时添加 Update

This commit is contained in:
zhaowenyuan 2024-06-17 14:46:13 +08:00
parent a2fc42bfdf
commit 27f6a09c9b
27 changed files with 225 additions and 376 deletions

View File

@ -19,7 +19,7 @@ package com.chushang.common.core.config;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.chushang.common.core.jackson.JavaTimeModule; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;

View File

@ -1,49 +0,0 @@
package com.chushang.common.core.jackson;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
import java.util.Map;
@Slf4j
public class JacksonUtils {
private static final ObjectMapper mapper = new ObjectMapper();
@SneakyThrows
public static String toJSONString(Object data) {
if (null == data) {
return "";
}
return mapper.writeValueAsString(data);
}
@SneakyThrows
public static <T> T json2Bean(String jsonData, Class<T> beanType) {
if (null == jsonData) {
return null;
}
return mapper.readValue(jsonData, beanType);
}
@SneakyThrows
public static <T> List<T> json2List(String jsonData, Class<T> beanType) {
if (null == jsonData) {
return List.of();
}
JavaType javaType = mapper.getTypeFactory().constructParametricType(List.class, beanType);
return mapper.readValue(jsonData, javaType);
}
@SneakyThrows
public static <K, V> Map<K, V> json2Map(String jsonData, Class<K> keyType, Class<V> valueType) {
if (null == jsonData) {
return Map.of();
}
JavaType javaType = mapper.getTypeFactory().constructMapType(Map.class, keyType, valueType);
return mapper.readValue(jsonData, javaType);
}
}

View File

@ -1,64 +0,0 @@
/*
* Copyright (c) 2020 pig4cloud Authors. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.chushang.common.core.jackson;
import cn.hutool.core.date.DatePattern;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.datatype.jsr310.PackageVersion;
import com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.InstantSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class JavaTimeModule extends SimpleModule {
public JavaTimeModule() {
super(PackageVersion.VERSION);
// ======================= 时间序列化规则 ===============================
// yyyy-MM-dd HH:mm:ss
this.addSerializer(LocalDateTime.class,
new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)));
// yyyy-MM-dd
this.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ISO_LOCAL_DATE));
// HH:mm:ss
this.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ISO_LOCAL_TIME));
// Instant 类型序列化
this.addSerializer(Instant.class, InstantSerializer.INSTANCE);
// ======================= 时间反序列化规则 ==============================
// yyyy-MM-dd HH:mm:ss
this.addDeserializer(LocalDateTime.class,
new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)));
// yyyy-MM-dd
this.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ISO_LOCAL_DATE));
// HH:mm:ss
this.addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ISO_LOCAL_TIME));
// Instant 反序列化
this.addDeserializer(Instant.class, InstantDeserializer.INSTANT);
}
}

View File

@ -11,10 +11,10 @@ package com.chushang.common.log.aspect;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.URLUtil; import cn.hutool.core.util.URLUtil;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.chushang.common.core.constant.CommonConstants; import com.chushang.common.core.constant.CommonConstants;
import com.chushang.common.core.exception.ResultException; import com.chushang.common.core.exception.ResultException;
import com.chushang.common.core.jackson.JacksonUtils;
import com.chushang.common.core.util.IPUtils; import com.chushang.common.core.util.IPUtils;
import com.chushang.common.core.util.ServletUtils; import com.chushang.common.core.util.ServletUtils;
import com.chushang.common.log.annotation.SysLog; import com.chushang.common.log.annotation.SysLog;
@ -122,7 +122,7 @@ public class SysLogAspect {
Arrays.stream(args) Arrays.stream(args)
.filter(arg -> !(arg instanceof MultipartFile) && !(arg instanceof HttpServletResponse) && !(arg instanceof HttpServletRequest) && !(arg instanceof MultipartFile[])) .filter(arg -> !(arg instanceof MultipartFile) && !(arg instanceof HttpServletResponse) && !(arg instanceof HttpServletRequest) && !(arg instanceof MultipartFile[]))
.collect(Collectors.toList()); .collect(Collectors.toList());
sysLogEntity.setParams(JacksonUtils.toJSONString(argList)); sysLogEntity.setParams(JSON.toJSONString(argList));
} }
} }

View File

@ -61,6 +61,18 @@ public class BaseEntity implements Serializable {
) )
protected Long version; protected Long version;
/**
* 创建人 存储用户user_id
*/
@TableField(value = "create_by", fill = FieldFill.INSERT)
protected String createBy;
/**
* 修改人 存储用户user_id
*/
@TableField(value = "update_by", fill = FieldFill.UPDATE)
protected String updateBy;
@TableField(exist = false) @TableField(exist = false)
@Condition(name = "dept_id", type = Condition.ConditionType.dataScope) @Condition(name = "dept_id", type = Condition.ConditionType.dataScope)
private transient Map<String, Object> sqlParam; private transient Map<String, Object> sqlParam;

View File

@ -17,50 +17,34 @@ import java.time.LocalDateTime;
*/ */
@Slf4j @Slf4j
public class MybatisPlusMetaObjectHandler implements MetaObjectHandler { public class MybatisPlusMetaObjectHandler implements MetaObjectHandler {
/**
* 遵循严格填充
* @param metaObject 元对象
*/
@Override @Override
public void insertFill(MetaObject metaObject) { public void insertFill(MetaObject metaObject) {
if(log.isDebugEnabled()){ if(log.isDebugEnabled()){
log.debug("mybatis plus start insert fill ...."); log.debug("mybatis plus start insert fill ....");
} }
LocalDateTime now = LocalDateTime.now();
// 修改人, 创建人 // 修改人, 创建人
Long userId = SecurityContextHolder.getUserId(); // 用于填充 创建人以及修改人
fillValIfNullByName("createBy", userId, metaObject, false); // String userName = SecurityContextHolder.getUserName();
fillValIfNullByName("createTime", now, metaObject, false); String userName = "system";
} this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now());
this.strictInsertFill(metaObject, "createBy", String.class, userName);
@Override
public void updateFill(MetaObject metaObject) {
log.debug("mybatis plus start update fill ....");
fillValIfNullByName("updateTime", LocalDateTime.now(), metaObject, true);
Long userId = SecurityContextHolder.getUserId();
fillValIfNullByName("updateBy", userId, metaObject, true);
} }
/** /**
* 填充值先判断是否有手动设置优先手动设置的值例如job必须手动设置 * 遵循严格填充
* @param fieldName 属性名 * @param metaObject 元对象
* @param fieldVal 属性值
* @param metaObject MetaObject
* @param isCover 是否覆盖原有值,避免更新操作手动入参
*/ */
private static void fillValIfNullByName(String fieldName, Object fieldVal, MetaObject metaObject, boolean isCover) { @Override
// 1. 没有 get 方法 public void updateFill(MetaObject metaObject) {
if (!metaObject.hasSetter(fieldName)) { log.debug("mybatis plus start update fill ....");
return; // String userName = SecurityContextHolder.getUserName();
} String userName = "system";
// 2. 如果用户有手动设置的值 this.strictInsertFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
Object userSetValue = metaObject.getValue(fieldName); this.strictInsertFill(metaObject, "updateBy", String.class, userName);
String setValueStr = StrUtil.str(userSetValue, Charset.defaultCharset());
if (StrUtil.isNotBlank(setValueStr) && !isCover) {
return;
}
// 3. field 类型相同时设置
Class<?> getterType = metaObject.getGetterType(fieldName);
if (ClassUtils.isAssignableValue(getterType, fieldVal)) {
metaObject.setValue(fieldName, fieldVal);
}
} }
} }

View File

@ -13,7 +13,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = true)
@Accessors(chain = true) @Accessors(chain = true)
@TableName("sys_dept") @TableName("sys_dept")
@Builder @Builder
@ -55,19 +55,4 @@ public class SysDept extends BaseEntity
@TableField(exist = false) @TableField(exist = false)
private List<SysDept> children = new ArrayList<>(); private List<SysDept> children = new ArrayList<>();
/**
* 创建人
*/
@TableField(
value = "create_by"
)
private String createBy;
/**
* 修改人
*/
@TableField(
value = "update_by"
)
private String updateBy;
} }

View File

@ -86,20 +86,6 @@ public class SysRole extends BaseEntity {
@TableField(exist = false) @TableField(exist = false)
private Set<String> permissions; private Set<String> permissions;
/**
* 创建人
*/
@TableField(
value = "create_by"
)
protected String createBy;
/**
* 修改人
*/
@TableField(
value = "update_by"
)
protected String updateBy;
/** /**
* 是否为超管 * 是否为超管
*/ */

View File

@ -76,17 +76,6 @@ public class SysUser extends BaseEntity {
@TableField(value = "nick_name") @TableField(value = "nick_name")
private String nickName; private String nickName;
/**
* 创建人角色
*/
@TableField(updateStrategy = FieldStrategy.NOT_NULL)
private String createBy;
/**
* 修改人
*/
@TableField(updateStrategy = FieldStrategy.NOT_NULL)
private String updateBy;
/** /**
* 是否可以登录平台, true 可以, false 不可以, 默认true * 是否可以登录平台, true 可以, false 不可以, 默认true
*/ */

View File

@ -37,6 +37,10 @@
<groupId>com.chushang</groupId> <groupId>com.chushang</groupId>
<artifactId>chushang-common-mybatis-plugin</artifactId> <artifactId>chushang-common-mybatis-plugin</artifactId>
</exclusion> </exclusion>
<exclusion>
<groupId>com.chushang</groupId>
<artifactId>chushang-common-mq</artifactId>
</exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
<dependency> <dependency>

View File

@ -0,0 +1,53 @@
package com.chushang.inspection.project.entity.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.chushang.common.core.validator.Create;
import com.chushang.common.core.validator.Update;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @auther: zhao
* @date: 2024/6/17 11:58
*/
@Data
public class ContractDTO {
/**
* 合同Id
*/
@NotNull(message = "合同Id不能为空", groups = Update.class)
private Long contractId;
/**
* 项目合同
*/
@NotNull(message = "项目合同不能为空", groups = Create.class)
private String contractUrl;
/**
* 合同有效期开始时间
*/
@NotNull(message = "项目合同开始时间不能为空", groups = Create.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime contractStartTime;
/**
* 合同有效期结束日期
*/
@TableField(value = "contract_end_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@NotNull(message = "项目合同结束时间不能为空", groups = Create.class)
private LocalDateTime contractEndTime;
/**
* 合同金额
*/
@NotNull(message = "合同金额不能为空", groups = Create.class)
private BigDecimal contractAmount;
/**
* 查询枚举 AuditStatusEnums , 最终以字典表中project_audit_status字典编码为准
*/
private Integer auditStatus;
}

View File

@ -1,9 +1,13 @@
package com.chushang.inspection.project.entity.dto; package com.chushang.inspection.project.entity.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.chushang.common.core.validator.Create; import com.chushang.common.core.validator.Create;
import com.chushang.common.core.validator.Update; import com.chushang.common.core.validator.Update;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import org.springframework.validation.annotation.Validated;
import javax.validation.Valid;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
/** /**
@ -12,13 +16,25 @@ import javax.validation.constraints.NotNull;
*/ */
@Data @Data
public class ProjectDTO { public class ProjectDTO {
/**
* 项目Id
*/
@NotNull(message = "项目Id不能为空", groups = Update.class)
private Long projectId;
/** /**
* 项目名称 * 项目名称
*/ */
@NotNull(message = "项目名称不能为空", groups = Create.class) @NotNull(message = "项目名称不能为空", groups = Create.class)
@NotNull(message = "项目名称不能为空", groups = Update.class)
private String projectName; private String projectName;
/**
* 项目合同
*/
@NotNull(message = "项目合同不能为空", groups = Create.class)
@NotNull(message = "项目合同不能为空", groups = Update.class)
@Valid
private ContractDTO contract;
/** /**
* 项目联系人 * 项目联系人
*/ */

View File

@ -83,16 +83,4 @@ public class WrkAudit extends BaseEntity {
*/ */
@TableField(value = "remark") @TableField(value = "remark")
private String remark; private String remark;
/**
* 创建人 存储用户user_id
*/
@TableField(value = "create_by")
private String createBy;
/**
* 修改人 存储用户user_id
*/
@TableField(value = "update_by")
private String updateBy;
} }

View File

@ -1,9 +1,7 @@
package com.chushang.inspection.project.entity.po; package com.chushang.inspection.project.entity.po;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.TableField; import com.chushang.common.dict.annotation.DictFormat;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.chushang.common.mybatis.annotation.Condition; import com.chushang.common.mybatis.annotation.Condition;
import com.chushang.common.mybatis.base.BaseEntity; import com.chushang.common.mybatis.base.BaseEntity;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -59,13 +57,6 @@ public class WrkProject extends BaseEntity {
@Condition(name = "dept_id", type = Condition.ConditionType.eq) @Condition(name = "dept_id", type = Condition.ConditionType.eq)
private Long deptId; private Long deptId;
/**
* 审核状态 项目审核状态 待初审 待复审 初审驳回 复审驳回 初审通过=待复审 复审通过
*/
@TableField(value = "audit_status")
@Condition(name = "audit_status", type = Condition.ConditionType.eq)
private Integer auditStatus;
/** /**
* 备注 * 备注
*/ */
@ -75,14 +66,14 @@ public class WrkProject extends BaseEntity {
/** /**
* 创建人 存储用户user_id * 创建人 存储用户user_id
*/ */
@TableField(value = "create_by") @TableField(value = "create_by", fill = FieldFill.INSERT)
@Condition(name = "create_by", type = Condition.ConditionType.eq) @Condition(name = "create_by", type = Condition.ConditionType.eq)
private String createBy; private String createBy;
/** /**
* 修改人 存储用户user_id * 修改人 存储用户user_id
*/ */
@TableField(value = "update_by") @TableField(value = "update_by", fill = FieldFill.UPDATE)
@Condition(name = "update_by", type = Condition.ConditionType.eq) @Condition(name = "update_by", type = Condition.ConditionType.eq)
private String updateBy; private String updateBy;
} }

View File

@ -1,16 +1,14 @@
package com.chushang.inspection.project.entity.po; package com.chushang.inspection.project.entity.po;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.TableField; import com.chushang.common.dict.annotation.DictFormat;
import com.baomidou.mybatisplus.annotation.TableId; import com.chushang.common.mybatis.annotation.Condition;
import com.baomidou.mybatisplus.annotation.TableName;
import com.chushang.common.mybatis.base.BaseEntity; import com.chushang.common.mybatis.base.BaseEntity;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.*;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/** /**
* @auther: zhao * @auther: zhao
@ -24,17 +22,20 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@TableName(value = "wrk_project_contract") @TableName(value = "wrk_project_contract")
@Builder
public class WrkProjectContract extends BaseEntity { public class WrkProjectContract extends BaseEntity {
/** /**
* 合同Id 合同主键id, 雪花自增 * 合同Id 合同主键id, 雪花自增
*/ */
@TableId(value = "contract_id", type = IdType.ASSIGN_ID) @TableId(value = "contract_id", type = IdType.ASSIGN_ID)
@Condition(name = "contract_id", type = Condition.ConditionType.eq)
private Long contractId; private Long contractId;
/** /**
* 项目id 项目id, 1个项目id 对应多个合同id * 项目id 项目id, 1个项目id 对应多个合同id
*/ */
@TableField(value = "project_id") @TableField(value = "project_id")
@Condition(name = "project_id", type = Condition.ConditionType.eq)
private Long projectId; private Long projectId;
/** /**
@ -53,13 +54,13 @@ public class WrkProjectContract extends BaseEntity {
* 合同有效期开始时间 * 合同有效期开始时间
*/ */
@TableField(value = "contract_start_time") @TableField(value = "contract_start_time")
private Date contractStartTime; private LocalDateTime contractStartTime;
/** /**
* 合同有效期结束日期 * 合同有效期结束日期
*/ */
@TableField(value = "contract_end_time") @TableField(value = "contract_end_time")
private Date contractEndTime; private LocalDateTime contractEndTime;
/** /**
* 合同金额 合同金额数, 后台存储采用decimal(20,5) * 合同金额 合同金额数, 后台存储采用decimal(20,5)
@ -68,32 +69,36 @@ public class WrkProjectContract extends BaseEntity {
private BigDecimal contractAmount; private BigDecimal contractAmount;
/** /**
* 审核状态 smallInt(6) 合同审核状态 * 审核状态 项目审核状态 待初审 待复审 初审驳回 复审驳回 初审通过=待复审 复审通过
*/ */
@TableField(value = "audit_status") @TableField(value = "audit_status")
private Short auditStatus; @Condition(name = "audit_status", type = Condition.ConditionType.eq)
@DictFormat(dictType = "project_audit_status")
private Integer auditStatus;
/** /**
* 项目有效状态 合同有效期内的项目为有效项目 * 项目有效状态 合同有效期内的项目为有效项目
*/ */
@TableField(value = "project_effect") @TableField(value = "project_effect")
private Short projectEffect; @DictFormat(dictType = "project_effect")
private Integer projectEffect;
/** /**
* 回款状态 是否已经回款完成 * 回款状态 是否已经回款完成
*/ */
@TableField(value = "payment_state") @TableField(value = "payment_state")
private Short paymentState; @DictFormat(dictType = "payment_state")
private Integer paymentState;
/** /**
* 创建人 存储用户user_id * 创建人 存储用户user_id
*/ */
@TableField(value = "create_by") @TableField(value = "create_by", fill = FieldFill.INSERT)
private String createBy; private String createBy;
/** /**
* 修改人 存储用户user_id * 修改人 存储用户user_id
*/ */
@TableField(value = "update_by") @TableField(value = "update_by", fill = FieldFill.UPDATE)
private String updateBy; private String updateBy;
} }

View File

@ -82,16 +82,4 @@ public class WrkProjectPayment extends BaseEntity {
*/ */
@TableField(value = "remark") @TableField(value = "remark")
private String remark; private String remark;
/**
* 创建人 存储用户user_id
*/
@TableField(value = "create_by")
private String createBy;
/**
* 修改人 存储用户user_id
*/
@TableField(value = "update_by")
private String updateBy;
} }

View File

@ -1,7 +1,9 @@
package com.chushang.inspection.project.controller; package com.chushang.inspection.project.controller;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.chushang.common.core.exception.utils.AssertUtil;
import com.chushang.common.core.validator.Create; import com.chushang.common.core.validator.Create;
import com.chushang.common.core.validator.Update;
import com.chushang.common.core.web.AjaxResult; import com.chushang.common.core.web.AjaxResult;
import com.chushang.common.log.annotation.SysLog; import com.chushang.common.log.annotation.SysLog;
import com.chushang.common.log.enums.BusinessType; import com.chushang.common.log.enums.BusinessType;
@ -9,17 +11,15 @@ import com.chushang.common.mybatis.page.CommonParam;
import com.chushang.common.mybatis.utils.PageResult; import com.chushang.common.mybatis.utils.PageResult;
import com.chushang.inspection.project.entity.dto.ProjectDTO; import com.chushang.inspection.project.entity.dto.ProjectDTO;
import com.chushang.inspection.project.entity.po.WrkProject; import com.chushang.inspection.project.entity.po.WrkProject;
import com.chushang.inspection.project.entity.po.WrkProjectContract;
import com.chushang.inspection.project.service.WrkProjectContractService;
import com.chushang.inspection.project.service.WrkProjectService; import com.chushang.inspection.project.service.WrkProjectService;
import com.chushang.security.annotation.RequiresPermissions; import com.chushang.security.annotation.RequiresPermissions;
import com.chushang.security.entity.vo.LoginUser;
import com.chushang.security.utils.SecurityUtils; import com.chushang.security.utils.SecurityUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/** /**
* @auther: zhao * @auther: zhao
@ -33,6 +33,7 @@ public class WrkProjectController {
@Resource @Resource
WrkProjectService projectService; WrkProjectService projectService;
/** /**
* 获取项目列表 * 获取项目列表
*/ */
@ -45,29 +46,29 @@ public class WrkProjectController {
return AjaxResult.success(pageResult); return AjaxResult.success(pageResult);
} }
/**
* 新增项目 -- 暂存 + 提交审核
*/
@PostMapping(value = "/save") @PostMapping(value = "/save")
@RequiresPermissions("inspection:project:save") // @RequiresPermissions("inspection:project:save")
@SysLog(value = "项目",businessType = BusinessType.INSERT)
public AjaxResult save(@RequestBody @Validated(Create.class) ProjectDTO project){ public AjaxResult save(@RequestBody @Validated(Create.class) ProjectDTO project){
WrkProject wrkProject = new WrkProject(); return AjaxResult.success(projectService.save(project));
BeanUtil.copyProperties(project, wrkProject);
Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
wrkProject.setDeptId(deptId);
// 应该显示 未提交审核
wrkProject.setAuditStatus(0);
projectService.save(wrkProject);
return AjaxResult.success(wrkProject.getProjectId());
} }
// /**
// @SysLog(value = "岗位", businessType = BusinessType.EXPORT) * 修改 项目
// @RequiresPermissions("system:post:export") */
// @PostMapping("/export") @PostMapping(value = "/update")
// public void export(HttpServletResponse response, SysPost post) // @RequiresPermissions("inspection:project:save")
// { @SysLog(value = "项目",businessType = BusinessType.UPDATE)
// CommonParam commonParam = CommonParam.buildAllRequest(); public AjaxResult update(@RequestBody @Validated(Update.class) ProjectDTO project){
// List<SysPost> list = postService.allPostList(post, commonParam); Long projectId = project.getProjectId();
// ExcelUtils.exportList(response, SysPost.class,list, "岗位数据"); AssertUtil.invalidate(null == projectId, "修改项目时, 项目id 不能为空");
// } return AjaxResult.success(projectService.update(project));
}
// /**
// //
// /** // /**
// * 根据岗位编号获取详细信息 // * 根据岗位编号获取详细信息

View File

@ -1,5 +1,6 @@
package com.chushang.inspection.project.service; package com.chushang.inspection.project.service;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
@ -7,11 +8,17 @@ import com.chushang.common.mybatis.page.CommonParam;
import com.chushang.common.mybatis.utils.PageResult; import com.chushang.common.mybatis.utils.PageResult;
import com.chushang.common.mybatis.utils.WrapperUtils; import com.chushang.common.mybatis.utils.WrapperUtils;
import com.chushang.datascope.annotation.DataScope; import com.chushang.datascope.annotation.DataScope;
import com.chushang.inspection.project.entity.dto.ProjectDTO;
import com.chushang.inspection.project.entity.po.WrkProjectContract;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.chushang.inspection.project.entity.po.WrkProject; import com.chushang.inspection.project.entity.po.WrkProject;
import com.chushang.inspection.project.mapper.WrkProjectMapper; import com.chushang.inspection.project.mapper.WrkProjectMapper;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDateTime;
/** /**
* @auther: zhao * @auther: zhao
@ -20,6 +27,8 @@ import com.chushang.inspection.project.mapper.WrkProjectMapper;
@Slf4j @Slf4j
@Service @Service
public class WrkProjectService extends ServiceImpl<WrkProjectMapper, WrkProject> implements IService<WrkProject> { public class WrkProjectService extends ServiceImpl<WrkProjectMapper, WrkProject> implements IService<WrkProject> {
@Resource
WrkProjectContractService contractService;
@DataScope @DataScope
public PageResult pageList(WrkProject project, CommonParam commonParam) { public PageResult pageList(WrkProject project, CommonParam commonParam) {
@ -30,4 +39,62 @@ public class WrkProjectService extends ServiceImpl<WrkProjectMapper, WrkProject>
); );
return new PageResult(page); return new PageResult(page);
} }
/**
* 保存项目
*/
@Transactional
public Long save(ProjectDTO project)
{
WrkProject wrkProject = new WrkProject();
BeanUtil.copyProperties(project, wrkProject);
// Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
Long deptId = 200L;
wrkProject.setDeptId(deptId);
this.save(wrkProject);
// 项目合同
WrkProjectContract contract = WrkProjectContract.builder().build();
BeanUtil.copyProperties(project.getContract(), contract);
contract.setProjectId(wrkProject.getProjectId());
LocalDateTime now = LocalDateTime.now();
// 之前 && 之后 无效
if (now.isBefore(contract.getContractStartTime()) && now.isAfter(contract.getContractEndTime())) {
contract.setProjectEffect(0);
}else {
contract.setProjectEffect(1);
}
// 未回款完成
contract.setPaymentState(0);
// 项目合同
contractService.save(contract);
return wrkProject.getProjectId();
}
/**
* 修改项目
*/
@Transactional
public Long update(ProjectDTO project)
{
WrkProject wrkProject = new WrkProject();
BeanUtil.copyProperties(project, wrkProject);
this.updateById(wrkProject);
// 项目合同
WrkProjectContract contract = WrkProjectContract.builder().build();
BeanUtil.copyProperties(project.getContract(), contract);
LocalDateTime now = LocalDateTime.now();
// 之前 && 之后 无效
if (now.isBefore(contract.getContractStartTime()) && now.isAfter(contract.getContractEndTime())) {
contract.setProjectEffect(0);
}else {
contract.setProjectEffect(1);
}
// 未回款完成
contract.setPaymentState(0);
// 项目合同 修改时不需要 项目id
contractService.updateById(contract);
return wrkProject.getProjectId();
}
} }

View File

@ -75,25 +75,12 @@ public class FileSourceInfo extends BaseEntity{
*/ */
@TableField("storage") @TableField("storage")
private String storage; private String storage;
/**
* 创建人
*/
@TableField(
value = "create_by"
)
private String createBy;
/** /**
* 部门Id, 只能看到权限下的图片 * 部门Id, 只能看到权限下的图片
*/ */
@TableField(value = "dept_id") @TableField(value = "dept_id")
private Long deptId; private Long deptId;
/**
* 修改人
*/
@TableField(
value = "update_by"
)
private String updateBy;
public FileSourceInfo(String fid){ public FileSourceInfo(String fid){

View File

@ -54,22 +54,4 @@ public class SysConfig extends BaseEntity
@ExcelProperty(value = "系统内置", index = 4) @ExcelProperty(value = "系统内置", index = 4)
private String configType; private String configType;
/**
* 创建人
*/
@TableField(
value = "create_by"
)
@ExcelProperty(value = "创建人", index = 5)
private String createBy;
/**
* 修改人
*/
@TableField(
value = "update_by"
)
@ExcelProperty(value = "修改人", index = 6)
private String updateBy;
} }

View File

@ -75,19 +75,4 @@ public class SysDictData extends BaseEntity {
@ExcelProperty(value = "状态", index = 8) @ExcelProperty(value = "状态", index = 8)
private Boolean status; private Boolean status;
/**
* 创建人
*/
@TableField(
value = "create_by"
)
protected String createBy;
/**
* 修改人
*/
@TableField(
value = "update_by"
)
protected String updateBy;
} }

View File

@ -56,22 +56,6 @@ public class SysDictType extends BaseEntity
@ExcelProperty(value = "状态", index = 3) @ExcelProperty(value = "状态", index = 3)
@Condition(name = "status", type = Condition.ConditionType.eq) @Condition(name = "status", type = Condition.ConditionType.eq)
private Boolean status; private Boolean status;
/**
* 创建人
*/
@TableField(
value = "create_by"
)
@ExcelProperty(value = "创建人", index = 4)
protected String createBy;
/**
* 修改人
*/
@TableField(
value = "update_by"
)
@ExcelProperty(value = "修改人", index = 5)
protected String updateBy;
/** /**
* 查询区间 * 查询区间
*/ */

View File

@ -98,21 +98,6 @@ public class SysMenu extends BaseEntity {
*/ */
private String remark; private String remark;
/**
* 创建人
*/
@TableField(
value = "create_by"
)
protected String createBy;
/**
* 修改人
*/
@TableField(
value = "update_by"
)
protected String updateBy;
@TableField(exist = false) @TableField(exist = false)
private List<SysMenu> children = new ArrayList<>(); private List<SysMenu> children = new ArrayList<>();
} }

View File

@ -52,23 +52,6 @@ public class SysPost extends BaseEntity
@ExcelProperty(value = "状态", index = 4) @ExcelProperty(value = "状态", index = 4)
private Boolean status; private Boolean status;
/**
* 创建人
*/
@TableField(
value = "create_by"
)
@ExcelProperty(value = "创建人", index = 4)
protected String createBy;
/**
* 修改人
*/
@TableField(
value = "update_by"
)
@ExcelProperty(value = "修改人", index = 5)
protected String updateBy;
/** 用户是否存在此岗位标识 默认不存在 */ /** 用户是否存在此岗位标识 默认不存在 */
@TableField(exist = false) @TableField(exist = false)
private boolean flag = false; private boolean flag = false;

View File

@ -49,7 +49,6 @@ public interface ISysUserService extends IService<SysUser> {
default boolean updatePassword(Long userId, String oldPassword, String newPassword){ default boolean updatePassword(Long userId, String oldPassword, String newPassword){
return this.update(SysUser.builder() return this.update(SysUser.builder()
.password(newPassword) .password(newPassword)
.updateBy(SecurityUtils.getUsername())
.build() .build()
,new LambdaQueryWrapper<SysUser>() ,new LambdaQueryWrapper<SysUser>()
.eq(SysUser::getUserId, userId) .eq(SysUser::getUserId, userId)
@ -60,7 +59,6 @@ public interface ISysUserService extends IService<SysUser> {
default void updateUserStatus(SysUser user){ default void updateUserStatus(SysUser user){
this.update(SysUser.builder() this.update(SysUser.builder()
.status(user.getStatus()) .status(user.getStatus())
.updateBy(user.getUpdateBy())
.build(), new LambdaQueryWrapper<SysUser>() .build(), new LambdaQueryWrapper<SysUser>()
.eq(SysUser::getUserId, user.getUserId())); .eq(SysUser::getUserId, user.getUserId()));
} }

View File

@ -214,7 +214,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
.userId(userId) .userId(userId)
.password(newPassword) .password(newPassword)
.salt(salt) .salt(salt)
.updateBy(SecurityUtils.getUsername())
.build()); .build());
// 强退用户 // 强退用户
tokenService.forcedRetreat(userId); tokenService.forcedRetreat(userId);

View File

@ -63,16 +63,6 @@ public class TaskInfo extends BaseEntity {
@TableField(value = "task_type") @TableField(value = "task_type")
@DictFormat(dictType = "task_type") @DictFormat(dictType = "task_type")
private Integer taskType; private Integer taskType;
/**
* 创建人
*/
@TableField(value = "create_by")
private String createBy;
/**
* 修改人
*/
@TableField(value = "update_by")
private String updateBy;
/** /**
* 后台任务执行参数 * 后台任务执行参数
*/ */