diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ScheduleConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ScheduleConstants.java index b562cff1..7eae6eb4 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ScheduleConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ScheduleConstants.java @@ -1,31 +1,42 @@ package com.ruoyi.common.core.constant; +import lombok.Getter; + /** * 任务调度通用常量 - * + * * @author ruoyi */ -public class ScheduleConstants -{ +public class ScheduleConstants { public static final String TASK_CLASS_NAME = "TASK_CLASS_NAME"; - /** 执行目标key */ + /** + * 执行目标key + */ public static final String TASK_PROPERTIES = "TASK_PROPERTIES"; - /** 默认 */ + /** + * 默认 + */ public static final String MISFIRE_DEFAULT = "0"; - /** 立即触发执行 */ + /** + * 立即触发执行 + */ public static final String MISFIRE_IGNORE_MISFIRES = "1"; - /** 触发一次执行 */ + /** + * 触发一次执行 + */ public static final String MISFIRE_FIRE_AND_PROCEED = "2"; - /** 不触发立即执行 */ + /** + * 不触发立即执行 + */ public static final String MISFIRE_DO_NOTHING = "3"; - public enum Status - { + @Getter + public enum Status { /** * 正常 */ @@ -35,16 +46,11 @@ public class ScheduleConstants */ PAUSE("1"); - private String value; + private final String value; - private Status(String value) - { + Status(String value) { this.value = value; } - public String getValue() - { - return value; - } } } diff --git a/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/IJobDataLogService.java b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/IJobDataLogService.java new file mode 100644 index 00000000..76fc413d --- /dev/null +++ b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/IJobDataLogService.java @@ -0,0 +1,31 @@ +package com.ruoyi.common.services; + +import com.ruoyi.common.services.constants.JobLogStatus; +import com.ruoyi.common.services.domain.JobDataLog; + +/** + * 定时任务数据日志服务接口 + * + * @author Alan Scipio + * created on 2024/2/20 + */ +public interface IJobDataLogService { + + /** + * 添加日志 + */ + void addLog(JobDataLog log); + + default void addLog(JobLogStatus status, String logType, String message) { + JobDataLog log = new JobDataLog(); + log.setStatus(status.getCode() + ""); + log.setLogType(logType); + log.setMessage(message); + addLog(log); + } + + default void addLog(JobLogStatus status, String message) { + addLog(status, null, message); + } + +} diff --git a/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/JobDataLogServiceImpl.java b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/JobDataLogServiceImpl.java new file mode 100644 index 00000000..b2298f1b --- /dev/null +++ b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/JobDataLogServiceImpl.java @@ -0,0 +1,44 @@ +package com.ruoyi.common.services; + +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.uuid.snowflake.SnowFlakeIdGenerator; +import com.ruoyi.common.services.domain.JobDataLog; +import com.ruoyi.common.services.mapper.JobDataLogMapper; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +/** + * 定时任务数据日志服务接口 + * + * @author Alan Scipio + * created on 2024/2/20 + */ +@Service +public class JobDataLogServiceImpl implements IJobDataLogService { + + @Resource + private JobDataLogMapper jobDataLogMapper; + + @Override + public void addLog(JobDataLog log) { + if (StringUtils.isBlank(log.getMessage())) { + throw new IllegalArgumentException("message cannot be blank"); + } + if (StringUtils.isBlank(log.getStatus())) { + throw new IllegalArgumentException("status cannot be blank"); + } + if (log.getStatus().length() > 1) { + throw new IllegalArgumentException("status length must be 1"); + } + if (log.getLogId() == null) { + log.setLogId(SnowFlakeIdGenerator.nextIdLong()); + } + if (log.getJobClass() == null) { + StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); + StackTraceElement caller = stackTraceElements[2]; + log.setJobClass(caller.getClassName()); + log.setJobMethod(caller.getMethodName()); + } + jobDataLogMapper.insertSelective(log); + } +} diff --git a/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/constants/JobLogStatus.java b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/constants/JobLogStatus.java new file mode 100644 index 00000000..ffd1cfca --- /dev/null +++ b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/constants/JobLogStatus.java @@ -0,0 +1,24 @@ +package com.ruoyi.common.services.constants; + +import com.ruoyi.common.core.constant.IEnum; +import lombok.Getter; + +/** + * @author Alan Scipio + * created on 2024/2/20 + */ +@Getter +public enum JobLogStatus implements IEnum { + + SUCCESS(0, "正常执行"), + + ERROR(1, "异常"); + + private final int code; + private final String name; + + JobLogStatus(int code, String name) { + this.code = code; + this.name = name; + } +} diff --git a/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/constants/SeqType.java b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/constants/SeqType.java index a472ec9b..f954d585 100644 --- a/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/constants/SeqType.java +++ b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/constants/SeqType.java @@ -12,7 +12,7 @@ public enum SeqType implements IEnum { UNIT_CD(1, "UNIT", "单位代码"), - GOODE_TYPE_CD(2, "GT", "商品类型代码"), + ITEM_TYPE_CD(2, "ITYPE", "商品类型代码"), WHS_CD(3, "WHS", "仓库代码"), diff --git a/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/domain/JobDataLog.java b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/domain/JobDataLog.java new file mode 100644 index 00000000..40d2708c --- /dev/null +++ b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/domain/JobDataLog.java @@ -0,0 +1,166 @@ +package com.ruoyi.common.services.domain; + +import com.ruoyi.common.core.web.domain.BaseEntity; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + +/** + * This class was generated by MyBatis Generator. + * + * + * + * @author ryas + * created on 2024-02-20 + */ +public class JobDataLog extends BaseEntity implements Serializable { + /** + * 任务数据日志ID + */ + private Long logId; + + /** + * 执行开始时间 + */ + private Date startTime; + + /** + * 执行结束时间 + */ + private Date endTime; + + /** + * 日志内容 + */ + private String message; + + /** + * 日志类型 + */ + private String logType; + + /** + * 状态(0正常执行 1异常) + */ + private String status; + + /** + * 任务执行类 + */ + private String jobClass; + + /** + * 任务执行方法名 + */ + private String jobMethod; + + @Serial + private static final long serialVersionUID = 1L; + + public static JobDataLog of(Date startTime, Date endTime, String message, String logType, String status, String jobClass, String jobMethod) { + JobDataLog jobDataLog = new JobDataLog(); + jobDataLog.setStartTime(startTime); + jobDataLog.setEndTime(endTime); + jobDataLog.setMessage(message); + jobDataLog.setLogType(logType); + jobDataLog.setStatus(status); + jobDataLog.setJobClass(jobClass); + jobDataLog.setJobMethod(jobMethod); + return jobDataLog; + } + + public static JobDataLog of(Date startTime, Date endTime, String message, String logType, String status) { + return of(startTime, endTime, message, logType, status, null, null); + } + + public static JobDataLog of(String message, String logType, String status) { + return of(null, null, message, logType, status); + } + + public Long getLogId() { + return logId; + } + + public void setLogId(Long logId) { + this.logId = logId; + } + + public Date getStartTime() { + return startTime; + } + + public void setStartTime(Date startTime) { + this.startTime = startTime; + } + + public Date getEndTime() { + return endTime; + } + + public void setEndTime(Date endTime) { + this.endTime = endTime; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message == null ? null : message.trim(); + } + + public String getLogType() { + return logType; + } + + public void setLogType(String logType) { + this.logType = logType == null ? null : logType.trim(); + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status == null ? null : status.trim(); + } + + public String getJobClass() { + return jobClass; + } + + public void setJobClass(String jobClass) { + this.jobClass = jobClass == null ? null : jobClass.trim(); + } + + public String getJobMethod() { + return jobMethod; + } + + public void setJobMethod(String jobMethod) { + this.jobMethod = jobMethod == null ? null : jobMethod.trim(); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", logId=").append(logId); + sb.append(", startTime=").append(startTime); + sb.append(", endTime=").append(endTime); + sb.append(", message=").append(message); + sb.append(", logType=").append(logType); + sb.append(", status=").append(status); + sb.append(", jobClass=").append(jobClass); + sb.append(", jobMethod=").append(jobMethod); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/mapper/JobDataLogDynamicSqlSupport.java b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/mapper/JobDataLogDynamicSqlSupport.java new file mode 100644 index 00000000..c08c47d3 --- /dev/null +++ b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/mapper/JobDataLogDynamicSqlSupport.java @@ -0,0 +1,108 @@ +package com.ruoyi.common.services.mapper; + +import org.mybatis.dynamic.sql.AliasableSqlTable; +import org.mybatis.dynamic.sql.SqlColumn; + +import java.sql.JDBCType; +import java.util.Date; + +public final class JobDataLogDynamicSqlSupport { + public static final JobDataLog jobDataLog = new JobDataLog(); + + /** + * 任务数据日志ID + */ + public static final SqlColumn logId = jobDataLog.logId; + + /** + * 执行开始时间 + */ + public static final SqlColumn startTime = jobDataLog.startTime; + + /** + * 执行结束时间 + */ + public static final SqlColumn endTime = jobDataLog.endTime; + + /** + * 日志内容 + */ + public static final SqlColumn message = jobDataLog.message; + + /** + * 日志类型 + */ + public static final SqlColumn logType = jobDataLog.logType; + + /** + * 状态(0正常执行 1异常) + */ + public static final SqlColumn status = jobDataLog.status; + + /** + * 任务执行类 + */ + public static final SqlColumn jobClass = jobDataLog.jobClass; + + /** + * 任务执行方法名 + */ + public static final SqlColumn jobMethod = jobDataLog.jobMethod; + + /** + * 创建者 + */ + public static final SqlColumn createBy = jobDataLog.createBy; + + /** + * 创建时间 + */ + public static final SqlColumn createTime = jobDataLog.createTime; + + /** + * 更新者 + */ + public static final SqlColumn updateBy = jobDataLog.updateBy; + + /** + * 更新时间 + */ + public static final SqlColumn updateTime = jobDataLog.updateTime; + + /** + * 备注信息 + */ + public static final SqlColumn remark = jobDataLog.remark; + + public static final class JobDataLog extends AliasableSqlTable { + public final SqlColumn logId = column("log_id", JDBCType.BIGINT); + + public final SqlColumn startTime = column("start_time", JDBCType.TIMESTAMP); + + public final SqlColumn endTime = column("end_time", JDBCType.TIMESTAMP); + + public final SqlColumn message = column("message", JDBCType.VARCHAR); + + public final SqlColumn logType = column("log_type", JDBCType.CHAR); + + public final SqlColumn status = column("status", JDBCType.CHAR); + + public final SqlColumn jobClass = column("job_class", JDBCType.VARCHAR); + + public final SqlColumn jobMethod = column("job_method", JDBCType.VARCHAR); + + public final SqlColumn createBy = column("create_by", JDBCType.VARCHAR); + + public final SqlColumn createTime = column("create_time", JDBCType.TIMESTAMP); + + public final SqlColumn updateBy = column("update_by", JDBCType.VARCHAR); + + public final SqlColumn updateTime = column("update_time", JDBCType.TIMESTAMP); + + public final SqlColumn remark = column("remark", JDBCType.VARCHAR); + + public JobDataLog() { + super("sys_job_data_log", JobDataLog::new); + } + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/mapper/JobDataLogMapper.java b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/mapper/JobDataLogMapper.java new file mode 100644 index 00000000..9c5333e6 --- /dev/null +++ b/ruoyi-common/ruoyi-common-services/src/main/java/com/ruoyi/common/services/mapper/JobDataLogMapper.java @@ -0,0 +1,215 @@ +package com.ruoyi.common.services.mapper; + +import com.ruoyi.common.security.utils.SecurityUtilsExt; +import com.ruoyi.common.services.domain.JobDataLog; +import org.apache.ibatis.annotations.*; +import org.apache.ibatis.type.JdbcType; +import org.mybatis.dynamic.sql.BasicColumn; +import org.mybatis.dynamic.sql.delete.DeleteDSLCompleter; +import org.mybatis.dynamic.sql.select.CountDSLCompleter; +import org.mybatis.dynamic.sql.select.SelectDSLCompleter; +import org.mybatis.dynamic.sql.select.render.SelectStatementProvider; +import org.mybatis.dynamic.sql.update.UpdateDSL; +import org.mybatis.dynamic.sql.update.UpdateDSLCompleter; +import org.mybatis.dynamic.sql.update.UpdateModel; +import org.mybatis.dynamic.sql.util.SqlProviderAdapter; +import org.mybatis.dynamic.sql.util.mybatis3.*; + +import java.util.Collection; +import java.util.List; +import java.util.Optional; + +import static com.ruoyi.common.services.mapper.JobDataLogDynamicSqlSupport.*; +import static org.mybatis.dynamic.sql.SqlBuilder.isEqualTo; + +@Mapper +public interface JobDataLogMapper extends CommonCountMapper, CommonDeleteMapper, CommonInsertMapper, CommonUpdateMapper { + BasicColumn[] selectList = BasicColumn.columnList(logId, startTime, endTime, message, logType, status, jobClass, jobMethod, createBy, createTime, updateBy, updateTime, remark); + + @SelectProvider(type=SqlProviderAdapter.class, method="select") + @Results(id="JobDataLogResult", value = { + @Result(column="log_id", property="logId", jdbcType=JdbcType.BIGINT, id=true), + @Result(column="start_time", property="startTime", jdbcType=JdbcType.TIMESTAMP), + @Result(column="end_time", property="endTime", jdbcType=JdbcType.TIMESTAMP), + @Result(column="message", property="message", jdbcType=JdbcType.VARCHAR), + @Result(column="log_type", property="logType", jdbcType=JdbcType.CHAR), + @Result(column="status", property="status", jdbcType=JdbcType.CHAR), + @Result(column="job_class", property="jobClass", jdbcType=JdbcType.VARCHAR), + @Result(column="job_method", property="jobMethod", jdbcType=JdbcType.VARCHAR), + @Result(column="create_by", property="createBy", jdbcType=JdbcType.VARCHAR), + @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP), + @Result(column="update_by", property="updateBy", jdbcType=JdbcType.VARCHAR), + @Result(column="update_time", property="updateTime", jdbcType=JdbcType.TIMESTAMP), + @Result(column="remark", property="remark", jdbcType=JdbcType.VARCHAR) + }) + List selectMany(SelectStatementProvider selectStatement); + + @SelectProvider(type=SqlProviderAdapter.class, method="select") + @ResultMap("JobDataLogResult") + Optional selectOne(SelectStatementProvider selectStatement); + + default long count(CountDSLCompleter completer) { + return MyBatis3Utils.countFrom(this::count, jobDataLog, completer); + } + + default int delete(DeleteDSLCompleter completer) { + return MyBatis3Utils.deleteFrom(this::delete, jobDataLog, completer); + } + + default int deleteByPrimaryKey(Long logId_) { + return delete(c -> + c.where(logId, isEqualTo(logId_)) + ); + } + + default int insert(JobDataLog row) { + row.setCommonForInsert(SecurityUtilsExt.getUserIdStr()); + return MyBatis3Utils.insert(this::insert, row, jobDataLog, c -> + c.map(logId).toProperty("logId") + .map(startTime).toProperty("startTime") + .map(endTime).toProperty("endTime") + .map(message).toProperty("message") + .map(logType).toProperty("logType") + .map(status).toProperty("status") + .map(jobClass).toProperty("jobClass") + .map(jobMethod).toProperty("jobMethod") + .map(createBy).toProperty("createBy") + .map(createTime).toProperty("createTime") + .map(updateBy).toProperty("updateBy") + .map(updateTime).toProperty("updateTime") + .map(remark).toProperty("remark") + ); + } + + default int insertMultiple(Collection records) { + for (JobDataLog row : records) { + row.setCommonForInsert(SecurityUtilsExt.getUserIdStr()); + } + return MyBatis3Utils.insertMultiple(this::insertMultiple, records, jobDataLog, c -> + c.map(logId).toProperty("logId") + .map(startTime).toProperty("startTime") + .map(endTime).toProperty("endTime") + .map(message).toProperty("message") + .map(logType).toProperty("logType") + .map(status).toProperty("status") + .map(jobClass).toProperty("jobClass") + .map(jobMethod).toProperty("jobMethod") + .map(createBy).toProperty("createBy") + .map(createTime).toProperty("createTime") + .map(updateBy).toProperty("updateBy") + .map(updateTime).toProperty("updateTime") + .map(remark).toProperty("remark") + ); + } + + default int insertSelective(JobDataLog row) { + row.setCommonForInsert(SecurityUtilsExt.getUserIdStr()); + return MyBatis3Utils.insert(this::insert, row, jobDataLog, c -> + c.map(logId).toPropertyWhenPresent("logId", row::getLogId) + .map(startTime).toPropertyWhenPresent("startTime", row::getStartTime) + .map(endTime).toPropertyWhenPresent("endTime", row::getEndTime) + .map(message).toPropertyWhenPresent("message", row::getMessage) + .map(logType).toPropertyWhenPresent("logType", row::getLogType) + .map(status).toPropertyWhenPresent("status", row::getStatus) + .map(jobClass).toPropertyWhenPresent("jobClass", row::getJobClass) + .map(jobMethod).toPropertyWhenPresent("jobMethod", row::getJobMethod) + .map(createBy).toPropertyWhenPresent("createBy", row::getCreateBy) + .map(createTime).toPropertyWhenPresent("createTime", row::getCreateTime) + .map(updateBy).toPropertyWhenPresent("updateBy", row::getUpdateBy) + .map(updateTime).toPropertyWhenPresent("updateTime", row::getUpdateTime) + .map(remark).toPropertyWhenPresent("remark", row::getRemark) + ); + } + + default Optional selectOne(SelectDSLCompleter completer) { + return MyBatis3Utils.selectOne(this::selectOne, selectList, jobDataLog, completer); + } + + default List select(SelectDSLCompleter completer) { + return MyBatis3Utils.selectList(this::selectMany, selectList, jobDataLog, completer); + } + + default List selectDistinct(SelectDSLCompleter completer) { + return MyBatis3Utils.selectDistinct(this::selectMany, selectList, jobDataLog, completer); + } + + default Optional selectByPrimaryKey(Long logId_) { + return selectOne(c -> + c.where(logId, isEqualTo(logId_)) + ); + } + + default int update(UpdateDSLCompleter completer) { + return MyBatis3Utils.update(this::update, jobDataLog, completer); + } + + static UpdateDSL updateAllColumns(JobDataLog row, UpdateDSL dsl) { + return dsl.set(logId).equalTo(row::getLogId) + .set(startTime).equalTo(row::getStartTime) + .set(endTime).equalTo(row::getEndTime) + .set(message).equalTo(row::getMessage) + .set(logType).equalTo(row::getLogType) + .set(status).equalTo(row::getStatus) + .set(jobClass).equalTo(row::getJobClass) + .set(jobMethod).equalTo(row::getJobMethod) + .set(createBy).equalTo(row::getCreateBy) + .set(createTime).equalTo(row::getCreateTime) + .set(updateBy).equalTo(row::getUpdateBy) + .set(updateTime).equalTo(row::getUpdateTime) + .set(remark).equalTo(row::getRemark); + } + + static UpdateDSL updateSelectiveColumns(JobDataLog row, UpdateDSL dsl) { + row.setCommonForUpdate(SecurityUtilsExt.getUserIdStr()); + return dsl.set(logId).equalToWhenPresent(row::getLogId) + .set(startTime).equalToWhenPresent(row::getStartTime) + .set(endTime).equalToWhenPresent(row::getEndTime) + .set(message).equalToWhenPresent(row::getMessage) + .set(logType).equalToWhenPresent(row::getLogType) + .set(status).equalToWhenPresent(row::getStatus) + .set(jobClass).equalToWhenPresent(row::getJobClass) + .set(jobMethod).equalToWhenPresent(row::getJobMethod) + .set(createBy).equalToWhenPresent(row::getCreateBy) + .set(createTime).equalToWhenPresent(row::getCreateTime) + .set(updateBy).equalToWhenPresent(row::getUpdateBy) + .set(updateTime).equalToWhenPresent(row::getUpdateTime) + .set(remark).equalToWhenPresent(row::getRemark); + } + + default int updateByPrimaryKey(JobDataLog row) { + return update(c -> + c.set(startTime).equalTo(row::getStartTime) + .set(endTime).equalTo(row::getEndTime) + .set(message).equalTo(row::getMessage) + .set(logType).equalTo(row::getLogType) + .set(status).equalTo(row::getStatus) + .set(jobClass).equalTo(row::getJobClass) + .set(jobMethod).equalTo(row::getJobMethod) + .set(createBy).equalTo(row::getCreateBy) + .set(createTime).equalTo(row::getCreateTime) + .set(updateBy).equalTo(row::getUpdateBy) + .set(updateTime).equalTo(row::getUpdateTime) + .set(remark).equalTo(row::getRemark) + .where(logId, isEqualTo(row::getLogId)) + ); + } + + default int updateByPrimaryKeySelective(JobDataLog row) { + row.setCommonForUpdate(SecurityUtilsExt.getUserIdStr()); + return update(c -> + c.set(startTime).equalToWhenPresent(row::getStartTime) + .set(endTime).equalToWhenPresent(row::getEndTime) + .set(message).equalToWhenPresent(row::getMessage) + .set(logType).equalToWhenPresent(row::getLogType) + .set(status).equalToWhenPresent(row::getStatus) + .set(jobClass).equalToWhenPresent(row::getJobClass) + .set(jobMethod).equalToWhenPresent(row::getJobMethod) + .set(createBy).equalToWhenPresent(row::getCreateBy) + .set(createTime).equalToWhenPresent(row::getCreateTime) + .set(updateBy).equalToWhenPresent(row::getUpdateBy) + .set(updateTime).equalToWhenPresent(row::getUpdateTime) + .set(remark).equalToWhenPresent(row::getRemark) + .where(logId, isEqualTo(row::getLogId)) + ); + } +} \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/RuoYiFileApplication.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/RuoYiFileApplication.java index dbdb2e97..c70bff9d 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/RuoYiFileApplication.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/RuoYiFileApplication.java @@ -16,6 +16,7 @@ import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2; @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) public class RuoYiFileApplication { public static void main(String[] args) { + System.setProperty("pagehelper.banner", "false"); //关闭pagehelper的banner SpringApplication.run(RuoYiFileApplication.class, args); System.out.println("(♥◠‿◠)ノ゙ 文件服务模块启动成功 ლ(´ڡ`ლ)゙"); } diff --git a/ruoyi-modules/ruoyi-job/pom.xml b/ruoyi-modules/ruoyi-job/pom.xml index d8f3cda3..2679ea5a 100644 --- a/ruoyi-modules/ruoyi-job/pom.xml +++ b/ruoyi-modules/ruoyi-job/pom.xml @@ -16,8 +16,8 @@ - - + + com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery @@ -46,7 +46,7 @@ org.springframework.boot spring-boot-starter-actuator - + diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/domain/SysJob.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/domain/SysJob.java index 728faac9..a3d075b5 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/domain/SysJob.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/domain/SysJob.java @@ -1,12 +1,5 @@ package com.ruoyi.job.domain; -import java.io.Serial; -import java.util.Date; - -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.Size; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.annotation.Excel.ColumnType; @@ -14,6 +7,13 @@ import com.ruoyi.common.core.constant.ScheduleConstants; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.domain.BaseEntity; import com.ruoyi.job.util.CronUtils; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.io.Serial; +import java.util.Date; /** * 定时任务调度表 sys_job @@ -51,7 +51,7 @@ public class SysJob extends BaseEntity { /** * cron执行表达式 */ - @Excel(name = "执行表达式 ") + @Excel(name = "执行表达式") private String cronExpression; /** @@ -72,6 +72,12 @@ public class SysJob extends BaseEntity { @Excel(name = "任务状态", readConverterExp = "0=正常,1=暂停") private String status; + /** + * 自定义QuartzJob类 + */ + @Excel(name = "自定义QuartzJob类") + private String customJobClass; + public Long getJobId() { return jobId; } @@ -150,6 +156,14 @@ public class SysJob extends BaseEntity { this.status = status; } + public String getCustomJobClass() { + return customJobClass; + } + + public void setCustomJobClass(String customJobClass) { + this.customJobClass = customJobClass; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) @@ -161,6 +175,7 @@ public class SysJob extends BaseEntity { .append("misfirePolicy", getMisfirePolicy()) .append("concurrent", getConcurrent()) .append("status", getStatus()) + .append("customJobClass", getCustomJobClass()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobLogMapper.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobLogMapper.java index 742eba54..d6b739b1 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobLogMapper.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobLogMapper.java @@ -1,64 +1,64 @@ package com.ruoyi.job.mapper; -import java.util.List; import com.ruoyi.job.domain.SysJobLog; +import java.util.List; + /** * 调度任务日志信息 数据层 - * + * * @author ruoyi */ -public interface SysJobLogMapper -{ +public interface SysJobLogMapper { /** * 获取quartz调度器日志的计划任务 - * + * * @param jobLog 调度日志信息 * @return 调度任务日志集合 */ - public List selectJobLogList(SysJobLog jobLog); + List selectJobLogList(SysJobLog jobLog); /** * 查询所有调度任务日志 * * @return 调度任务日志列表 */ - public List selectJobLogAll(); + List selectJobLogAll(); /** * 通过调度任务日志ID查询调度信息 - * + * * @param jobLogId 调度任务日志ID * @return 调度任务日志对象信息 */ - public SysJobLog selectJobLogById(Long jobLogId); + SysJobLog selectJobLogById(Long jobLogId); /** * 新增任务日志 - * + * * @param jobLog 调度日志信息 * @return 结果 */ - public int insertJobLog(SysJobLog jobLog); + int insertJobLog(SysJobLog jobLog); /** * 批量删除调度日志信息 - * + * * @param logIds 需要删除的数据ID * @return 结果 */ - public int deleteJobLogByIds(Long[] logIds); + int deleteJobLogByIds(Long[] logIds); /** * 删除任务日志 - * + * * @param jobId 调度日志ID * @return 结果 */ - public int deleteJobLogById(Long jobId); + int deleteJobLogById(Long jobId); /** * 清空任务日志 */ - public void cleanJobLog(); + void cleanJobLog(); } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobMapper.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobMapper.java index 352fa874..dd67df6b 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobMapper.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/mapper/SysJobMapper.java @@ -1,67 +1,67 @@ package com.ruoyi.job.mapper; -import java.util.List; import com.ruoyi.job.domain.SysJob; +import java.util.List; + /** * 调度任务信息 数据层 - * + * * @author ruoyi */ -public interface SysJobMapper -{ +public interface SysJobMapper { /** * 查询调度任务日志集合 - * + * * @param job 调度信息 * @return 操作日志集合 */ - public List selectJobList(SysJob job); + List selectJobList(SysJob job); /** * 查询所有调度任务 - * + * * @return 调度任务列表 */ - public List selectJobAll(); + List selectJobAll(); /** * 通过调度ID查询调度任务信息 - * + * * @param jobId 调度ID * @return 角色对象信息 */ - public SysJob selectJobById(Long jobId); + SysJob selectJobById(Long jobId); /** * 通过调度ID删除调度任务信息 - * + * * @param jobId 调度ID * @return 结果 */ - public int deleteJobById(Long jobId); + int deleteJobById(Long jobId); /** * 批量删除调度任务信息 - * + * * @param ids 需要删除的数据ID * @return 结果 */ - public int deleteJobByIds(Long[] ids); + int deleteJobByIds(Long[] ids); /** * 修改调度任务信息 - * + * * @param job 调度任务信息 * @return 结果 */ - public int updateJob(SysJob job); + int updateJob(SysJob job); /** * 新增调度任务信息 - * + * * @param job 调度任务信息 * @return 结果 */ - public int insertJob(SysJob job); + int insertJob(SysJob job); } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/ISysJobLogService.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/ISysJobLogService.java index 0e804e20..45ca0958 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/ISysJobLogService.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/ISysJobLogService.java @@ -1,56 +1,56 @@ package com.ruoyi.job.service; -import java.util.List; import com.ruoyi.job.domain.SysJobLog; +import java.util.List; + /** * 定时任务调度日志信息信息 服务层 - * + * * @author ruoyi */ -public interface ISysJobLogService -{ +public interface ISysJobLogService { /** * 获取quartz调度器日志的计划任务 - * + * * @param jobLog 调度日志信息 * @return 调度任务日志集合 */ - public List selectJobLogList(SysJobLog jobLog); + List selectJobLogList(SysJobLog jobLog); /** * 通过调度任务日志ID查询调度信息 - * + * * @param jobLogId 调度任务日志ID * @return 调度任务日志对象信息 */ - public SysJobLog selectJobLogById(Long jobLogId); + SysJobLog selectJobLogById(Long jobLogId); /** * 新增任务日志 - * + * * @param jobLog 调度日志信息 */ - public void addJobLog(SysJobLog jobLog); + void addJobLog(SysJobLog jobLog); /** * 批量删除调度日志信息 - * + * * @param logIds 需要删除的日志ID * @return 结果 */ - public int deleteJobLogByIds(Long[] logIds); + int deleteJobLogByIds(Long[] logIds); /** * 删除任务日志 - * + * * @param jobId 调度日志ID * @return 结果 */ - public int deleteJobLogById(Long jobId); + int deleteJobLogById(Long jobId); /** * 清空任务日志 */ - public void cleanJobLog(); + void cleanJobLog(); } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobLogServiceImpl.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobLogServiceImpl.java index 0886f310..60a2dcde 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobLogServiceImpl.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobLogServiceImpl.java @@ -1,77 +1,72 @@ package com.ruoyi.job.service; -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; import com.ruoyi.job.domain.SysJobLog; import com.ruoyi.job.mapper.SysJobLogMapper; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.List; /** * 定时任务调度日志信息 服务层 - * + * * @author ruoyi */ @Service -public class SysJobLogServiceImpl implements ISysJobLogService -{ - @Autowired +public class SysJobLogServiceImpl implements ISysJobLogService { + @Resource private SysJobLogMapper jobLogMapper; /** * 获取quartz调度器日志的计划任务 - * + * * @param jobLog 调度日志信息 * @return 调度任务日志集合 */ @Override - public List selectJobLogList(SysJobLog jobLog) - { + public List selectJobLogList(SysJobLog jobLog) { return jobLogMapper.selectJobLogList(jobLog); } /** * 通过调度任务日志ID查询调度信息 - * + * * @param jobLogId 调度任务日志ID * @return 调度任务日志对象信息 */ @Override - public SysJobLog selectJobLogById(Long jobLogId) - { + public SysJobLog selectJobLogById(Long jobLogId) { return jobLogMapper.selectJobLogById(jobLogId); } /** * 新增任务日志 - * + * * @param jobLog 调度日志信息 */ @Override - public void addJobLog(SysJobLog jobLog) - { + public void addJobLog(SysJobLog jobLog) { jobLogMapper.insertJobLog(jobLog); } /** * 批量删除调度日志信息 - * + * * @param logIds 需要删除的数据ID * @return 结果 */ @Override - public int deleteJobLogByIds(Long[] logIds) - { + public int deleteJobLogByIds(Long[] logIds) { return jobLogMapper.deleteJobLogByIds(logIds); } /** * 删除任务日志 - * + * * @param jobId 调度日志ID */ @Override - public int deleteJobLogById(Long jobId) - { + public int deleteJobLogById(Long jobId) { return jobLogMapper.deleteJobLogById(jobId); } @@ -79,8 +74,7 @@ public class SysJobLogServiceImpl implements ISysJobLogService * 清空任务日志 */ @Override - public void cleanJobLog() - { + public void cleanJobLog() { jobLogMapper.cleanJobLog(); } } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java index 71fda968..2ece6374 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java @@ -1,21 +1,21 @@ package com.ruoyi.job.service; -import java.util.List; - +import com.ruoyi.common.core.constant.ScheduleConstants; +import com.ruoyi.common.core.exception.job.TaskException; +import com.ruoyi.job.domain.SysJob; +import com.ruoyi.job.mapper.SysJobMapper; +import com.ruoyi.job.util.CronUtils; +import com.ruoyi.job.util.ScheduleUtils; import jakarta.annotation.PostConstruct; +import jakarta.annotation.Resource; import org.quartz.JobDataMap; import org.quartz.JobKey; import org.quartz.Scheduler; import org.quartz.SchedulerException; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.ruoyi.common.core.constant.ScheduleConstants; -import com.ruoyi.common.core.exception.job.TaskException; -import com.ruoyi.job.domain.SysJob; -import com.ruoyi.job.mapper.SysJobMapper; -import com.ruoyi.job.util.CronUtils; -import com.ruoyi.job.util.ScheduleUtils; + +import java.util.List; /** * 定时任务调度信息 服务层 @@ -24,10 +24,10 @@ import com.ruoyi.job.util.ScheduleUtils; */ @Service public class SysJobServiceImpl implements ISysJobService { - @Autowired + @Resource private Scheduler scheduler; - @Autowired + @Resource private SysJobMapper jobMapper; /** diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/RyTask.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/RyTask.java index 01bd14a8..9d5d568a 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/RyTask.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/RyTask.java @@ -5,24 +5,20 @@ import com.ruoyi.common.core.utils.StringUtils; /** * 定时任务调度测试 - * + * * @author ruoyi */ @Component("ryTask") -public class RyTask -{ - public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) - { +public class RyTask { + public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) { System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i)); } - public void ryParams(String params) - { + public void ryParams(String params) { System.out.println("执行有参方法:" + params); } - public void ryNoParams() - { + public void ryNoParams() { System.out.println("执行无参方法"); } } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/AbstractQuartzJob.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/AbstractQuartzJob.java index 0097d1e6..a269f53c 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/AbstractQuartzJob.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/AbstractQuartzJob.java @@ -1,11 +1,5 @@ package com.ruoyi.job.util; -import java.util.Date; -import org.quartz.Job; -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import com.ruoyi.common.core.constant.ScheduleConstants; import com.ruoyi.common.core.utils.ExceptionUtil; import com.ruoyi.common.core.utils.SpringUtils; @@ -14,38 +8,36 @@ import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.job.domain.SysJob; import com.ruoyi.job.domain.SysJobLog; import com.ruoyi.job.service.ISysJobLogService; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Date; /** * 抽象quartz调用 * * @author ruoyi */ -public abstract class AbstractQuartzJob implements Job -{ +public abstract class AbstractQuartzJob implements Job { private static final Logger log = LoggerFactory.getLogger(AbstractQuartzJob.class); /** * 线程本地变量 */ - private static ThreadLocal threadLocal = new ThreadLocal<>(); + private static final ThreadLocal threadLocal = new ThreadLocal<>(); @Override - public void execute(JobExecutionContext context) throws JobExecutionException - { + public void execute(JobExecutionContext context) { SysJob sysJob = new SysJob(); BeanUtils.copyBeanProp(sysJob, context.getMergedJobDataMap().get(ScheduleConstants.TASK_PROPERTIES)); - try - { + try { before(context, sysJob); - if (sysJob != null) - { - doExecute(context, sysJob); - } + doExecute(context, sysJob); after(context, sysJob, null); - } - catch (Exception e) - { - log.error("任务执行异常 - :", e); + } catch (Exception e) { + log.error("任务执行异常 - :", e); after(context, sysJob, e); } } @@ -54,10 +46,9 @@ public abstract class AbstractQuartzJob implements Job * 执行前 * * @param context 工作执行上下文对象 - * @param sysJob 系统计划任务 + * @param sysJob 系统计划任务 */ - protected void before(JobExecutionContext context, SysJob sysJob) - { + protected void before(JobExecutionContext context, SysJob sysJob) { threadLocal.set(new Date()); } @@ -65,10 +56,9 @@ public abstract class AbstractQuartzJob implements Job * 执行后 * * @param context 工作执行上下文对象 - * @param sysJob 系统计划任务 + * @param sysJob 系统计划任务 */ - protected void after(JobExecutionContext context, SysJob sysJob, Exception e) - { + protected void after(JobExecutionContext context, SysJob sysJob, Exception e) { Date startTime = threadLocal.get(); threadLocal.remove(); @@ -80,14 +70,11 @@ public abstract class AbstractQuartzJob implements Job sysJobLog.setStopTime(new Date()); long runMs = sysJobLog.getStopTime().getTime() - sysJobLog.getStartTime().getTime(); sysJobLog.setJobMessage(sysJobLog.getJobName() + " 总共耗时:" + runMs + "毫秒"); - if (e != null) - { + if (e != null) { sysJobLog.setStatus("1"); String errorMsg = StringUtils.substring(ExceptionUtil.getExceptionMessage(e), 0, 2000); sysJobLog.setExceptionInfo(errorMsg); - } - else - { + } else { sysJobLog.setStatus("0"); } @@ -99,7 +86,7 @@ public abstract class AbstractQuartzJob implements Job * 执行方法,由子类重载 * * @param context 工作执行上下文对象 - * @param sysJob 系统计划任务 + * @param sysJob 系统计划任务 * @throws Exception 执行过程中的异常 */ protected abstract void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception; diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/CronUtils.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/CronUtils.java index 98a4147d..a0669fec 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/CronUtils.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/CronUtils.java @@ -1,25 +1,23 @@ package com.ruoyi.job.util; +import org.quartz.CronExpression; + import java.text.ParseException; import java.util.Date; -import org.quartz.CronExpression; /** * cron表达式工具类 - * - * @author ruoyi * + * @author ruoyi */ -public class CronUtils -{ +public class CronUtils { /** * 返回一个布尔值代表一个给定的Cron表达式的有效性 * * @param cronExpression Cron表达式 * @return boolean 表达式是否有效 */ - public static boolean isValid(String cronExpression) - { + public static boolean isValid(String cronExpression) { return CronExpression.isValidExpression(cronExpression); } @@ -29,15 +27,11 @@ public class CronUtils * @param cronExpression Cron表达式 * @return String 无效时返回表达式错误描述,如果有效返回null */ - public static String getInvalidMessage(String cronExpression) - { - try - { + public static String getInvalidMessage(String cronExpression) { + try { new CronExpression(cronExpression); return null; - } - catch (ParseException pe) - { + } catch (ParseException pe) { return pe.getMessage(); } } @@ -48,15 +42,11 @@ public class CronUtils * @param cronExpression Cron表达式 * @return Date 下次Cron表达式执行时间 */ - public static Date getNextExecution(String cronExpression) - { - try - { + public static Date getNextExecution(String cronExpression) { + try { CronExpression cron = new CronExpression(cronExpression); return cron.getNextValidTimeAfter(new Date(System.currentTimeMillis())); - } - catch (ParseException e) - { + } catch (ParseException e) { throw new IllegalArgumentException(e.getMessage()); } } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/JobInvokeUtil.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/JobInvokeUtil.java index 9a81a35a..4fe90d53 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/JobInvokeUtil.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/JobInvokeUtil.java @@ -1,39 +1,36 @@ package com.ruoyi.job.util; +import com.ruoyi.common.core.utils.SpringUtils; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.job.domain.SysJob; + import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.LinkedList; import java.util.List; -import com.ruoyi.common.core.utils.SpringUtils; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.job.domain.SysJob; /** * 任务执行工具 * * @author ruoyi */ -public class JobInvokeUtil -{ +public class JobInvokeUtil { + /** * 执行方法 * * @param sysJob 系统任务 */ - public static void invokeMethod(SysJob sysJob) throws Exception - { + public static void invokeMethod(SysJob sysJob) throws Exception { String invokeTarget = sysJob.getInvokeTarget(); String beanName = getBeanName(invokeTarget); String methodName = getMethodName(invokeTarget); List methodParams = getMethodParams(invokeTarget); - if (!isValidClassName(beanName)) - { + if (!isValidClassName(beanName)) { Object bean = SpringUtils.getBean(beanName); invokeMethod(bean, methodName, methodParams); - } - else - { + } else { Object bean = Class.forName(beanName).getDeclaredConstructor().newInstance(); invokeMethod(bean, methodName, methodParams); } @@ -42,21 +39,17 @@ public class JobInvokeUtil /** * 调用任务方法 * - * @param bean 目标对象 - * @param methodName 方法名称 + * @param bean 目标对象 + * @param methodName 方法名称 * @param methodParams 方法参数 */ private static void invokeMethod(Object bean, String methodName, List methodParams) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, - InvocationTargetException - { - if (StringUtils.isNotNull(methodParams) && methodParams.size() > 0) - { + InvocationTargetException { + if (StringUtils.isNotNull(methodParams) && !methodParams.isEmpty()) { Method method = bean.getClass().getMethod(methodName, getMethodParamsType(methodParams)); method.invoke(bean, getMethodParamsValue(methodParams)); - } - else - { + } else { Method method = bean.getClass().getMethod(methodName); method.invoke(bean); } @@ -64,81 +57,70 @@ public class JobInvokeUtil /** * 校验是否为为class包名 - * + * * @param invokeTarget 名称 * @return true是 false否 */ - public static boolean isValidClassName(String invokeTarget) - { + public static boolean isValidClassName(String invokeTarget) { return StringUtils.countMatches(invokeTarget, ".") > 1; } /** * 获取bean名称 - * + * * @param invokeTarget 目标字符串 * @return bean名称 */ - public static String getBeanName(String invokeTarget) - { + public static String getBeanName(String invokeTarget) { String beanName = StringUtils.substringBefore(invokeTarget, "("); return StringUtils.substringBeforeLast(beanName, "."); } /** * 获取bean方法 - * + * * @param invokeTarget 目标字符串 * @return method方法 */ - public static String getMethodName(String invokeTarget) - { + public static String getMethodName(String invokeTarget) { String methodName = StringUtils.substringBefore(invokeTarget, "("); return StringUtils.substringAfterLast(methodName, "."); } /** * 获取method方法参数相关列表 - * + * * @param invokeTarget 目标字符串 * @return method方法相关参数列表 */ - public static List getMethodParams(String invokeTarget) - { + public static List getMethodParams(String invokeTarget) { String methodStr = StringUtils.substringBetween(invokeTarget, "(", ")"); - if (StringUtils.isEmpty(methodStr)) - { + if (StringUtils.isEmpty(methodStr)) { return null; } String[] methodParams = methodStr.split(",(?=([^\"']*[\"'][^\"']*[\"'])*[^\"']*$)"); List classs = new LinkedList<>(); - for (int i = 0; i < methodParams.length; i++) - { - String str = StringUtils.trimToEmpty(methodParams[i]); + for (String methodParam : methodParams) { + String str = StringUtils.trimToEmpty(methodParam); // String字符串类型,以'或"开头 - if (StringUtils.startsWithAny(str, "'", "\"")) - { - classs.add(new Object[] { StringUtils.substring(str, 1, str.length() - 1), String.class }); + if (StringUtils.startsWithAny(str, "'", "\"")) { + classs.add(new Object[]{StringUtils.substring(str, 1, str.length() - 1), String.class}); } // boolean布尔类型,等于true或者false - else if ("true".equalsIgnoreCase(str) || "false".equalsIgnoreCase(str)) - { - classs.add(new Object[] { Boolean.valueOf(str), Boolean.class }); + else if ("true".equalsIgnoreCase(str) || "false".equalsIgnoreCase(str)) { + classs.add(new Object[]{Boolean.valueOf(str), Boolean.class}); } // long长整形,以L结尾 - else if (StringUtils.endsWith(str, "L")) - { - classs.add(new Object[] { Long.valueOf(StringUtils.substring(str, 0, str.length() - 1)), Long.class }); + else if (StringUtils.endsWith(str, "L")) { + classs.add(new Object[]{Long.valueOf(StringUtils.substring(str, 0, str.length() - 1)), Long.class}); } // double浮点类型,以D结尾 - else if (StringUtils.endsWith(str, "D")) - { - classs.add(new Object[] { Double.valueOf(StringUtils.substring(str, 0, str.length() - 1)), Double.class }); + else if (StringUtils.endsWith(str, "D")) { + classs.add(new Object[]{Double.valueOf(StringUtils.substring(str, 0, str.length() - 1)), Double.class}); } // 其他类型归类为整形 - else - { - classs.add(new Object[] { Integer.valueOf(str), Integer.class }); + else { + classs.add(new Object[]{Integer.valueOf(str), Integer.class}); } } return classs; @@ -146,16 +128,14 @@ public class JobInvokeUtil /** * 获取参数类型 - * + * * @param methodParams 参数相关列表 * @return 参数类型列表 */ - public static Class[] getMethodParamsType(List methodParams) - { + public static Class[] getMethodParamsType(List methodParams) { Class[] classs = new Class[methodParams.size()]; int index = 0; - for (Object[] os : methodParams) - { + for (Object[] os : methodParams) { classs[index] = (Class) os[1]; index++; } @@ -164,16 +144,14 @@ public class JobInvokeUtil /** * 获取参数值 - * + * * @param methodParams 参数相关列表 * @return 参数值列表 */ - public static Object[] getMethodParamsValue(List methodParams) - { + public static Object[] getMethodParamsValue(List methodParams) { Object[] classs = new Object[methodParams.size()]; int index = 0; - for (Object[] os : methodParams) - { + for (Object[] os : methodParams) { classs[index] = (Object) os[0]; index++; } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/QuartzDisallowConcurrentExecution.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/QuartzDisallowConcurrentExecution.java index 88e27d34..230a3310 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/QuartzDisallowConcurrentExecution.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/QuartzDisallowConcurrentExecution.java @@ -7,16 +7,13 @@ import com.ruoyi.job.domain.SysJob; /** * 定时任务处理(禁止并发执行) - * - * @author ruoyi * + * @author ruoyi */ @DisallowConcurrentExecution -public class QuartzDisallowConcurrentExecution extends AbstractQuartzJob -{ +public class QuartzDisallowConcurrentExecution extends AbstractQuartzJob { @Override - protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception - { + protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception { JobInvokeUtil.invokeMethod(sysJob); } } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/QuartzJobExecution.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/QuartzJobExecution.java index 246b693a..bc090dd6 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/QuartzJobExecution.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/QuartzJobExecution.java @@ -6,15 +6,12 @@ import com.ruoyi.job.domain.SysJob; /** * 定时任务处理(允许并发执行) - * - * @author ruoyi * + * @author ruoyi */ -public class QuartzJobExecution extends AbstractQuartzJob -{ +public class QuartzJobExecution extends AbstractQuartzJob { @Override - protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception - { + protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception { JobInvokeUtil.invokeMethod(sysJob); } } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/ScheduleUtils.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/ScheduleUtils.java index f7f67d52..db23f559 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/ScheduleUtils.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/ScheduleUtils.java @@ -30,9 +30,21 @@ public class ScheduleUtils { * @param sysJob 执行计划 * @return 具体执行任务类 */ - private static Class getQuartzJobClass(SysJob sysJob) { - boolean isConcurrent = "0".equals(sysJob.getConcurrent()); - return isConcurrent ? QuartzJobExecution.class : QuartzDisallowConcurrentExecution.class; + @SuppressWarnings("unchecked") + private static Class getQuartzJobClass(SysJob sysJob) throws TaskException { + String customJobClass = sysJob.getCustomJobClass(); + if (StringUtils.isNotBlank(customJobClass)) { + // 使用自定义任务类 + try { + return (Class) Class.forName(customJobClass); + } catch (Exception e) { + throw new TaskException("Custom job class [" + customJobClass + "] not exists", Code.CONFIG_ERROR); + } + } else { + // 使用系统任务类 + boolean isConcurrent = "0".equals(sysJob.getConcurrent()); + return isConcurrent ? QuartzJobExecution.class : QuartzDisallowConcurrentExecution.class; + } } /** diff --git a/ruoyi-modules/ruoyi-job/src/main/resources/com/ruoyi/job/mapper/SysJobMapper.xml b/ruoyi-modules/ruoyi-job/src/main/resources/com/ruoyi/job/mapper/SysJobMapper.xml index a0b0ce88..b3947a39 100644 --- a/ruoyi-modules/ruoyi-job/src/main/resources/com/ruoyi/job/mapper/SysJobMapper.xml +++ b/ruoyi-modules/ruoyi-job/src/main/resources/com/ruoyi/job/mapper/SysJobMapper.xml @@ -1,111 +1,128 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - - - - - - select job_id, job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark - from sys_job + + + + + + + + + + + + + + + + + + + select job_id, + job_name, + job_group, + invoke_target, + cron_expression, + misfire_policy, + concurrent, + status, + custom_job_class, + create_by, + create_time, + remark + from sys_job - - - - - - - - - delete from sys_job where job_id = #{jobId} - - - - delete from sys_job where job_id in - - #{jobId} - - - - - update sys_job - - job_name = #{jobName}, - job_group = #{jobGroup}, - invoke_target = #{invokeTarget}, - cron_expression = #{cronExpression}, - misfire_policy = #{misfirePolicy}, - concurrent = #{concurrent}, - status = #{status}, - remark = #{remark}, - update_by = #{updateBy}, - update_time = sysdate() - - where job_id = #{jobId} - - - - insert into sys_job( - job_id, - job_name, - job_group, - invoke_target, - cron_expression, - misfire_policy, - concurrent, - status, - remark, - create_by, - create_time - )values( - #{jobId}, - #{jobName}, - #{jobGroup}, - #{invokeTarget}, - #{cronExpression}, - #{misfirePolicy}, - #{concurrent}, - #{status}, - #{remark}, - #{createBy}, - sysdate() - ) - + + + + + + + + + delete + from sys_job + where job_id = #{jobId} + + + + delete from sys_job where job_id in + + #{jobId} + + + + + update sys_job + + job_name = #{jobName}, + job_group = #{jobGroup}, + invoke_target = #{invokeTarget}, + cron_expression = #{cronExpression}, + misfire_policy = #{misfirePolicy}, + concurrent = #{concurrent}, + status = #{status}, + custom_job_class = #{customJobClass}, + remark = #{remark}, + update_by = #{updateBy}, + update_time = sysdate() + + where job_id = #{jobId} + + + + insert into sys_job( + job_id, + job_name, + job_group, + invoke_target, + cron_expression, + misfire_policy, + concurrent, + status, + custom_job_class, + remark, + create_by, + create_time + )values( + #{jobId}, + #{jobName}, + #{jobGroup}, + #{invokeTarget}, + #{cronExpression}, + #{misfirePolicy}, + #{concurrent}, + #{status}, + #{customJobClass}, + #{remark}, + #{createBy}, + sysdate() + ) + \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/controller/GoodsTypeController.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/controller/GoodsTypeController.java deleted file mode 100644 index 003d69f8..00000000 --- a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/controller/GoodsTypeController.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.ruoyi.wms.controller; - -import com.ruoyi.common.core.utils.poi.ExcelUtil; -import com.ruoyi.common.core.web.controller.BaseController; -import com.ruoyi.common.core.web.domain.AjaxResult; -import com.ruoyi.common.core.web.page.TableDataInfo; -import com.ruoyi.common.log.annotation.Log; -import com.ruoyi.common.log.enums.BusinessType; -import com.ruoyi.common.security.annotation.RequiresPermissions; -import com.ruoyi.wms.domain.GoodsType; -import com.ruoyi.wms.service.IGoodsTypeService; -import jakarta.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 物品类型管理Controller - * - * @author ryas - * created on 2024-02-18 - */ -@RestController -@RequestMapping("/GoodsType") -public class GoodsTypeController extends BaseController { - @Autowired - private IGoodsTypeService goodsTypeService; - - /** - * 查询物品类型管理列表 - */ - @RequiresPermissions("wms:GoodsType:list") - @GetMapping("/list") - public TableDataInfo list(GoodsType goodsType) { - startPage(); - List list = goodsTypeService.selectGoodsTypeList(goodsType); - return getDataTable(list); - } - - /** - * 导出物品类型管理列表 - */ - @RequiresPermissions("wms:GoodsType:export") - @Log(title = "物品类型管理", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, GoodsType goodsType) { - List list = goodsTypeService.selectGoodsTypeList(goodsType); - ExcelUtil util = new ExcelUtil<>(GoodsType.class); - util.exportExcel(response, list, "物品类型管理数据"); - } - - /** - * 获取物品类型管理详细信息 - */ - @RequiresPermissions("wms:GoodsType:query") - @GetMapping(value = "/{goodsTypeCd}") - public AjaxResult getInfo(@PathVariable("goodsTypeCd") String goodsTypeCd) { - return success(goodsTypeService.selectGoodsTypeByGoodsTypeCd(goodsTypeCd)); - } - - /** - * 新增物品类型管理 - */ - @RequiresPermissions("wms:GoodsType:add") - @Log(title = "物品类型管理", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody GoodsType goodsType) { - return toAjax(goodsTypeService.insertGoodsType(goodsType)); - } - - /** - * 修改物品类型管理 - */ - @RequiresPermissions("wms:GoodsType:edit") - @Log(title = "物品类型管理", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@RequestBody GoodsType goodsType) { - return toAjax(goodsTypeService.updateGoodsType(goodsType)); - } - - /** - * 删除物品类型管理 - */ - @RequiresPermissions("wms:GoodsType:remove") - @Log(title = "物品类型管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{goodsTypeCds}") - public AjaxResult remove(@PathVariable String[] goodsTypeCds) { - return toAjax(goodsTypeService.deleteGoodsTypeByGoodsTypeCds(goodsTypeCds)); - } -} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/controller/ItemInfoController.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/controller/ItemInfoController.java new file mode 100644 index 00000000..fb7d8041 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/controller/ItemInfoController.java @@ -0,0 +1,91 @@ +package com.ruoyi.wms.controller; + +import com.ruoyi.common.core.utils.poi.ExcelUtil; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.TableDataInfo; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.wms.domain.ItemInfo; +import com.ruoyi.wms.service.IItemInfoService; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 物品基础信息Controller + * + * @author ryas + * created on 2024-02-20 + */ +@RestController +@RequestMapping("/ItemInfo") +public class ItemInfoController extends BaseController { + @Autowired + private IItemInfoService itemInfoService; + + /** + * 查询物品基础信息列表 + */ + @RequiresPermissions("wms:ItemInfo:list") + @GetMapping("/list") + public TableDataInfo list(ItemInfo itemInfo) { + startPage(); + List list = itemInfoService.selectItemInfoList(itemInfo); + return getDataTable(list); + } + + /** + * 导出物品基础信息列表 + */ + @RequiresPermissions("wms:ItemInfo:export") + @Log(title = "物品基础信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ItemInfo itemInfo) { + List list = itemInfoService.selectItemInfoList(itemInfo); + ExcelUtil util = new ExcelUtil<>(ItemInfo.class); + util.exportExcel(response, list, "物品基础信息数据"); + } + + /** + * 获取物品基础信息详细信息 + */ + @RequiresPermissions("wms:ItemInfo:query") + @GetMapping(value = "/{itemCd}") + public AjaxResult getInfo(@PathVariable("itemCd") String itemCd) { + return success(itemInfoService.selectItemInfoByItemCd(itemCd)); + } + + /** + * 新增物品基础信息 + */ + @RequiresPermissions("wms:ItemInfo:add") + @Log(title = "物品基础信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ItemInfo itemInfo) { + return toAjax(itemInfoService.insertItemInfo(itemInfo)); + } + + /** + * 修改物品基础信息 + */ + @RequiresPermissions("wms:ItemInfo:edit") + @Log(title = "物品基础信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ItemInfo itemInfo) { + return toAjax(itemInfoService.updateItemInfo(itemInfo)); + } + + /** + * 删除物品基础信息 + */ + @RequiresPermissions("wms:ItemInfo:remove") + @Log(title = "物品基础信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{itemCds}") + public AjaxResult remove(@PathVariable String[] itemCds) { + return toAjax(itemInfoService.deleteItemInfoByItemCds(itemCds)); + } +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/controller/ItemTypeController.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/controller/ItemTypeController.java new file mode 100644 index 00000000..9b8adf7e --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/controller/ItemTypeController.java @@ -0,0 +1,91 @@ +package com.ruoyi.wms.controller; + +import com.ruoyi.common.core.utils.poi.ExcelUtil; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.TableDataInfo; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.wms.domain.ItemType; +import com.ruoyi.wms.service.IItemTypeService; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 物品类型Controller + * + * @author ryas + * created on 2024-02-20 + */ +@RestController +@RequestMapping("/ItemType") +public class ItemTypeController extends BaseController { + @Autowired + private IItemTypeService itemTypeService; + + /** + * 查询物品类型列表 + */ + @RequiresPermissions("wms:ItemType:list") + @GetMapping("/list") + public TableDataInfo list(ItemType itemType) { + startPage(); + List list = itemTypeService.selectItemTypeList(itemType); + return getDataTable(list); + } + + /** + * 导出物品类型列表 + */ + @RequiresPermissions("wms:ItemType:export") + @Log(title = "物品类型", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ItemType itemType) { + List list = itemTypeService.selectItemTypeList(itemType); + ExcelUtil util = new ExcelUtil<>(ItemType.class); + util.exportExcel(response, list, "物品类型数据"); + } + + /** + * 获取物品类型详细信息 + */ + @RequiresPermissions("wms:ItemType:query") + @GetMapping(value = "/{itemTypeCd}") + public AjaxResult getInfo(@PathVariable("itemTypeCd") String itemTypeCd) { + return success(itemTypeService.selectItemTypeByItemTypeCd(itemTypeCd)); + } + + /** + * 新增物品类型 + */ + @RequiresPermissions("wms:ItemType:add") + @Log(title = "物品类型", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ItemType itemType) { + return toAjax(itemTypeService.insertItemType(itemType)); + } + + /** + * 修改物品类型 + */ + @RequiresPermissions("wms:ItemType:edit") + @Log(title = "物品类型", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ItemType itemType) { + return toAjax(itemTypeService.updateItemType(itemType)); + } + + /** + * 删除物品类型 + */ + @RequiresPermissions("wms:ItemType:remove") + @Log(title = "物品类型", businessType = BusinessType.DELETE) + @DeleteMapping("/{itemTypeCds}") + public AjaxResult remove(@PathVariable String[] itemTypeCds) { + return toAjax(itemTypeService.deleteItemTypeByItemTypeCds(itemTypeCds)); + } +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/domain/ItemInfo.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/domain/ItemInfo.java new file mode 100644 index 00000000..a8ad0b10 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/domain/ItemInfo.java @@ -0,0 +1,691 @@ +package com.ruoyi.wms.domain; + +import com.ruoyi.common.core.web.domain.ExtBaseEntity; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * This class was generated by MyBatis Generator. + * + *
    + *
  • Table: WMS_M_ITEM_INFO
  • + *
+ * + * @author ryas + * created on 2024-02-20 + */ +public class ItemInfo extends ExtBaseEntity implements Serializable { + /** + * 物品代码 + */ + private String itemCd; + + /** + * 从属部门ID + */ + private Integer deptId; + + /** + * 物品名称 + */ + private String itemName; + + /** + * 供应商 + */ + private String supplier; + + /** + * 筹备提前期 + */ + private BigDecimal prepLeadTime; + + /** + * 入库提前期 + */ + private BigDecimal instockLeadTime; + + /** + * 放置期 + */ + private BigDecimal restingPeriod; + + /** + * 出库提前期 + */ + private BigDecimal outstockLeadTime; + + /** + * 规格1 + */ + private String spec1; + + /** + * 规格2 + */ + private String spec2; + + /** + * 规格3 + */ + private String spec3; + + /** + * 规格4 + */ + private String spec4; + + /** + * 规格5 + */ + private String spec5; + + /** + * 分类1 + */ + private String cls1; + + /** + * 分类2 + */ + private String cls2; + + /** + * 分类3 + */ + private String cls3; + + /** + * 分类4 + */ + private String cls4; + + /** + * 分类5 + */ + private String cls5; + + /** + * 备注1 + */ + private String remark1; + + /** + * 备注2 + */ + private String remark2; + + /** + * 备注3 + */ + private String remark3; + + /** + * 备注4 + */ + private String remark4; + + /** + * 备注5 + */ + private String remark5; + + /** + * 供货周期 + */ + private String deliveryPeriod; + + /** + * 默认库位号 + */ + private String defaultStgBinCd; + + /** + * 启用标志 + */ + private Integer enableFlg; + + /** + * 安全库存量 + */ + private BigDecimal safetyStock; + + /** + * 最大库存量 + */ + private BigDecimal maxInvQty; + + /** + * 发起购买的阈值 + */ + private BigDecimal purchLimitQty; + + /** + * 物品区分 + */ + private String goodsCls; + + /** + * 批号管理区分(0:不管理, 1:管理) + */ + private Integer lotNoMgmtCls; + + /** + * 物品类型代码 + */ + private String itemTypeCd; + + /** + * 标准单位代码 + */ + private String stdUnitCd; + + /** + * 包装单位代码 + */ + private String pkgUnitCd; + + /** + * 出库申请最小数量 + */ + private BigDecimal outstockReqMinQty; + + /** + * 出库单位区分 + */ + private String outstockUnitCls; + + /** + * 单位净重 + */ + private BigDecimal netWeightPerUnit; + + /** + * 自身体积(M3) + */ + private BigDecimal ownVolM3; + + /** + * 尺寸(长) + */ + private BigDecimal sizeD; + + /** + * 尺寸(宽) + */ + private BigDecimal sizeW; + + /** + * 尺寸(高) + */ + private BigDecimal sizeH; + + /** + * 包装要求描述 + */ + private String pkgRqmtDesc; + + /** + * 码放要求描述 + */ + private String stackingRqmtDesc; + + /** + * 储存要求描述 + */ + private String stgRqmtDesc; + + /** + * 生产商 + */ + private String manufacturer; + + /** + * 图片ID + */ + private String pictureId; + + /** + * 图片URL + */ + private String pictureUrl; + + @Serial + private static final long serialVersionUID = 1L; + + public String getItemCd() { + return itemCd; + } + + public void setItemCd(String itemCd) { + this.itemCd = itemCd == null ? null : itemCd.trim(); + } + + public Integer getDeptId() { + return deptId; + } + + public void setDeptId(Integer deptId) { + this.deptId = deptId; + } + + public String getItemName() { + return itemName; + } + + public void setItemName(String itemName) { + this.itemName = itemName == null ? null : itemName.trim(); + } + + public String getSupplier() { + return supplier; + } + + public void setSupplier(String supplier) { + this.supplier = supplier == null ? null : supplier.trim(); + } + + public BigDecimal getPrepLeadTime() { + return prepLeadTime; + } + + public void setPrepLeadTime(BigDecimal prepLeadTime) { + this.prepLeadTime = prepLeadTime; + } + + public BigDecimal getInstockLeadTime() { + return instockLeadTime; + } + + public void setInstockLeadTime(BigDecimal instockLeadTime) { + this.instockLeadTime = instockLeadTime; + } + + public BigDecimal getRestingPeriod() { + return restingPeriod; + } + + public void setRestingPeriod(BigDecimal restingPeriod) { + this.restingPeriod = restingPeriod; + } + + public BigDecimal getOutstockLeadTime() { + return outstockLeadTime; + } + + public void setOutstockLeadTime(BigDecimal outstockLeadTime) { + this.outstockLeadTime = outstockLeadTime; + } + + public String getSpec1() { + return spec1; + } + + public void setSpec1(String spec1) { + this.spec1 = spec1 == null ? null : spec1.trim(); + } + + public String getSpec2() { + return spec2; + } + + public void setSpec2(String spec2) { + this.spec2 = spec2 == null ? null : spec2.trim(); + } + + public String getSpec3() { + return spec3; + } + + public void setSpec3(String spec3) { + this.spec3 = spec3 == null ? null : spec3.trim(); + } + + public String getSpec4() { + return spec4; + } + + public void setSpec4(String spec4) { + this.spec4 = spec4 == null ? null : spec4.trim(); + } + + public String getSpec5() { + return spec5; + } + + public void setSpec5(String spec5) { + this.spec5 = spec5 == null ? null : spec5.trim(); + } + + public String getCls1() { + return cls1; + } + + public void setCls1(String cls1) { + this.cls1 = cls1 == null ? null : cls1.trim(); + } + + public String getCls2() { + return cls2; + } + + public void setCls2(String cls2) { + this.cls2 = cls2 == null ? null : cls2.trim(); + } + + public String getCls3() { + return cls3; + } + + public void setCls3(String cls3) { + this.cls3 = cls3 == null ? null : cls3.trim(); + } + + public String getCls4() { + return cls4; + } + + public void setCls4(String cls4) { + this.cls4 = cls4 == null ? null : cls4.trim(); + } + + public String getCls5() { + return cls5; + } + + public void setCls5(String cls5) { + this.cls5 = cls5 == null ? null : cls5.trim(); + } + + public String getRemark1() { + return remark1; + } + + public void setRemark1(String remark1) { + this.remark1 = remark1 == null ? null : remark1.trim(); + } + + public String getRemark2() { + return remark2; + } + + public void setRemark2(String remark2) { + this.remark2 = remark2 == null ? null : remark2.trim(); + } + + public String getRemark3() { + return remark3; + } + + public void setRemark3(String remark3) { + this.remark3 = remark3 == null ? null : remark3.trim(); + } + + public String getRemark4() { + return remark4; + } + + public void setRemark4(String remark4) { + this.remark4 = remark4 == null ? null : remark4.trim(); + } + + public String getRemark5() { + return remark5; + } + + public void setRemark5(String remark5) { + this.remark5 = remark5 == null ? null : remark5.trim(); + } + + public String getDeliveryPeriod() { + return deliveryPeriod; + } + + public void setDeliveryPeriod(String deliveryPeriod) { + this.deliveryPeriod = deliveryPeriod == null ? null : deliveryPeriod.trim(); + } + + public String getDefaultStgBinCd() { + return defaultStgBinCd; + } + + public void setDefaultStgBinCd(String defaultStgBinCd) { + this.defaultStgBinCd = defaultStgBinCd == null ? null : defaultStgBinCd.trim(); + } + + public Integer getEnableFlg() { + return enableFlg; + } + + public void setEnableFlg(Integer enableFlg) { + this.enableFlg = enableFlg; + } + + public BigDecimal getSafetyStock() { + return safetyStock; + } + + public void setSafetyStock(BigDecimal safetyStock) { + this.safetyStock = safetyStock; + } + + public BigDecimal getMaxInvQty() { + return maxInvQty; + } + + public void setMaxInvQty(BigDecimal maxInvQty) { + this.maxInvQty = maxInvQty; + } + + public BigDecimal getPurchLimitQty() { + return purchLimitQty; + } + + public void setPurchLimitQty(BigDecimal purchLimitQty) { + this.purchLimitQty = purchLimitQty; + } + + public String getGoodsCls() { + return goodsCls; + } + + public void setGoodsCls(String goodsCls) { + this.goodsCls = goodsCls == null ? null : goodsCls.trim(); + } + + public Integer getLotNoMgmtCls() { + return lotNoMgmtCls; + } + + public void setLotNoMgmtCls(Integer lotNoMgmtCls) { + this.lotNoMgmtCls = lotNoMgmtCls; + } + + public String getItemTypeCd() { + return itemTypeCd; + } + + public void setItemTypeCd(String itemTypeCd) { + this.itemTypeCd = itemTypeCd == null ? null : itemTypeCd.trim(); + } + + public String getStdUnitCd() { + return stdUnitCd; + } + + public void setStdUnitCd(String stdUnitCd) { + this.stdUnitCd = stdUnitCd == null ? null : stdUnitCd.trim(); + } + + public String getPkgUnitCd() { + return pkgUnitCd; + } + + public void setPkgUnitCd(String pkgUnitCd) { + this.pkgUnitCd = pkgUnitCd == null ? null : pkgUnitCd.trim(); + } + + public BigDecimal getOutstockReqMinQty() { + return outstockReqMinQty; + } + + public void setOutstockReqMinQty(BigDecimal outstockReqMinQty) { + this.outstockReqMinQty = outstockReqMinQty; + } + + public String getOutstockUnitCls() { + return outstockUnitCls; + } + + public void setOutstockUnitCls(String outstockUnitCls) { + this.outstockUnitCls = outstockUnitCls == null ? null : outstockUnitCls.trim(); + } + + public BigDecimal getNetWeightPerUnit() { + return netWeightPerUnit; + } + + public void setNetWeightPerUnit(BigDecimal netWeightPerUnit) { + this.netWeightPerUnit = netWeightPerUnit; + } + + public BigDecimal getOwnVolM3() { + return ownVolM3; + } + + public void setOwnVolM3(BigDecimal ownVolM3) { + this.ownVolM3 = ownVolM3; + } + + public BigDecimal getSizeD() { + return sizeD; + } + + public void setSizeD(BigDecimal sizeD) { + this.sizeD = sizeD; + } + + public BigDecimal getSizeW() { + return sizeW; + } + + public void setSizeW(BigDecimal sizeW) { + this.sizeW = sizeW; + } + + public BigDecimal getSizeH() { + return sizeH; + } + + public void setSizeH(BigDecimal sizeH) { + this.sizeH = sizeH; + } + + public String getPkgRqmtDesc() { + return pkgRqmtDesc; + } + + public void setPkgRqmtDesc(String pkgRqmtDesc) { + this.pkgRqmtDesc = pkgRqmtDesc == null ? null : pkgRqmtDesc.trim(); + } + + public String getStackingRqmtDesc() { + return stackingRqmtDesc; + } + + public void setStackingRqmtDesc(String stackingRqmtDesc) { + this.stackingRqmtDesc = stackingRqmtDesc == null ? null : stackingRqmtDesc.trim(); + } + + public String getStgRqmtDesc() { + return stgRqmtDesc; + } + + public void setStgRqmtDesc(String stgRqmtDesc) { + this.stgRqmtDesc = stgRqmtDesc == null ? null : stgRqmtDesc.trim(); + } + + public String getManufacturer() { + return manufacturer; + } + + public void setManufacturer(String manufacturer) { + this.manufacturer = manufacturer == null ? null : manufacturer.trim(); + } + + public String getPictureId() { + return pictureId; + } + + public void setPictureId(String pictureId) { + this.pictureId = pictureId == null ? null : pictureId.trim(); + } + + public String getPictureUrl() { + return pictureUrl; + } + + public void setPictureUrl(String pictureUrl) { + this.pictureUrl = pictureUrl == null ? null : pictureUrl.trim(); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", itemCd=").append(itemCd); + sb.append(", deptId=").append(deptId); + sb.append(", itemName=").append(itemName); + sb.append(", supplier=").append(supplier); + sb.append(", prepLeadTime=").append(prepLeadTime); + sb.append(", instockLeadTime=").append(instockLeadTime); + sb.append(", restingPeriod=").append(restingPeriod); + sb.append(", outstockLeadTime=").append(outstockLeadTime); + sb.append(", spec1=").append(spec1); + sb.append(", spec2=").append(spec2); + sb.append(", spec3=").append(spec3); + sb.append(", spec4=").append(spec4); + sb.append(", spec5=").append(spec5); + sb.append(", cls1=").append(cls1); + sb.append(", cls2=").append(cls2); + sb.append(", cls3=").append(cls3); + sb.append(", cls4=").append(cls4); + sb.append(", cls5=").append(cls5); + sb.append(", remark1=").append(remark1); + sb.append(", remark2=").append(remark2); + sb.append(", remark3=").append(remark3); + sb.append(", remark4=").append(remark4); + sb.append(", remark5=").append(remark5); + sb.append(", deliveryPeriod=").append(deliveryPeriod); + sb.append(", defaultStgBinCd=").append(defaultStgBinCd); + sb.append(", enableFlg=").append(enableFlg); + sb.append(", safetyStock=").append(safetyStock); + sb.append(", maxInvQty=").append(maxInvQty); + sb.append(", purchLimitQty=").append(purchLimitQty); + sb.append(", goodsCls=").append(goodsCls); + sb.append(", lotNoMgmtCls=").append(lotNoMgmtCls); + sb.append(", itemTypeCd=").append(itemTypeCd); + sb.append(", stdUnitCd=").append(stdUnitCd); + sb.append(", pkgUnitCd=").append(pkgUnitCd); + sb.append(", outstockReqMinQty=").append(outstockReqMinQty); + sb.append(", outstockUnitCls=").append(outstockUnitCls); + sb.append(", netWeightPerUnit=").append(netWeightPerUnit); + sb.append(", ownVolM3=").append(ownVolM3); + sb.append(", sizeD=").append(sizeD); + sb.append(", sizeW=").append(sizeW); + sb.append(", sizeH=").append(sizeH); + sb.append(", pkgRqmtDesc=").append(pkgRqmtDesc); + sb.append(", stackingRqmtDesc=").append(stackingRqmtDesc); + sb.append(", stgRqmtDesc=").append(stgRqmtDesc); + sb.append(", manufacturer=").append(manufacturer); + sb.append(", pictureId=").append(pictureId); + sb.append(", pictureUrl=").append(pictureUrl); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/domain/GoodsType.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/domain/ItemType.java similarity index 78% rename from ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/domain/GoodsType.java rename to ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/domain/ItemType.java index 4ebdb9a5..d788e93a 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/domain/GoodsType.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/domain/ItemType.java @@ -10,19 +10,19 @@ import java.io.Serializable; * This class was generated by MyBatis Generator. * *
    - *
  • Table: WMS_M_GOODS_TYPE_INFO
  • + *
  • Table: WMS_M_ITEM_TYPE
  • *
  • Remarks: 物品类型表
  • *
* * @author ryas - * created on 2024-02-18 + * created on 2024-02-20 */ -public class GoodsType extends ExtBaseEntity implements Serializable { +public class ItemType extends ExtBaseEntity implements Serializable { /** * 物品类型编码 */ @Excel(name = "物品类型编码") - private String goodsTypeCd; + private String itemTypeCd; /** * 从属部门ID @@ -33,7 +33,7 @@ public class GoodsType extends ExtBaseEntity implements Serializable { * 物品类型名称 */ @Excel(name = "物品类型名称") - private String goodsTypeName; + private String itemTypeName; /** * 备注1 @@ -64,12 +64,12 @@ public class GoodsType extends ExtBaseEntity implements Serializable { @Serial private static final long serialVersionUID = 1L; - public String getGoodsTypeCd() { - return goodsTypeCd; + public String getItemTypeCd() { + return itemTypeCd; } - public void setGoodsTypeCd(String goodsTypeCd) { - this.goodsTypeCd = goodsTypeCd == null ? null : goodsTypeCd.trim(); + public void setItemTypeCd(String itemTypeCd) { + this.itemTypeCd = itemTypeCd == null ? null : itemTypeCd.trim(); } public Integer getDeptId() { @@ -80,12 +80,12 @@ public class GoodsType extends ExtBaseEntity implements Serializable { this.deptId = deptId; } - public String getGoodsTypeName() { - return goodsTypeName; + public String getItemTypeName() { + return itemTypeName; } - public void setGoodsTypeName(String goodsTypeName) { - this.goodsTypeName = goodsTypeName == null ? null : goodsTypeName.trim(); + public void setItemTypeName(String itemTypeName) { + this.itemTypeName = itemTypeName == null ? null : itemTypeName.trim(); } public String getRemark1() { @@ -134,9 +134,9 @@ public class GoodsType extends ExtBaseEntity implements Serializable { sb.append(getClass().getSimpleName()); sb.append(" ["); sb.append("Hash = ").append(hashCode()); - sb.append(", goodsTypeCd=").append(goodsTypeCd); + sb.append(", itemTypeCd=").append(itemTypeCd); sb.append(", deptId=").append(deptId); - sb.append(", goodsTypeName=").append(goodsTypeName); + sb.append(", itemTypeName=").append(itemTypeName); sb.append(", remark1=").append(remark1); sb.append(", remark2=").append(remark2); sb.append(", remark3=").append(remark3); diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/ItemInfoDynamicSqlSupport.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/ItemInfoDynamicSqlSupport.java new file mode 100644 index 00000000..de808d8e --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/ItemInfoDynamicSqlSupport.java @@ -0,0 +1,395 @@ +package com.ruoyi.wms.mapper; + +import java.math.BigDecimal; +import java.sql.JDBCType; +import java.util.Date; +import org.mybatis.dynamic.sql.AliasableSqlTable; +import org.mybatis.dynamic.sql.SqlColumn; + +public final class ItemInfoDynamicSqlSupport { + public static final ItemInfo itemInfo = new ItemInfo(); + + /** + * 物品代码 + */ + public static final SqlColumn itemCd = itemInfo.itemCd; + + /** + * 从属部门ID + */ + public static final SqlColumn deptId = itemInfo.deptId; + + /** + * 物品名称 + */ + public static final SqlColumn itemName = itemInfo.itemName; + + /** + * 供应商 + */ + public static final SqlColumn supplier = itemInfo.supplier; + + /** + * 筹备提前期 + */ + public static final SqlColumn prepLeadTime = itemInfo.prepLeadTime; + + /** + * 入库提前期 + */ + public static final SqlColumn instockLeadTime = itemInfo.instockLeadTime; + + /** + * 放置期 + */ + public static final SqlColumn restingPeriod = itemInfo.restingPeriod; + + /** + * 出库提前期 + */ + public static final SqlColumn outstockLeadTime = itemInfo.outstockLeadTime; + + /** + * 规格1 + */ + public static final SqlColumn spec1 = itemInfo.spec1; + + /** + * 规格2 + */ + public static final SqlColumn spec2 = itemInfo.spec2; + + /** + * 规格3 + */ + public static final SqlColumn spec3 = itemInfo.spec3; + + /** + * 规格4 + */ + public static final SqlColumn spec4 = itemInfo.spec4; + + /** + * 规格5 + */ + public static final SqlColumn spec5 = itemInfo.spec5; + + /** + * 分类1 + */ + public static final SqlColumn cls1 = itemInfo.cls1; + + /** + * 分类2 + */ + public static final SqlColumn cls2 = itemInfo.cls2; + + /** + * 分类3 + */ + public static final SqlColumn cls3 = itemInfo.cls3; + + /** + * 分类4 + */ + public static final SqlColumn cls4 = itemInfo.cls4; + + /** + * 分类5 + */ + public static final SqlColumn cls5 = itemInfo.cls5; + + /** + * 更新次数 + */ + public static final SqlColumn updateCount = itemInfo.updateCount; + + /** + * 删除标志 + */ + public static final SqlColumn deleteFlag = itemInfo.deleteFlag; + + /** + * 创建者 + */ + public static final SqlColumn createBy = itemInfo.createBy; + + /** + * 创建时间 + */ + public static final SqlColumn createTime = itemInfo.createTime; + + /** + * 更新者 + */ + public static final SqlColumn updateBy = itemInfo.updateBy; + + /** + * 更新时间 + */ + public static final SqlColumn updateTime = itemInfo.updateTime; + + /** + * 备注 + */ + public static final SqlColumn remark = itemInfo.remark; + + /** + * 备注1 + */ + public static final SqlColumn remark1 = itemInfo.remark1; + + /** + * 备注2 + */ + public static final SqlColumn remark2 = itemInfo.remark2; + + /** + * 备注3 + */ + public static final SqlColumn remark3 = itemInfo.remark3; + + /** + * 备注4 + */ + public static final SqlColumn remark4 = itemInfo.remark4; + + /** + * 备注5 + */ + public static final SqlColumn remark5 = itemInfo.remark5; + + /** + * 供货周期 + */ + public static final SqlColumn deliveryPeriod = itemInfo.deliveryPeriod; + + /** + * 默认库位号 + */ + public static final SqlColumn defaultStgBinCd = itemInfo.defaultStgBinCd; + + /** + * 启用标志 + */ + public static final SqlColumn enableFlg = itemInfo.enableFlg; + + /** + * 安全库存量 + */ + public static final SqlColumn safetyStock = itemInfo.safetyStock; + + /** + * 最大库存量 + */ + public static final SqlColumn maxInvQty = itemInfo.maxInvQty; + + /** + * 发起购买的阈值 + */ + public static final SqlColumn purchLimitQty = itemInfo.purchLimitQty; + + /** + * 物品区分 + */ + public static final SqlColumn goodsCls = itemInfo.goodsCls; + + /** + * 批号管理区分(0:不管理, 1:管理) + */ + public static final SqlColumn lotNoMgmtCls = itemInfo.lotNoMgmtCls; + + /** + * 物品类型代码 + */ + public static final SqlColumn itemTypeCd = itemInfo.itemTypeCd; + + /** + * 标准单位代码 + */ + public static final SqlColumn stdUnitCd = itemInfo.stdUnitCd; + + /** + * 包装单位代码 + */ + public static final SqlColumn pkgUnitCd = itemInfo.pkgUnitCd; + + /** + * 出库申请最小数量 + */ + public static final SqlColumn outstockReqMinQty = itemInfo.outstockReqMinQty; + + /** + * 出库单位区分 + */ + public static final SqlColumn outstockUnitCls = itemInfo.outstockUnitCls; + + /** + * 单位净重 + */ + public static final SqlColumn netWeightPerUnit = itemInfo.netWeightPerUnit; + + /** + * 自身体积(M3) + */ + public static final SqlColumn ownVolM3 = itemInfo.ownVolM3; + + /** + * 尺寸(长) + */ + public static final SqlColumn sizeD = itemInfo.sizeD; + + /** + * 尺寸(宽) + */ + public static final SqlColumn sizeW = itemInfo.sizeW; + + /** + * 尺寸(高) + */ + public static final SqlColumn sizeH = itemInfo.sizeH; + + /** + * 包装要求描述 + */ + public static final SqlColumn pkgRqmtDesc = itemInfo.pkgRqmtDesc; + + /** + * 码放要求描述 + */ + public static final SqlColumn stackingRqmtDesc = itemInfo.stackingRqmtDesc; + + /** + * 储存要求描述 + */ + public static final SqlColumn stgRqmtDesc = itemInfo.stgRqmtDesc; + + /** + * 生产商 + */ + public static final SqlColumn manufacturer = itemInfo.manufacturer; + + /** + * 图片ID + */ + public static final SqlColumn pictureId = itemInfo.pictureId; + + /** + * 图片URL + */ + public static final SqlColumn pictureUrl = itemInfo.pictureUrl; + + public static final class ItemInfo extends AliasableSqlTable { + public final SqlColumn itemCd = column("ITEM_CD", JDBCType.VARCHAR); + + public final SqlColumn deptId = column("DEPT_ID", JDBCType.INTEGER); + + public final SqlColumn itemName = column("ITEM_NAME", JDBCType.VARCHAR); + + public final SqlColumn supplier = column("SUPPLIER", JDBCType.VARCHAR); + + public final SqlColumn prepLeadTime = column("PREP_LEAD_TIME", JDBCType.DECIMAL); + + public final SqlColumn instockLeadTime = column("INSTOCK_LEAD_TIME", JDBCType.DECIMAL); + + public final SqlColumn restingPeriod = column("RESTING_PERIOD", JDBCType.DECIMAL); + + public final SqlColumn outstockLeadTime = column("OUTSTOCK_LEAD_TIME", JDBCType.DECIMAL); + + public final SqlColumn spec1 = column("SPEC_1", JDBCType.VARCHAR); + + public final SqlColumn spec2 = column("SPEC_2", JDBCType.VARCHAR); + + public final SqlColumn spec3 = column("SPEC_3", JDBCType.VARCHAR); + + public final SqlColumn spec4 = column("SPEC_4", JDBCType.VARCHAR); + + public final SqlColumn spec5 = column("SPEC_5", JDBCType.VARCHAR); + + public final SqlColumn cls1 = column("CLS_1", JDBCType.VARCHAR); + + public final SqlColumn cls2 = column("CLS_2", JDBCType.VARCHAR); + + public final SqlColumn cls3 = column("CLS_3", JDBCType.VARCHAR); + + public final SqlColumn cls4 = column("CLS_4", JDBCType.VARCHAR); + + public final SqlColumn cls5 = column("CLS_5", JDBCType.VARCHAR); + + public final SqlColumn updateCount = column("UPDATE_COUNT", JDBCType.INTEGER); + + public final SqlColumn deleteFlag = column("DELETE_FLAG", JDBCType.INTEGER); + + public final SqlColumn createBy = column("create_by", JDBCType.VARCHAR); + + public final SqlColumn createTime = column("create_time", JDBCType.TIMESTAMP); + + public final SqlColumn updateBy = column("update_by", JDBCType.VARCHAR); + + public final SqlColumn updateTime = column("update_time", JDBCType.TIMESTAMP); + + public final SqlColumn remark = column("remark", JDBCType.VARCHAR); + + public final SqlColumn remark1 = column("REMARK_1", JDBCType.VARCHAR); + + public final SqlColumn remark2 = column("REMARK_2", JDBCType.VARCHAR); + + public final SqlColumn remark3 = column("REMARK_3", JDBCType.VARCHAR); + + public final SqlColumn remark4 = column("REMARK_4", JDBCType.VARCHAR); + + public final SqlColumn remark5 = column("REMARK_5", JDBCType.VARCHAR); + + public final SqlColumn deliveryPeriod = column("DELIVERY_PERIOD", JDBCType.VARCHAR); + + public final SqlColumn defaultStgBinCd = column("DEFAULT_STG_BIN_CD", JDBCType.VARCHAR); + + public final SqlColumn enableFlg = column("ENABLE_FLG", JDBCType.INTEGER); + + public final SqlColumn safetyStock = column("SAFETY_STOCK", JDBCType.DECIMAL); + + public final SqlColumn maxInvQty = column("MAX_INV_QTY", JDBCType.DECIMAL); + + public final SqlColumn purchLimitQty = column("PURCH_LIMIT_QTY", JDBCType.DECIMAL); + + public final SqlColumn goodsCls = column("GOODS_CLS", JDBCType.VARCHAR); + + public final SqlColumn lotNoMgmtCls = column("LOT_NO_MGMT_CLS", JDBCType.INTEGER); + + public final SqlColumn itemTypeCd = column("ITEM_TYPE_CD", JDBCType.VARCHAR); + + public final SqlColumn stdUnitCd = column("STD_UNIT_CD", JDBCType.VARCHAR); + + public final SqlColumn pkgUnitCd = column("PKG_UNIT_CD", JDBCType.VARCHAR); + + public final SqlColumn outstockReqMinQty = column("OUTSTOCK_REQ_MIN_QTY", JDBCType.DECIMAL); + + public final SqlColumn outstockUnitCls = column("OUTSTOCK_UNIT_CLS", JDBCType.VARCHAR); + + public final SqlColumn netWeightPerUnit = column("NET_WEIGHT_PER_UNIT", JDBCType.DECIMAL); + + public final SqlColumn ownVolM3 = column("OWN_VOL_M3", JDBCType.DECIMAL); + + public final SqlColumn sizeD = column("SIZE_D", JDBCType.DECIMAL); + + public final SqlColumn sizeW = column("SIZE_W", JDBCType.DECIMAL); + + public final SqlColumn sizeH = column("SIZE_H", JDBCType.DECIMAL); + + public final SqlColumn pkgRqmtDesc = column("PKG_RQMT_DESC", JDBCType.VARCHAR); + + public final SqlColumn stackingRqmtDesc = column("STACKING_RQMT_DESC", JDBCType.VARCHAR); + + public final SqlColumn stgRqmtDesc = column("STG_RQMT_DESC", JDBCType.VARCHAR); + + public final SqlColumn manufacturer = column("MANUFACTURER", JDBCType.VARCHAR); + + public final SqlColumn pictureId = column("PICTURE_ID", JDBCType.VARCHAR); + + public final SqlColumn pictureUrl = column("PICTURE_URL", JDBCType.VARCHAR); + + public ItemInfo() { + super("WMS_M_ITEM_INFO", ItemInfo::new); + } + } +} \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/ItemInfoMapper.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/ItemInfoMapper.java new file mode 100644 index 00000000..e2d8b061 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/ItemInfoMapper.java @@ -0,0 +1,550 @@ +package com.ruoyi.wms.mapper; + +import static com.ruoyi.wms.mapper.ItemInfoDynamicSqlSupport.*; +import static org.mybatis.dynamic.sql.SqlBuilder.isEqualTo; + +import com.ruoyi.common.security.utils.SecurityUtilsExt; +import com.ruoyi.wms.domain.ItemInfo; +import java.util.Collection; +import java.util.List; +import java.util.Optional; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Result; +import org.apache.ibatis.annotations.ResultMap; +import org.apache.ibatis.annotations.Results; +import org.apache.ibatis.annotations.SelectProvider; +import org.apache.ibatis.type.JdbcType; +import org.mybatis.dynamic.sql.BasicColumn; +import org.mybatis.dynamic.sql.delete.DeleteDSLCompleter; +import org.mybatis.dynamic.sql.select.CountDSLCompleter; +import org.mybatis.dynamic.sql.select.SelectDSLCompleter; +import org.mybatis.dynamic.sql.select.render.SelectStatementProvider; +import org.mybatis.dynamic.sql.update.UpdateDSL; +import org.mybatis.dynamic.sql.update.UpdateDSLCompleter; +import org.mybatis.dynamic.sql.update.UpdateModel; +import org.mybatis.dynamic.sql.util.SqlProviderAdapter; +import org.mybatis.dynamic.sql.util.mybatis3.CommonCountMapper; +import org.mybatis.dynamic.sql.util.mybatis3.CommonDeleteMapper; +import org.mybatis.dynamic.sql.util.mybatis3.CommonInsertMapper; +import org.mybatis.dynamic.sql.util.mybatis3.CommonUpdateMapper; +import org.mybatis.dynamic.sql.util.mybatis3.MyBatis3Utils; + +@Mapper +public interface ItemInfoMapper extends CommonCountMapper, CommonDeleteMapper, CommonInsertMapper, CommonUpdateMapper { + BasicColumn[] selectList = BasicColumn.columnList(itemCd, deptId, itemName, supplier, prepLeadTime, instockLeadTime, restingPeriod, outstockLeadTime, spec1, spec2, spec3, spec4, spec5, cls1, cls2, cls3, cls4, cls5, updateCount, deleteFlag, createBy, createTime, updateBy, updateTime, remark, remark1, remark2, remark3, remark4, remark5, deliveryPeriod, defaultStgBinCd, enableFlg, safetyStock, maxInvQty, purchLimitQty, goodsCls, lotNoMgmtCls, itemTypeCd, stdUnitCd, pkgUnitCd, outstockReqMinQty, outstockUnitCls, netWeightPerUnit, ownVolM3, sizeD, sizeW, sizeH, pkgRqmtDesc, stackingRqmtDesc, stgRqmtDesc, manufacturer, pictureId, pictureUrl); + + @SelectProvider(type=SqlProviderAdapter.class, method="select") + @Results(id="ItemInfoResult", value = { + @Result(column="ITEM_CD", property="itemCd", jdbcType=JdbcType.VARCHAR, id=true), + @Result(column="DEPT_ID", property="deptId", jdbcType=JdbcType.INTEGER), + @Result(column="ITEM_NAME", property="itemName", jdbcType=JdbcType.VARCHAR), + @Result(column="SUPPLIER", property="supplier", jdbcType=JdbcType.VARCHAR), + @Result(column="PREP_LEAD_TIME", property="prepLeadTime", jdbcType=JdbcType.DECIMAL), + @Result(column="INSTOCK_LEAD_TIME", property="instockLeadTime", jdbcType=JdbcType.DECIMAL), + @Result(column="RESTING_PERIOD", property="restingPeriod", jdbcType=JdbcType.DECIMAL), + @Result(column="OUTSTOCK_LEAD_TIME", property="outstockLeadTime", jdbcType=JdbcType.DECIMAL), + @Result(column="SPEC_1", property="spec1", jdbcType=JdbcType.VARCHAR), + @Result(column="SPEC_2", property="spec2", jdbcType=JdbcType.VARCHAR), + @Result(column="SPEC_3", property="spec3", jdbcType=JdbcType.VARCHAR), + @Result(column="SPEC_4", property="spec4", jdbcType=JdbcType.VARCHAR), + @Result(column="SPEC_5", property="spec5", jdbcType=JdbcType.VARCHAR), + @Result(column="CLS_1", property="cls1", jdbcType=JdbcType.VARCHAR), + @Result(column="CLS_2", property="cls2", jdbcType=JdbcType.VARCHAR), + @Result(column="CLS_3", property="cls3", jdbcType=JdbcType.VARCHAR), + @Result(column="CLS_4", property="cls4", jdbcType=JdbcType.VARCHAR), + @Result(column="CLS_5", property="cls5", jdbcType=JdbcType.VARCHAR), + @Result(column="UPDATE_COUNT", property="updateCount", jdbcType=JdbcType.INTEGER), + @Result(column="DELETE_FLAG", property="deleteFlag", jdbcType=JdbcType.INTEGER), + @Result(column="create_by", property="createBy", jdbcType=JdbcType.VARCHAR), + @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP), + @Result(column="update_by", property="updateBy", jdbcType=JdbcType.VARCHAR), + @Result(column="update_time", property="updateTime", jdbcType=JdbcType.TIMESTAMP), + @Result(column="remark", property="remark", jdbcType=JdbcType.VARCHAR), + @Result(column="REMARK_1", property="remark1", jdbcType=JdbcType.VARCHAR), + @Result(column="REMARK_2", property="remark2", jdbcType=JdbcType.VARCHAR), + @Result(column="REMARK_3", property="remark3", jdbcType=JdbcType.VARCHAR), + @Result(column="REMARK_4", property="remark4", jdbcType=JdbcType.VARCHAR), + @Result(column="REMARK_5", property="remark5", jdbcType=JdbcType.VARCHAR), + @Result(column="DELIVERY_PERIOD", property="deliveryPeriod", jdbcType=JdbcType.VARCHAR), + @Result(column="DEFAULT_STG_BIN_CD", property="defaultStgBinCd", jdbcType=JdbcType.VARCHAR), + @Result(column="ENABLE_FLG", property="enableFlg", jdbcType=JdbcType.INTEGER), + @Result(column="SAFETY_STOCK", property="safetyStock", jdbcType=JdbcType.DECIMAL), + @Result(column="MAX_INV_QTY", property="maxInvQty", jdbcType=JdbcType.DECIMAL), + @Result(column="PURCH_LIMIT_QTY", property="purchLimitQty", jdbcType=JdbcType.DECIMAL), + @Result(column="GOODS_CLS", property="goodsCls", jdbcType=JdbcType.VARCHAR), + @Result(column="LOT_NO_MGMT_CLS", property="lotNoMgmtCls", jdbcType=JdbcType.INTEGER), + @Result(column="ITEM_TYPE_CD", property="itemTypeCd", jdbcType=JdbcType.VARCHAR), + @Result(column="STD_UNIT_CD", property="stdUnitCd", jdbcType=JdbcType.VARCHAR), + @Result(column="PKG_UNIT_CD", property="pkgUnitCd", jdbcType=JdbcType.VARCHAR), + @Result(column="OUTSTOCK_REQ_MIN_QTY", property="outstockReqMinQty", jdbcType=JdbcType.DECIMAL), + @Result(column="OUTSTOCK_UNIT_CLS", property="outstockUnitCls", jdbcType=JdbcType.VARCHAR), + @Result(column="NET_WEIGHT_PER_UNIT", property="netWeightPerUnit", jdbcType=JdbcType.DECIMAL), + @Result(column="OWN_VOL_M3", property="ownVolM3", jdbcType=JdbcType.DECIMAL), + @Result(column="SIZE_D", property="sizeD", jdbcType=JdbcType.DECIMAL), + @Result(column="SIZE_W", property="sizeW", jdbcType=JdbcType.DECIMAL), + @Result(column="SIZE_H", property="sizeH", jdbcType=JdbcType.DECIMAL), + @Result(column="PKG_RQMT_DESC", property="pkgRqmtDesc", jdbcType=JdbcType.VARCHAR), + @Result(column="STACKING_RQMT_DESC", property="stackingRqmtDesc", jdbcType=JdbcType.VARCHAR), + @Result(column="STG_RQMT_DESC", property="stgRqmtDesc", jdbcType=JdbcType.VARCHAR), + @Result(column="MANUFACTURER", property="manufacturer", jdbcType=JdbcType.VARCHAR), + @Result(column="PICTURE_ID", property="pictureId", jdbcType=JdbcType.VARCHAR), + @Result(column="PICTURE_URL", property="pictureUrl", jdbcType=JdbcType.VARCHAR) + }) + List selectMany(SelectStatementProvider selectStatement); + + @SelectProvider(type=SqlProviderAdapter.class, method="select") + @ResultMap("ItemInfoResult") + Optional selectOne(SelectStatementProvider selectStatement); + + default long count(CountDSLCompleter completer) { + return MyBatis3Utils.countFrom(this::count, itemInfo, completer); + } + + default int delete(DeleteDSLCompleter completer) { + return MyBatis3Utils.deleteFrom(this::delete, itemInfo, completer); + } + + default int deleteByPrimaryKey(String itemCd_) { + return delete(c -> + c.where(itemCd, isEqualTo(itemCd_)) + ); + } + + default int insert(ItemInfo row) { + row.setCommonForInsert(SecurityUtilsExt.getUserIdStr()); + return MyBatis3Utils.insert(this::insert, row, itemInfo, c -> + c.map(itemCd).toProperty("itemCd") + .map(deptId).toProperty("deptId") + .map(itemName).toProperty("itemName") + .map(supplier).toProperty("supplier") + .map(prepLeadTime).toProperty("prepLeadTime") + .map(instockLeadTime).toProperty("instockLeadTime") + .map(restingPeriod).toProperty("restingPeriod") + .map(outstockLeadTime).toProperty("outstockLeadTime") + .map(spec1).toProperty("spec1") + .map(spec2).toProperty("spec2") + .map(spec3).toProperty("spec3") + .map(spec4).toProperty("spec4") + .map(spec5).toProperty("spec5") + .map(cls1).toProperty("cls1") + .map(cls2).toProperty("cls2") + .map(cls3).toProperty("cls3") + .map(cls4).toProperty("cls4") + .map(cls5).toProperty("cls5") + .map(updateCount).toProperty("updateCount") + .map(deleteFlag).toProperty("deleteFlag") + .map(createBy).toProperty("createBy") + .map(createTime).toProperty("createTime") + .map(updateBy).toProperty("updateBy") + .map(updateTime).toProperty("updateTime") + .map(remark).toProperty("remark") + .map(remark1).toProperty("remark1") + .map(remark2).toProperty("remark2") + .map(remark3).toProperty("remark3") + .map(remark4).toProperty("remark4") + .map(remark5).toProperty("remark5") + .map(deliveryPeriod).toProperty("deliveryPeriod") + .map(defaultStgBinCd).toProperty("defaultStgBinCd") + .map(enableFlg).toProperty("enableFlg") + .map(safetyStock).toProperty("safetyStock") + .map(maxInvQty).toProperty("maxInvQty") + .map(purchLimitQty).toProperty("purchLimitQty") + .map(goodsCls).toProperty("goodsCls") + .map(lotNoMgmtCls).toProperty("lotNoMgmtCls") + .map(itemTypeCd).toProperty("itemTypeCd") + .map(stdUnitCd).toProperty("stdUnitCd") + .map(pkgUnitCd).toProperty("pkgUnitCd") + .map(outstockReqMinQty).toProperty("outstockReqMinQty") + .map(outstockUnitCls).toProperty("outstockUnitCls") + .map(netWeightPerUnit).toProperty("netWeightPerUnit") + .map(ownVolM3).toProperty("ownVolM3") + .map(sizeD).toProperty("sizeD") + .map(sizeW).toProperty("sizeW") + .map(sizeH).toProperty("sizeH") + .map(pkgRqmtDesc).toProperty("pkgRqmtDesc") + .map(stackingRqmtDesc).toProperty("stackingRqmtDesc") + .map(stgRqmtDesc).toProperty("stgRqmtDesc") + .map(manufacturer).toProperty("manufacturer") + .map(pictureId).toProperty("pictureId") + .map(pictureUrl).toProperty("pictureUrl") + ); + } + + default int insertMultiple(Collection records) { + for (ItemInfo row : records) { + row.setCommonForInsert(SecurityUtilsExt.getUserIdStr()); + } + return MyBatis3Utils.insertMultiple(this::insertMultiple, records, itemInfo, c -> + c.map(itemCd).toProperty("itemCd") + .map(deptId).toProperty("deptId") + .map(itemName).toProperty("itemName") + .map(supplier).toProperty("supplier") + .map(prepLeadTime).toProperty("prepLeadTime") + .map(instockLeadTime).toProperty("instockLeadTime") + .map(restingPeriod).toProperty("restingPeriod") + .map(outstockLeadTime).toProperty("outstockLeadTime") + .map(spec1).toProperty("spec1") + .map(spec2).toProperty("spec2") + .map(spec3).toProperty("spec3") + .map(spec4).toProperty("spec4") + .map(spec5).toProperty("spec5") + .map(cls1).toProperty("cls1") + .map(cls2).toProperty("cls2") + .map(cls3).toProperty("cls3") + .map(cls4).toProperty("cls4") + .map(cls5).toProperty("cls5") + .map(updateCount).toProperty("updateCount") + .map(deleteFlag).toProperty("deleteFlag") + .map(createBy).toProperty("createBy") + .map(createTime).toProperty("createTime") + .map(updateBy).toProperty("updateBy") + .map(updateTime).toProperty("updateTime") + .map(remark).toProperty("remark") + .map(remark1).toProperty("remark1") + .map(remark2).toProperty("remark2") + .map(remark3).toProperty("remark3") + .map(remark4).toProperty("remark4") + .map(remark5).toProperty("remark5") + .map(deliveryPeriod).toProperty("deliveryPeriod") + .map(defaultStgBinCd).toProperty("defaultStgBinCd") + .map(enableFlg).toProperty("enableFlg") + .map(safetyStock).toProperty("safetyStock") + .map(maxInvQty).toProperty("maxInvQty") + .map(purchLimitQty).toProperty("purchLimitQty") + .map(goodsCls).toProperty("goodsCls") + .map(lotNoMgmtCls).toProperty("lotNoMgmtCls") + .map(itemTypeCd).toProperty("itemTypeCd") + .map(stdUnitCd).toProperty("stdUnitCd") + .map(pkgUnitCd).toProperty("pkgUnitCd") + .map(outstockReqMinQty).toProperty("outstockReqMinQty") + .map(outstockUnitCls).toProperty("outstockUnitCls") + .map(netWeightPerUnit).toProperty("netWeightPerUnit") + .map(ownVolM3).toProperty("ownVolM3") + .map(sizeD).toProperty("sizeD") + .map(sizeW).toProperty("sizeW") + .map(sizeH).toProperty("sizeH") + .map(pkgRqmtDesc).toProperty("pkgRqmtDesc") + .map(stackingRqmtDesc).toProperty("stackingRqmtDesc") + .map(stgRqmtDesc).toProperty("stgRqmtDesc") + .map(manufacturer).toProperty("manufacturer") + .map(pictureId).toProperty("pictureId") + .map(pictureUrl).toProperty("pictureUrl") + ); + } + + default int insertSelective(ItemInfo row) { + row.setCommonForInsert(SecurityUtilsExt.getUserIdStr()); + return MyBatis3Utils.insert(this::insert, row, itemInfo, c -> + c.map(itemCd).toPropertyWhenPresent("itemCd", row::getItemCd) + .map(deptId).toPropertyWhenPresent("deptId", row::getDeptId) + .map(itemName).toPropertyWhenPresent("itemName", row::getItemName) + .map(supplier).toPropertyWhenPresent("supplier", row::getSupplier) + .map(prepLeadTime).toPropertyWhenPresent("prepLeadTime", row::getPrepLeadTime) + .map(instockLeadTime).toPropertyWhenPresent("instockLeadTime", row::getInstockLeadTime) + .map(restingPeriod).toPropertyWhenPresent("restingPeriod", row::getRestingPeriod) + .map(outstockLeadTime).toPropertyWhenPresent("outstockLeadTime", row::getOutstockLeadTime) + .map(spec1).toPropertyWhenPresent("spec1", row::getSpec1) + .map(spec2).toPropertyWhenPresent("spec2", row::getSpec2) + .map(spec3).toPropertyWhenPresent("spec3", row::getSpec3) + .map(spec4).toPropertyWhenPresent("spec4", row::getSpec4) + .map(spec5).toPropertyWhenPresent("spec5", row::getSpec5) + .map(cls1).toPropertyWhenPresent("cls1", row::getCls1) + .map(cls2).toPropertyWhenPresent("cls2", row::getCls2) + .map(cls3).toPropertyWhenPresent("cls3", row::getCls3) + .map(cls4).toPropertyWhenPresent("cls4", row::getCls4) + .map(cls5).toPropertyWhenPresent("cls5", row::getCls5) + .map(updateCount).toPropertyWhenPresent("updateCount", row::getUpdateCount) + .map(deleteFlag).toPropertyWhenPresent("deleteFlag", row::getDeleteFlag) + .map(createBy).toPropertyWhenPresent("createBy", row::getCreateBy) + .map(createTime).toPropertyWhenPresent("createTime", row::getCreateTime) + .map(updateBy).toPropertyWhenPresent("updateBy", row::getUpdateBy) + .map(updateTime).toPropertyWhenPresent("updateTime", row::getUpdateTime) + .map(remark).toPropertyWhenPresent("remark", row::getRemark) + .map(remark1).toPropertyWhenPresent("remark1", row::getRemark1) + .map(remark2).toPropertyWhenPresent("remark2", row::getRemark2) + .map(remark3).toPropertyWhenPresent("remark3", row::getRemark3) + .map(remark4).toPropertyWhenPresent("remark4", row::getRemark4) + .map(remark5).toPropertyWhenPresent("remark5", row::getRemark5) + .map(deliveryPeriod).toPropertyWhenPresent("deliveryPeriod", row::getDeliveryPeriod) + .map(defaultStgBinCd).toPropertyWhenPresent("defaultStgBinCd", row::getDefaultStgBinCd) + .map(enableFlg).toPropertyWhenPresent("enableFlg", row::getEnableFlg) + .map(safetyStock).toPropertyWhenPresent("safetyStock", row::getSafetyStock) + .map(maxInvQty).toPropertyWhenPresent("maxInvQty", row::getMaxInvQty) + .map(purchLimitQty).toPropertyWhenPresent("purchLimitQty", row::getPurchLimitQty) + .map(goodsCls).toPropertyWhenPresent("goodsCls", row::getGoodsCls) + .map(lotNoMgmtCls).toPropertyWhenPresent("lotNoMgmtCls", row::getLotNoMgmtCls) + .map(itemTypeCd).toPropertyWhenPresent("itemTypeCd", row::getItemTypeCd) + .map(stdUnitCd).toPropertyWhenPresent("stdUnitCd", row::getStdUnitCd) + .map(pkgUnitCd).toPropertyWhenPresent("pkgUnitCd", row::getPkgUnitCd) + .map(outstockReqMinQty).toPropertyWhenPresent("outstockReqMinQty", row::getOutstockReqMinQty) + .map(outstockUnitCls).toPropertyWhenPresent("outstockUnitCls", row::getOutstockUnitCls) + .map(netWeightPerUnit).toPropertyWhenPresent("netWeightPerUnit", row::getNetWeightPerUnit) + .map(ownVolM3).toPropertyWhenPresent("ownVolM3", row::getOwnVolM3) + .map(sizeD).toPropertyWhenPresent("sizeD", row::getSizeD) + .map(sizeW).toPropertyWhenPresent("sizeW", row::getSizeW) + .map(sizeH).toPropertyWhenPresent("sizeH", row::getSizeH) + .map(pkgRqmtDesc).toPropertyWhenPresent("pkgRqmtDesc", row::getPkgRqmtDesc) + .map(stackingRqmtDesc).toPropertyWhenPresent("stackingRqmtDesc", row::getStackingRqmtDesc) + .map(stgRqmtDesc).toPropertyWhenPresent("stgRqmtDesc", row::getStgRqmtDesc) + .map(manufacturer).toPropertyWhenPresent("manufacturer", row::getManufacturer) + .map(pictureId).toPropertyWhenPresent("pictureId", row::getPictureId) + .map(pictureUrl).toPropertyWhenPresent("pictureUrl", row::getPictureUrl) + ); + } + + default Optional selectOne(SelectDSLCompleter completer) { + return MyBatis3Utils.selectOne(this::selectOne, selectList, itemInfo, completer); + } + + default List select(SelectDSLCompleter completer) { + return MyBatis3Utils.selectList(this::selectMany, selectList, itemInfo, completer); + } + + default List selectDistinct(SelectDSLCompleter completer) { + return MyBatis3Utils.selectDistinct(this::selectMany, selectList, itemInfo, completer); + } + + default Optional selectByPrimaryKey(String itemCd_) { + return selectOne(c -> + c.where(itemCd, isEqualTo(itemCd_)) + ); + } + + default int update(UpdateDSLCompleter completer) { + return MyBatis3Utils.update(this::update, itemInfo, completer); + } + + static UpdateDSL updateAllColumns(ItemInfo row, UpdateDSL dsl) { + return dsl.set(itemCd).equalTo(row::getItemCd) + .set(deptId).equalTo(row::getDeptId) + .set(itemName).equalTo(row::getItemName) + .set(supplier).equalTo(row::getSupplier) + .set(prepLeadTime).equalTo(row::getPrepLeadTime) + .set(instockLeadTime).equalTo(row::getInstockLeadTime) + .set(restingPeriod).equalTo(row::getRestingPeriod) + .set(outstockLeadTime).equalTo(row::getOutstockLeadTime) + .set(spec1).equalTo(row::getSpec1) + .set(spec2).equalTo(row::getSpec2) + .set(spec3).equalTo(row::getSpec3) + .set(spec4).equalTo(row::getSpec4) + .set(spec5).equalTo(row::getSpec5) + .set(cls1).equalTo(row::getCls1) + .set(cls2).equalTo(row::getCls2) + .set(cls3).equalTo(row::getCls3) + .set(cls4).equalTo(row::getCls4) + .set(cls5).equalTo(row::getCls5) + .set(updateCount).equalTo(row::getUpdateCount) + .set(deleteFlag).equalTo(row::getDeleteFlag) + .set(createBy).equalTo(row::getCreateBy) + .set(createTime).equalTo(row::getCreateTime) + .set(updateBy).equalTo(row::getUpdateBy) + .set(updateTime).equalTo(row::getUpdateTime) + .set(remark).equalTo(row::getRemark) + .set(remark1).equalTo(row::getRemark1) + .set(remark2).equalTo(row::getRemark2) + .set(remark3).equalTo(row::getRemark3) + .set(remark4).equalTo(row::getRemark4) + .set(remark5).equalTo(row::getRemark5) + .set(deliveryPeriod).equalTo(row::getDeliveryPeriod) + .set(defaultStgBinCd).equalTo(row::getDefaultStgBinCd) + .set(enableFlg).equalTo(row::getEnableFlg) + .set(safetyStock).equalTo(row::getSafetyStock) + .set(maxInvQty).equalTo(row::getMaxInvQty) + .set(purchLimitQty).equalTo(row::getPurchLimitQty) + .set(goodsCls).equalTo(row::getGoodsCls) + .set(lotNoMgmtCls).equalTo(row::getLotNoMgmtCls) + .set(itemTypeCd).equalTo(row::getItemTypeCd) + .set(stdUnitCd).equalTo(row::getStdUnitCd) + .set(pkgUnitCd).equalTo(row::getPkgUnitCd) + .set(outstockReqMinQty).equalTo(row::getOutstockReqMinQty) + .set(outstockUnitCls).equalTo(row::getOutstockUnitCls) + .set(netWeightPerUnit).equalTo(row::getNetWeightPerUnit) + .set(ownVolM3).equalTo(row::getOwnVolM3) + .set(sizeD).equalTo(row::getSizeD) + .set(sizeW).equalTo(row::getSizeW) + .set(sizeH).equalTo(row::getSizeH) + .set(pkgRqmtDesc).equalTo(row::getPkgRqmtDesc) + .set(stackingRqmtDesc).equalTo(row::getStackingRqmtDesc) + .set(stgRqmtDesc).equalTo(row::getStgRqmtDesc) + .set(manufacturer).equalTo(row::getManufacturer) + .set(pictureId).equalTo(row::getPictureId) + .set(pictureUrl).equalTo(row::getPictureUrl); + } + + static UpdateDSL updateSelectiveColumns(ItemInfo row, UpdateDSL dsl) { + row.setCommonForUpdate(SecurityUtilsExt.getUserIdStr()); + return dsl.set(itemCd).equalToWhenPresent(row::getItemCd) + .set(deptId).equalToWhenPresent(row::getDeptId) + .set(itemName).equalToWhenPresent(row::getItemName) + .set(supplier).equalToWhenPresent(row::getSupplier) + .set(prepLeadTime).equalToWhenPresent(row::getPrepLeadTime) + .set(instockLeadTime).equalToWhenPresent(row::getInstockLeadTime) + .set(restingPeriod).equalToWhenPresent(row::getRestingPeriod) + .set(outstockLeadTime).equalToWhenPresent(row::getOutstockLeadTime) + .set(spec1).equalToWhenPresent(row::getSpec1) + .set(spec2).equalToWhenPresent(row::getSpec2) + .set(spec3).equalToWhenPresent(row::getSpec3) + .set(spec4).equalToWhenPresent(row::getSpec4) + .set(spec5).equalToWhenPresent(row::getSpec5) + .set(cls1).equalToWhenPresent(row::getCls1) + .set(cls2).equalToWhenPresent(row::getCls2) + .set(cls3).equalToWhenPresent(row::getCls3) + .set(cls4).equalToWhenPresent(row::getCls4) + .set(cls5).equalToWhenPresent(row::getCls5) + .set(updateCount).equalToWhenPresent(row::getUpdateCount) + .set(deleteFlag).equalToWhenPresent(row::getDeleteFlag) + .set(createBy).equalToWhenPresent(row::getCreateBy) + .set(createTime).equalToWhenPresent(row::getCreateTime) + .set(updateBy).equalToWhenPresent(row::getUpdateBy) + .set(updateTime).equalToWhenPresent(row::getUpdateTime) + .set(remark).equalToWhenPresent(row::getRemark) + .set(remark1).equalToWhenPresent(row::getRemark1) + .set(remark2).equalToWhenPresent(row::getRemark2) + .set(remark3).equalToWhenPresent(row::getRemark3) + .set(remark4).equalToWhenPresent(row::getRemark4) + .set(remark5).equalToWhenPresent(row::getRemark5) + .set(deliveryPeriod).equalToWhenPresent(row::getDeliveryPeriod) + .set(defaultStgBinCd).equalToWhenPresent(row::getDefaultStgBinCd) + .set(enableFlg).equalToWhenPresent(row::getEnableFlg) + .set(safetyStock).equalToWhenPresent(row::getSafetyStock) + .set(maxInvQty).equalToWhenPresent(row::getMaxInvQty) + .set(purchLimitQty).equalToWhenPresent(row::getPurchLimitQty) + .set(goodsCls).equalToWhenPresent(row::getGoodsCls) + .set(lotNoMgmtCls).equalToWhenPresent(row::getLotNoMgmtCls) + .set(itemTypeCd).equalToWhenPresent(row::getItemTypeCd) + .set(stdUnitCd).equalToWhenPresent(row::getStdUnitCd) + .set(pkgUnitCd).equalToWhenPresent(row::getPkgUnitCd) + .set(outstockReqMinQty).equalToWhenPresent(row::getOutstockReqMinQty) + .set(outstockUnitCls).equalToWhenPresent(row::getOutstockUnitCls) + .set(netWeightPerUnit).equalToWhenPresent(row::getNetWeightPerUnit) + .set(ownVolM3).equalToWhenPresent(row::getOwnVolM3) + .set(sizeD).equalToWhenPresent(row::getSizeD) + .set(sizeW).equalToWhenPresent(row::getSizeW) + .set(sizeH).equalToWhenPresent(row::getSizeH) + .set(pkgRqmtDesc).equalToWhenPresent(row::getPkgRqmtDesc) + .set(stackingRqmtDesc).equalToWhenPresent(row::getStackingRqmtDesc) + .set(stgRqmtDesc).equalToWhenPresent(row::getStgRqmtDesc) + .set(manufacturer).equalToWhenPresent(row::getManufacturer) + .set(pictureId).equalToWhenPresent(row::getPictureId) + .set(pictureUrl).equalToWhenPresent(row::getPictureUrl); + } + + default int updateByPrimaryKey(ItemInfo row) { + return update(c -> + c.set(deptId).equalTo(row::getDeptId) + .set(itemName).equalTo(row::getItemName) + .set(supplier).equalTo(row::getSupplier) + .set(prepLeadTime).equalTo(row::getPrepLeadTime) + .set(instockLeadTime).equalTo(row::getInstockLeadTime) + .set(restingPeriod).equalTo(row::getRestingPeriod) + .set(outstockLeadTime).equalTo(row::getOutstockLeadTime) + .set(spec1).equalTo(row::getSpec1) + .set(spec2).equalTo(row::getSpec2) + .set(spec3).equalTo(row::getSpec3) + .set(spec4).equalTo(row::getSpec4) + .set(spec5).equalTo(row::getSpec5) + .set(cls1).equalTo(row::getCls1) + .set(cls2).equalTo(row::getCls2) + .set(cls3).equalTo(row::getCls3) + .set(cls4).equalTo(row::getCls4) + .set(cls5).equalTo(row::getCls5) + .set(updateCount).equalTo(row::getUpdateCount) + .set(deleteFlag).equalTo(row::getDeleteFlag) + .set(createBy).equalTo(row::getCreateBy) + .set(createTime).equalTo(row::getCreateTime) + .set(updateBy).equalTo(row::getUpdateBy) + .set(updateTime).equalTo(row::getUpdateTime) + .set(remark).equalTo(row::getRemark) + .set(remark1).equalTo(row::getRemark1) + .set(remark2).equalTo(row::getRemark2) + .set(remark3).equalTo(row::getRemark3) + .set(remark4).equalTo(row::getRemark4) + .set(remark5).equalTo(row::getRemark5) + .set(deliveryPeriod).equalTo(row::getDeliveryPeriod) + .set(defaultStgBinCd).equalTo(row::getDefaultStgBinCd) + .set(enableFlg).equalTo(row::getEnableFlg) + .set(safetyStock).equalTo(row::getSafetyStock) + .set(maxInvQty).equalTo(row::getMaxInvQty) + .set(purchLimitQty).equalTo(row::getPurchLimitQty) + .set(goodsCls).equalTo(row::getGoodsCls) + .set(lotNoMgmtCls).equalTo(row::getLotNoMgmtCls) + .set(itemTypeCd).equalTo(row::getItemTypeCd) + .set(stdUnitCd).equalTo(row::getStdUnitCd) + .set(pkgUnitCd).equalTo(row::getPkgUnitCd) + .set(outstockReqMinQty).equalTo(row::getOutstockReqMinQty) + .set(outstockUnitCls).equalTo(row::getOutstockUnitCls) + .set(netWeightPerUnit).equalTo(row::getNetWeightPerUnit) + .set(ownVolM3).equalTo(row::getOwnVolM3) + .set(sizeD).equalTo(row::getSizeD) + .set(sizeW).equalTo(row::getSizeW) + .set(sizeH).equalTo(row::getSizeH) + .set(pkgRqmtDesc).equalTo(row::getPkgRqmtDesc) + .set(stackingRqmtDesc).equalTo(row::getStackingRqmtDesc) + .set(stgRqmtDesc).equalTo(row::getStgRqmtDesc) + .set(manufacturer).equalTo(row::getManufacturer) + .set(pictureId).equalTo(row::getPictureId) + .set(pictureUrl).equalTo(row::getPictureUrl) + .where(itemCd, isEqualTo(row::getItemCd)) + ); + } + + default int updateByPrimaryKeySelective(ItemInfo row) { + row.setCommonForUpdate(SecurityUtilsExt.getUserIdStr()); + return update(c -> + c.set(deptId).equalToWhenPresent(row::getDeptId) + .set(itemName).equalToWhenPresent(row::getItemName) + .set(supplier).equalToWhenPresent(row::getSupplier) + .set(prepLeadTime).equalToWhenPresent(row::getPrepLeadTime) + .set(instockLeadTime).equalToWhenPresent(row::getInstockLeadTime) + .set(restingPeriod).equalToWhenPresent(row::getRestingPeriod) + .set(outstockLeadTime).equalToWhenPresent(row::getOutstockLeadTime) + .set(spec1).equalToWhenPresent(row::getSpec1) + .set(spec2).equalToWhenPresent(row::getSpec2) + .set(spec3).equalToWhenPresent(row::getSpec3) + .set(spec4).equalToWhenPresent(row::getSpec4) + .set(spec5).equalToWhenPresent(row::getSpec5) + .set(cls1).equalToWhenPresent(row::getCls1) + .set(cls2).equalToWhenPresent(row::getCls2) + .set(cls3).equalToWhenPresent(row::getCls3) + .set(cls4).equalToWhenPresent(row::getCls4) + .set(cls5).equalToWhenPresent(row::getCls5) + .set(updateCount).equalToWhenPresent(row::getUpdateCount) + .set(deleteFlag).equalToWhenPresent(row::getDeleteFlag) + .set(createBy).equalToWhenPresent(row::getCreateBy) + .set(createTime).equalToWhenPresent(row::getCreateTime) + .set(updateBy).equalToWhenPresent(row::getUpdateBy) + .set(updateTime).equalToWhenPresent(row::getUpdateTime) + .set(remark).equalToWhenPresent(row::getRemark) + .set(remark1).equalToWhenPresent(row::getRemark1) + .set(remark2).equalToWhenPresent(row::getRemark2) + .set(remark3).equalToWhenPresent(row::getRemark3) + .set(remark4).equalToWhenPresent(row::getRemark4) + .set(remark5).equalToWhenPresent(row::getRemark5) + .set(deliveryPeriod).equalToWhenPresent(row::getDeliveryPeriod) + .set(defaultStgBinCd).equalToWhenPresent(row::getDefaultStgBinCd) + .set(enableFlg).equalToWhenPresent(row::getEnableFlg) + .set(safetyStock).equalToWhenPresent(row::getSafetyStock) + .set(maxInvQty).equalToWhenPresent(row::getMaxInvQty) + .set(purchLimitQty).equalToWhenPresent(row::getPurchLimitQty) + .set(goodsCls).equalToWhenPresent(row::getGoodsCls) + .set(lotNoMgmtCls).equalToWhenPresent(row::getLotNoMgmtCls) + .set(itemTypeCd).equalToWhenPresent(row::getItemTypeCd) + .set(stdUnitCd).equalToWhenPresent(row::getStdUnitCd) + .set(pkgUnitCd).equalToWhenPresent(row::getPkgUnitCd) + .set(outstockReqMinQty).equalToWhenPresent(row::getOutstockReqMinQty) + .set(outstockUnitCls).equalToWhenPresent(row::getOutstockUnitCls) + .set(netWeightPerUnit).equalToWhenPresent(row::getNetWeightPerUnit) + .set(ownVolM3).equalToWhenPresent(row::getOwnVolM3) + .set(sizeD).equalToWhenPresent(row::getSizeD) + .set(sizeW).equalToWhenPresent(row::getSizeW) + .set(sizeH).equalToWhenPresent(row::getSizeH) + .set(pkgRqmtDesc).equalToWhenPresent(row::getPkgRqmtDesc) + .set(stackingRqmtDesc).equalToWhenPresent(row::getStackingRqmtDesc) + .set(stgRqmtDesc).equalToWhenPresent(row::getStgRqmtDesc) + .set(manufacturer).equalToWhenPresent(row::getManufacturer) + .set(pictureId).equalToWhenPresent(row::getPictureId) + .set(pictureUrl).equalToWhenPresent(row::getPictureUrl) + .where(itemCd, isEqualTo(row::getItemCd)) + ); + } +} \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/GoodsTypeDynamicSqlSupport.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/ItemTypeDynamicSqlSupport.java similarity index 54% rename from ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/GoodsTypeDynamicSqlSupport.java rename to ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/ItemTypeDynamicSqlSupport.java index 4c0d7aee..36114117 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/GoodsTypeDynamicSqlSupport.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/ItemTypeDynamicSqlSupport.java @@ -1,94 +1,95 @@ package com.ruoyi.wms.mapper; -import java.sql.JDBCType; -import java.util.Date; import org.mybatis.dynamic.sql.AliasableSqlTable; import org.mybatis.dynamic.sql.SqlColumn; -public final class GoodsTypeDynamicSqlSupport { - public static final GoodsType goodsType = new GoodsType(); +import java.sql.JDBCType; +import java.util.Date; + +public final class ItemTypeDynamicSqlSupport { + public static final ItemType itemType = new ItemType(); /** * 物品类型编码 */ - public static final SqlColumn goodsTypeCd = goodsType.goodsTypeCd; + public static final SqlColumn itemTypeCd = itemType.itemTypeCd; /** * 从属部门ID */ - public static final SqlColumn deptId = goodsType.deptId; + public static final SqlColumn deptId = itemType.deptId; /** * 物品类型名称 */ - public static final SqlColumn goodsTypeName = goodsType.goodsTypeName; + public static final SqlColumn itemTypeName = itemType.itemTypeName; /** * 备注1 */ - public static final SqlColumn remark1 = goodsType.remark1; + public static final SqlColumn remark1 = itemType.remark1; /** * 备注2 */ - public static final SqlColumn remark2 = goodsType.remark2; + public static final SqlColumn remark2 = itemType.remark2; /** * 备注3 */ - public static final SqlColumn remark3 = goodsType.remark3; + public static final SqlColumn remark3 = itemType.remark3; /** * 备注4 */ - public static final SqlColumn remark4 = goodsType.remark4; + public static final SqlColumn remark4 = itemType.remark4; /** * 备注5 */ - public static final SqlColumn remark5 = goodsType.remark5; + public static final SqlColumn remark5 = itemType.remark5; /** * 更新次数 */ - public static final SqlColumn updateCount = goodsType.updateCount; + public static final SqlColumn updateCount = itemType.updateCount; /** * 更新次数 */ - public static final SqlColumn deleteFlag = goodsType.deleteFlag; + public static final SqlColumn deleteFlag = itemType.deleteFlag; /** * 创建者 */ - public static final SqlColumn createBy = goodsType.createBy; + public static final SqlColumn createBy = itemType.createBy; /** * 创建时间 */ - public static final SqlColumn createTime = goodsType.createTime; + public static final SqlColumn createTime = itemType.createTime; /** * 更新者 */ - public static final SqlColumn updateBy = goodsType.updateBy; + public static final SqlColumn updateBy = itemType.updateBy; /** * 更新时间 */ - public static final SqlColumn updateTime = goodsType.updateTime; + public static final SqlColumn updateTime = itemType.updateTime; /** * 备注 */ - public static final SqlColumn remark = goodsType.remark; + public static final SqlColumn remark = itemType.remark; - public static final class GoodsType extends AliasableSqlTable { - public final SqlColumn goodsTypeCd = column("GOODS_TYPE_CD", JDBCType.VARCHAR); + public static final class ItemType extends AliasableSqlTable { + public final SqlColumn itemTypeCd = column("ITEM_TYPE_CD", JDBCType.VARCHAR); public final SqlColumn deptId = column("DEPT_ID", JDBCType.INTEGER); - public final SqlColumn goodsTypeName = column("GOODS_TYPE_NAME", JDBCType.VARCHAR); + public final SqlColumn itemTypeName = column("ITEM_TYPE_NAME", JDBCType.VARCHAR); public final SqlColumn remark1 = column("REMARK_1", JDBCType.VARCHAR); @@ -114,8 +115,8 @@ public final class GoodsTypeDynamicSqlSupport { public final SqlColumn remark = column("remark", JDBCType.VARCHAR); - public GoodsType() { - super("WMS_M_GOODS_TYPE_INFO", GoodsType::new); + public ItemType() { + super("WMS_M_ITEM_TYPE", ItemType::new); } } } \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/GoodsTypeMapper.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/ItemTypeMapper.java similarity index 69% rename from ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/GoodsTypeMapper.java rename to ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/ItemTypeMapper.java index 4e2b985f..64baf4d6 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/GoodsTypeMapper.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/ItemTypeMapper.java @@ -1,8 +1,18 @@ package com.ruoyi.wms.mapper; +import static com.ruoyi.wms.mapper.ItemTypeDynamicSqlSupport.*; +import static org.mybatis.dynamic.sql.SqlBuilder.isEqualTo; + import com.ruoyi.common.security.utils.SecurityUtilsExt; -import com.ruoyi.wms.domain.GoodsType; -import org.apache.ibatis.annotations.*; +import com.ruoyi.wms.domain.ItemType; +import java.util.Collection; +import java.util.List; +import java.util.Optional; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Result; +import org.apache.ibatis.annotations.ResultMap; +import org.apache.ibatis.annotations.Results; +import org.apache.ibatis.annotations.SelectProvider; import org.apache.ibatis.type.JdbcType; import org.mybatis.dynamic.sql.BasicColumn; import org.mybatis.dynamic.sql.delete.DeleteDSLCompleter; @@ -13,24 +23,21 @@ import org.mybatis.dynamic.sql.update.UpdateDSL; import org.mybatis.dynamic.sql.update.UpdateDSLCompleter; import org.mybatis.dynamic.sql.update.UpdateModel; import org.mybatis.dynamic.sql.util.SqlProviderAdapter; -import org.mybatis.dynamic.sql.util.mybatis3.*; - -import java.util.Collection; -import java.util.List; -import java.util.Optional; - -import static com.ruoyi.wms.mapper.GoodsTypeDynamicSqlSupport.*; -import static org.mybatis.dynamic.sql.SqlBuilder.isEqualTo; +import org.mybatis.dynamic.sql.util.mybatis3.CommonCountMapper; +import org.mybatis.dynamic.sql.util.mybatis3.CommonDeleteMapper; +import org.mybatis.dynamic.sql.util.mybatis3.CommonInsertMapper; +import org.mybatis.dynamic.sql.util.mybatis3.CommonUpdateMapper; +import org.mybatis.dynamic.sql.util.mybatis3.MyBatis3Utils; @Mapper -public interface GoodsTypeMapper extends CommonCountMapper, CommonDeleteMapper, CommonInsertMapper, CommonUpdateMapper { - BasicColumn[] selectList = BasicColumn.columnList(goodsTypeCd, deptId, goodsTypeName, remark1, remark2, remark3, remark4, remark5, updateCount, deleteFlag, createBy, createTime, updateBy, updateTime, remark); +public interface ItemTypeMapper extends CommonCountMapper, CommonDeleteMapper, CommonInsertMapper, CommonUpdateMapper { + BasicColumn[] selectList = BasicColumn.columnList(itemTypeCd, deptId, itemTypeName, remark1, remark2, remark3, remark4, remark5, updateCount, deleteFlag, createBy, createTime, updateBy, updateTime, remark); @SelectProvider(type=SqlProviderAdapter.class, method="select") - @Results(id="GoodsTypeResult", value = { - @Result(column="GOODS_TYPE_CD", property="goodsTypeCd", jdbcType=JdbcType.VARCHAR, id=true), + @Results(id="ItemTypeResult", value = { + @Result(column="ITEM_TYPE_CD", property="itemTypeCd", jdbcType=JdbcType.VARCHAR, id=true), @Result(column="DEPT_ID", property="deptId", jdbcType=JdbcType.INTEGER), - @Result(column="GOODS_TYPE_NAME", property="goodsTypeName", jdbcType=JdbcType.VARCHAR), + @Result(column="ITEM_TYPE_NAME", property="itemTypeName", jdbcType=JdbcType.VARCHAR), @Result(column="REMARK_1", property="remark1", jdbcType=JdbcType.VARCHAR), @Result(column="REMARK_2", property="remark2", jdbcType=JdbcType.VARCHAR), @Result(column="REMARK_3", property="remark3", jdbcType=JdbcType.VARCHAR), @@ -44,32 +51,32 @@ public interface GoodsTypeMapper extends CommonCountMapper, CommonDeleteMapper, @Result(column="update_time", property="updateTime", jdbcType=JdbcType.TIMESTAMP), @Result(column="remark", property="remark", jdbcType=JdbcType.VARCHAR) }) - List selectMany(SelectStatementProvider selectStatement); + List selectMany(SelectStatementProvider selectStatement); @SelectProvider(type=SqlProviderAdapter.class, method="select") - @ResultMap("GoodsTypeResult") - Optional selectOne(SelectStatementProvider selectStatement); + @ResultMap("ItemTypeResult") + Optional selectOne(SelectStatementProvider selectStatement); default long count(CountDSLCompleter completer) { - return MyBatis3Utils.countFrom(this::count, goodsType, completer); + return MyBatis3Utils.countFrom(this::count, itemType, completer); } default int delete(DeleteDSLCompleter completer) { - return MyBatis3Utils.deleteFrom(this::delete, goodsType, completer); + return MyBatis3Utils.deleteFrom(this::delete, itemType, completer); } - default int deleteByPrimaryKey(String goodsTypeCd_) { + default int deleteByPrimaryKey(String itemTypeCd_) { return delete(c -> - c.where(goodsTypeCd, isEqualTo(goodsTypeCd_)) + c.where(itemTypeCd, isEqualTo(itemTypeCd_)) ); } - default int insert(GoodsType row) { + default int insert(ItemType row) { row.setCommonForInsert(SecurityUtilsExt.getUserIdStr()); - return MyBatis3Utils.insert(this::insert, row, goodsType, c -> - c.map(goodsTypeCd).toProperty("goodsTypeCd") + return MyBatis3Utils.insert(this::insert, row, itemType, c -> + c.map(itemTypeCd).toProperty("itemTypeCd") .map(deptId).toProperty("deptId") - .map(goodsTypeName).toProperty("goodsTypeName") + .map(itemTypeName).toProperty("itemTypeName") .map(remark1).toProperty("remark1") .map(remark2).toProperty("remark2") .map(remark3).toProperty("remark3") @@ -85,14 +92,14 @@ public interface GoodsTypeMapper extends CommonCountMapper, CommonDeleteMapper, ); } - default int insertMultiple(Collection records) { - for (GoodsType row : records) { + default int insertMultiple(Collection records) { + for (ItemType row : records) { row.setCommonForInsert(SecurityUtilsExt.getUserIdStr()); } - return MyBatis3Utils.insertMultiple(this::insertMultiple, records, goodsType, c -> - c.map(goodsTypeCd).toProperty("goodsTypeCd") + return MyBatis3Utils.insertMultiple(this::insertMultiple, records, itemType, c -> + c.map(itemTypeCd).toProperty("itemTypeCd") .map(deptId).toProperty("deptId") - .map(goodsTypeName).toProperty("goodsTypeName") + .map(itemTypeName).toProperty("itemTypeName") .map(remark1).toProperty("remark1") .map(remark2).toProperty("remark2") .map(remark3).toProperty("remark3") @@ -108,12 +115,12 @@ public interface GoodsTypeMapper extends CommonCountMapper, CommonDeleteMapper, ); } - default int insertSelective(GoodsType row) { + default int insertSelective(ItemType row) { row.setCommonForInsert(SecurityUtilsExt.getUserIdStr()); - return MyBatis3Utils.insert(this::insert, row, goodsType, c -> - c.map(goodsTypeCd).toPropertyWhenPresent("goodsTypeCd", row::getGoodsTypeCd) + return MyBatis3Utils.insert(this::insert, row, itemType, c -> + c.map(itemTypeCd).toPropertyWhenPresent("itemTypeCd", row::getItemTypeCd) .map(deptId).toPropertyWhenPresent("deptId", row::getDeptId) - .map(goodsTypeName).toPropertyWhenPresent("goodsTypeName", row::getGoodsTypeName) + .map(itemTypeName).toPropertyWhenPresent("itemTypeName", row::getItemTypeName) .map(remark1).toPropertyWhenPresent("remark1", row::getRemark1) .map(remark2).toPropertyWhenPresent("remark2", row::getRemark2) .map(remark3).toPropertyWhenPresent("remark3", row::getRemark3) @@ -129,32 +136,32 @@ public interface GoodsTypeMapper extends CommonCountMapper, CommonDeleteMapper, ); } - default Optional selectOne(SelectDSLCompleter completer) { - return MyBatis3Utils.selectOne(this::selectOne, selectList, goodsType, completer); + default Optional selectOne(SelectDSLCompleter completer) { + return MyBatis3Utils.selectOne(this::selectOne, selectList, itemType, completer); } - default List select(SelectDSLCompleter completer) { - return MyBatis3Utils.selectList(this::selectMany, selectList, goodsType, completer); + default List select(SelectDSLCompleter completer) { + return MyBatis3Utils.selectList(this::selectMany, selectList, itemType, completer); } - default List selectDistinct(SelectDSLCompleter completer) { - return MyBatis3Utils.selectDistinct(this::selectMany, selectList, goodsType, completer); + default List selectDistinct(SelectDSLCompleter completer) { + return MyBatis3Utils.selectDistinct(this::selectMany, selectList, itemType, completer); } - default Optional selectByPrimaryKey(String goodsTypeCd_) { + default Optional selectByPrimaryKey(String itemTypeCd_) { return selectOne(c -> - c.where(goodsTypeCd, isEqualTo(goodsTypeCd_)) + c.where(itemTypeCd, isEqualTo(itemTypeCd_)) ); } default int update(UpdateDSLCompleter completer) { - return MyBatis3Utils.update(this::update, goodsType, completer); + return MyBatis3Utils.update(this::update, itemType, completer); } - static UpdateDSL updateAllColumns(GoodsType row, UpdateDSL dsl) { - return dsl.set(goodsTypeCd).equalTo(row::getGoodsTypeCd) + static UpdateDSL updateAllColumns(ItemType row, UpdateDSL dsl) { + return dsl.set(itemTypeCd).equalTo(row::getItemTypeCd) .set(deptId).equalTo(row::getDeptId) - .set(goodsTypeName).equalTo(row::getGoodsTypeName) + .set(itemTypeName).equalTo(row::getItemTypeName) .set(remark1).equalTo(row::getRemark1) .set(remark2).equalTo(row::getRemark2) .set(remark3).equalTo(row::getRemark3) @@ -169,11 +176,11 @@ public interface GoodsTypeMapper extends CommonCountMapper, CommonDeleteMapper, .set(remark).equalTo(row::getRemark); } - static UpdateDSL updateSelectiveColumns(GoodsType row, UpdateDSL dsl) { + static UpdateDSL updateSelectiveColumns(ItemType row, UpdateDSL dsl) { row.setCommonForUpdate(SecurityUtilsExt.getUserIdStr()); - return dsl.set(goodsTypeCd).equalToWhenPresent(row::getGoodsTypeCd) + return dsl.set(itemTypeCd).equalToWhenPresent(row::getItemTypeCd) .set(deptId).equalToWhenPresent(row::getDeptId) - .set(goodsTypeName).equalToWhenPresent(row::getGoodsTypeName) + .set(itemTypeName).equalToWhenPresent(row::getItemTypeName) .set(remark1).equalToWhenPresent(row::getRemark1) .set(remark2).equalToWhenPresent(row::getRemark2) .set(remark3).equalToWhenPresent(row::getRemark3) @@ -188,10 +195,10 @@ public interface GoodsTypeMapper extends CommonCountMapper, CommonDeleteMapper, .set(remark).equalToWhenPresent(row::getRemark); } - default int updateByPrimaryKey(GoodsType row) { + default int updateByPrimaryKey(ItemType row) { return update(c -> c.set(deptId).equalTo(row::getDeptId) - .set(goodsTypeName).equalTo(row::getGoodsTypeName) + .set(itemTypeName).equalTo(row::getItemTypeName) .set(remark1).equalTo(row::getRemark1) .set(remark2).equalTo(row::getRemark2) .set(remark3).equalTo(row::getRemark3) @@ -204,15 +211,15 @@ public interface GoodsTypeMapper extends CommonCountMapper, CommonDeleteMapper, .set(updateBy).equalTo(row::getUpdateBy) .set(updateTime).equalTo(row::getUpdateTime) .set(remark).equalTo(row::getRemark) - .where(goodsTypeCd, isEqualTo(row::getGoodsTypeCd)) + .where(itemTypeCd, isEqualTo(row::getItemTypeCd)) ); } - default int updateByPrimaryKeySelective(GoodsType row) { + default int updateByPrimaryKeySelective(ItemType row) { row.setCommonForUpdate(SecurityUtilsExt.getUserIdStr()); return update(c -> c.set(deptId).equalToWhenPresent(row::getDeptId) - .set(goodsTypeName).equalToWhenPresent(row::getGoodsTypeName) + .set(itemTypeName).equalToWhenPresent(row::getItemTypeName) .set(remark1).equalToWhenPresent(row::getRemark1) .set(remark2).equalToWhenPresent(row::getRemark2) .set(remark3).equalToWhenPresent(row::getRemark3) @@ -225,7 +232,7 @@ public interface GoodsTypeMapper extends CommonCountMapper, CommonDeleteMapper, .set(updateBy).equalToWhenPresent(row::getUpdateBy) .set(updateTime).equalToWhenPresent(row::getUpdateTime) .set(remark).equalToWhenPresent(row::getRemark) - .where(goodsTypeCd, isEqualTo(row::getGoodsTypeCd)) + .where(itemTypeCd, isEqualTo(row::getItemTypeCd)) ); } } \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/IGoodsTypeService.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/IGoodsTypeService.java deleted file mode 100644 index eed265a7..00000000 --- a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/IGoodsTypeService.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.ruoyi.wms.service; - -import java.util.List; - -import com.ruoyi.wms.domain .GoodsType; - -/** - * 物品类型管理Service接口 - * - * @author ryas - * created on 2024-02-18 - */ -public interface IGoodsTypeService { - /** - * 查询物品类型管理 - * - * @param goodsTypeCd 物品类型管理主键 - * @return 物品类型管理 - */ - GoodsType selectGoodsTypeByGoodsTypeCd(String goodsTypeCd); - - /** - * 查询物品类型管理列表 - * - * @param goodsType 物品类型管理 - * @return 物品类型管理集合 - */ - List selectGoodsTypeList(GoodsType goodsType); - - /** - * 新增物品类型管理 - * - * @param goodsType 物品类型管理 - * @return 结果 - */ - int insertGoodsType(GoodsType goodsType); - - /** - * 修改物品类型管理 - * - * @param goodsType 物品类型管理 - * @return 结果 - */ - int updateGoodsType(GoodsType goodsType); - - /** - * 批量删除物品类型管理 - * - * @param goodsTypeCds 需要删除的物品类型管理主键集合 - * @return 结果 - */ - int deleteGoodsTypeByGoodsTypeCds(String[] goodsTypeCds); - - /** - * 删除物品类型管理信息 - * - * @param goodsTypeCd 物品类型管理主键 - * @return 结果 - */ - int deleteGoodsTypeByGoodsTypeCd(String goodsTypeCd); -} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/IItemInfoService.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/IItemInfoService.java new file mode 100644 index 00000000..661ba1b6 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/IItemInfoService.java @@ -0,0 +1,61 @@ +package com.ruoyi.wms.service; + +import com.ruoyi.wms.domain.ItemInfo; + +import java.util.List; + +/** + * 物品基础信息Service接口 + * + * @author ryas + * created on 2024-02-20 + */ +public interface IItemInfoService { + /** + * 查询物品基础信息 + * + * @param itemCd 物品基础信息主键 + * @return 物品基础信息 + */ + ItemInfo selectItemInfoByItemCd(String itemCd); + + /** + * 查询物品基础信息列表 + * + * @param itemInfo 物品基础信息 + * @return 物品基础信息集合 + */ + List selectItemInfoList(ItemInfo itemInfo); + + /** + * 新增物品基础信息 + * + * @param itemInfo 物品基础信息 + * @return 结果 + */ + int insertItemInfo(ItemInfo itemInfo); + + /** + * 修改物品基础信息 + * + * @param itemInfo 物品基础信息 + * @return 结果 + */ + int updateItemInfo(ItemInfo itemInfo); + + /** + * 批量删除物品基础信息 + * + * @param itemCds 需要删除的物品基础信息主键集合 + * @return 结果 + */ + int deleteItemInfoByItemCds(String[] itemCds); + + /** + * 删除物品基础信息信息 + * + * @param itemCd 物品基础信息主键 + * @return 结果 + */ + int deleteItemInfoByItemCd(String itemCd); +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/IItemTypeService.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/IItemTypeService.java new file mode 100644 index 00000000..a5746746 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/IItemTypeService.java @@ -0,0 +1,61 @@ +package com.ruoyi.wms.service; + +import com.ruoyi.wms.domain.ItemType; + +import java.util.List; + +/** + * 物品类型Service接口 + * + * @author ryas + * created on 2024-02-20 + */ +public interface IItemTypeService { + /** + * 查询物品类型 + * + * @param itemTypeCd 物品类型主键 + * @return 物品类型 + */ + ItemType selectItemTypeByItemTypeCd(String itemTypeCd); + + /** + * 查询物品类型列表 + * + * @param itemType 物品类型 + * @return 物品类型集合 + */ + List selectItemTypeList(ItemType itemType); + + /** + * 新增物品类型 + * + * @param itemType 物品类型 + * @return 结果 + */ + int insertItemType(ItemType itemType); + + /** + * 修改物品类型 + * + * @param itemType 物品类型 + * @return 结果 + */ + int updateItemType(ItemType itemType); + + /** + * 批量删除物品类型 + * + * @param itemTypeCds 需要删除的物品类型主键集合 + * @return 结果 + */ + int deleteItemTypeByItemTypeCds(String[] itemTypeCds); + + /** + * 删除物品类型信息 + * + * @param itemTypeCd 物品类型主键 + * @return 结果 + */ + int deleteItemTypeByItemTypeCd(String itemTypeCd); +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/impl/GoodsTypeServiceImpl.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/impl/GoodsTypeServiceImpl.java deleted file mode 100644 index 49c503c2..00000000 --- a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/impl/GoodsTypeServiceImpl.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.ruoyi.wms.service.impl; - -import com.ruoyi.common.core.utils.DateUtils; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.core.web.domain.ExtBaseEntity; -import com.ruoyi.common.security.utils.SecurityUtilsExt; -import com.ruoyi.common.services.ISysSequenceService; -import com.ruoyi.common.services.constants.SeqType; -import com.ruoyi.wms.domain.GoodsType; -import com.ruoyi.wms.mapper.GoodsTypeDynamicSqlSupport; -import com.ruoyi.wms.mapper.GoodsTypeMapper; -import com.ruoyi.wms.service.IGoodsTypeService; -import jakarta.annotation.Resource; -import org.mybatis.dynamic.sql.SqlBuilder; -import org.mybatis.dynamic.sql.render.RenderingStrategies; -import org.mybatis.dynamic.sql.select.render.SelectStatementProvider; -import org.mybatis.dynamic.sql.update.render.UpdateStatementProvider; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * 物品类型管理Service业务层处理 - * - * @author ryas - * created on 2024-02-18 - */ -@Service -public class GoodsTypeServiceImpl implements IGoodsTypeService { - - @Resource - private GoodsTypeMapper goodsTypeMapper; - @Resource - private ISysSequenceService sequenceService; - - /** - * 查询物品类型管理 - * - * @param goodsTypeCd 物品类型管理主键 - * @return 物品类型管理 - */ - @Override - public GoodsType selectGoodsTypeByGoodsTypeCd(String goodsTypeCd) { - Optional result = goodsTypeMapper.selectOne(dsl -> dsl.where(GoodsTypeDynamicSqlSupport.goodsTypeCd, SqlBuilder.isEqualTo(goodsTypeCd))); - return result.orElse(null); - } - - /** - * 查询物品类型管理列表 - * - * @param goodsType 物品类型管理 - * @return 物品类型管理 - */ - @Override - public List selectGoodsTypeList(GoodsType goodsType) { - SelectStatementProvider provider = SqlBuilder.select(GoodsTypeMapper.selectList) - .from(GoodsTypeDynamicSqlSupport.goodsType) - .where(GoodsTypeDynamicSqlSupport.deleteFlag, SqlBuilder.isEqualTo(ExtBaseEntity.NOT_DELETE)) - .and(GoodsTypeDynamicSqlSupport.goodsTypeCd, SqlBuilder.isEqualToWhenPresent(goodsType.getGoodsTypeCd())) - .and(GoodsTypeDynamicSqlSupport.goodsTypeName, SqlBuilder.isLikeWhenPresent(goodsType.getGoodsTypeName() == null ? null : "%" + goodsType.getGoodsTypeName() + "%")) - .and(GoodsTypeDynamicSqlSupport.remark1, SqlBuilder.isLikeWhenPresent(goodsType.getRemark1() == null ? null : "%" + goodsType.getRemark1() + "%")) - .build() - .render(RenderingStrategies.MYBATIS3); - return goodsTypeMapper.selectMany(provider); - } - - /** - * 新增物品类型管理 - * - * @param goodsType 物品类型管理 - * @return 结果 - */ - @Transactional - @Override - public int insertGoodsType(GoodsType goodsType) { - if (StringUtils.isBlank(goodsType.getGoodsTypeCd())) { - String goodsTypeCd = sequenceService.getNextSequence(SeqType.GOODE_TYPE_CD); - goodsType.setGoodsTypeCd(goodsTypeCd); - } - return goodsTypeMapper.insertSelective(goodsType); - } - - /** - * 修改物品类型管理 - * - * @param goodsType 物品类型管理 - * @return 结果 - */ - @Transactional - @Override - public int updateGoodsType(GoodsType goodsType) { - return goodsTypeMapper.updateByPrimaryKeySelective(goodsType); - } - - /** - * 批量删除物品类型管理 - * - * @param goodsTypeCds 需要删除的物品类型管理主键 - * @return 结果 - */ - @Transactional - @Override - public int deleteGoodsTypeByGoodsTypeCds(String[] goodsTypeCds) { - String userId = SecurityUtilsExt.getUserIdStr(); - UpdateStatementProvider provider = SqlBuilder.update(GoodsTypeDynamicSqlSupport.goodsType) - .set(GoodsTypeDynamicSqlSupport.deleteFlag).equalTo(ExtBaseEntity.DELETED) - .set(GoodsTypeDynamicSqlSupport.updateTime).equalTo(DateUtils.getNowDate()) - .set(GoodsTypeDynamicSqlSupport.updateBy).equalTo(userId) - .where(GoodsTypeDynamicSqlSupport.goodsTypeCd, SqlBuilder.isIn(goodsTypeCds)) - .build() - .render(RenderingStrategies.MYBATIS3); - return goodsTypeMapper.update(provider); - } - - /** - * 删除物品类型管理信息 - * - * @param goodsTypeCd 物品类型管理主键 - * @return 结果 - */ - @Transactional - @Override - public int deleteGoodsTypeByGoodsTypeCd(String goodsTypeCd) { - GoodsType record = new GoodsType(); - record.setGoodsTypeCd(goodsTypeCd); - record.setDeleteFlag(ExtBaseEntity.DELETED); - record.setUpdateTime(DateUtils.getNowDate()); - return goodsTypeMapper.updateByPrimaryKey(record); - } -} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/impl/ItemInfoServiceImpl.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/impl/ItemInfoServiceImpl.java new file mode 100644 index 00000000..881745f7 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/impl/ItemInfoServiceImpl.java @@ -0,0 +1,121 @@ +package com.ruoyi.wms.service.impl; + +import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.web.domain.ExtBaseEntity; +import com.ruoyi.common.security.utils.SecurityUtilsExt; +import com.ruoyi.wms.domain.ItemInfo; +import com.ruoyi.wms.mapper.ItemInfoDynamicSqlSupport; +import com.ruoyi.wms.mapper.ItemInfoMapper; +import com.ruoyi.wms.service.IItemInfoService; +import org.mybatis.dynamic.sql.SqlBuilder; +import org.mybatis.dynamic.sql.render.RenderingStrategies; +import org.mybatis.dynamic.sql.select.render.SelectStatementProvider; +import org.mybatis.dynamic.sql.update.render.UpdateStatementProvider; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Optional; + +/** + * 物品基础信息Service业务层处理 + * + * @author ryas + * created on 2024-02-20 + */ +@Service +public class ItemInfoServiceImpl implements IItemInfoService { + @Autowired + private ItemInfoMapper itemInfoMapper; + + /** + * 查询物品基础信息 + * + * @param itemCd 物品基础信息主键 + * @return 物品基础信息 + */ + @Override + public ItemInfo selectItemInfoByItemCd(String itemCd) { + Optional result = itemInfoMapper.selectOne(dsl -> dsl.where(ItemInfoDynamicSqlSupport.itemCd, SqlBuilder.isEqualTo(itemCd))); + return result.orElse(null); + } + + /** + * 查询物品基础信息列表 + * + * @param itemInfo 物品基础信息 + * @return 物品基础信息 + */ + @Override + public List selectItemInfoList(ItemInfo itemInfo) { + SelectStatementProvider provider = SqlBuilder.select(ItemInfoMapper.selectList) + .from(ItemInfoDynamicSqlSupport.itemInfo) + .where(ItemInfoDynamicSqlSupport.deleteFlag, SqlBuilder.isEqualTo(ExtBaseEntity.NOT_DELETE)) + .and(ItemInfoDynamicSqlSupport.itemCd, SqlBuilder.isEqualToWhenPresent(itemInfo.getItemCd())) + .and(ItemInfoDynamicSqlSupport.itemName, SqlBuilder.isLikeWhenPresent(itemInfo.getItemName() == null ? null : "%" + itemInfo.getItemName() + "%")) + .build() + .render(RenderingStrategies.MYBATIS3); + return itemInfoMapper.selectMany(provider); + } + + /** + * 新增物品基础信息 + * + * @param itemInfo 物品基础信息 + * @return 结果 + */ + @Transactional + @Override + public int insertItemInfo(ItemInfo itemInfo) { + return itemInfoMapper.insertSelective(itemInfo); + } + + /** + * 修改物品基础信息 + * + * @param itemInfo 物品基础信息 + * @return 结果 + */ + @Transactional + @Override + public int updateItemInfo(ItemInfo itemInfo) { + return itemInfoMapper.updateByPrimaryKeySelective(itemInfo); + } + + /** + * 批量删除物品基础信息 + * + * @param itemCds 需要删除的物品基础信息主键 + * @return 结果 + */ + @Transactional + @Override + public int deleteItemInfoByItemCds(String[] itemCds) { + String userId = SecurityUtilsExt.getUserIdStr(); + UpdateStatementProvider provider = SqlBuilder.update(ItemInfoDynamicSqlSupport.itemInfo) + .set(ItemInfoDynamicSqlSupport.deleteFlag).equalTo(ExtBaseEntity.DELETED) + .set(ItemInfoDynamicSqlSupport.updateTime).equalTo(DateUtils.getNowDate()) + .set(ItemInfoDynamicSqlSupport.updateBy).equalTo(userId) + .where(ItemInfoDynamicSqlSupport.itemCd, SqlBuilder.isIn(itemCds)) + .build() + .render(RenderingStrategies.MYBATIS3); + return itemInfoMapper.update(provider); + } + + /** + * 删除物品基础信息信息 + * + * @param itemCd 物品基础信息主键 + * @return 结果 + */ + @Transactional + @Override + public int deleteItemInfoByItemCd(String itemCd) { + ItemInfo record = new ItemInfo(); + record.setItemCd(itemCd); + record.setDeleteFlag(ExtBaseEntity.DELETED); + record.setUpdateTime(DateUtils.getNowDate()); + return itemInfoMapper.updateByPrimaryKey(record); + } +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/impl/ItemTypeServiceImpl.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/impl/ItemTypeServiceImpl.java new file mode 100644 index 00000000..677fd599 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/impl/ItemTypeServiceImpl.java @@ -0,0 +1,131 @@ +package com.ruoyi.wms.service.impl; + +import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.web.domain.ExtBaseEntity; +import com.ruoyi.common.security.utils.SecurityUtilsExt; +import com.ruoyi.common.services.ISysSequenceService; +import com.ruoyi.common.services.constants.SeqType; +import com.ruoyi.wms.domain.ItemType; +import com.ruoyi.wms.mapper.ItemTypeDynamicSqlSupport; +import com.ruoyi.wms.mapper.ItemTypeMapper; +import com.ruoyi.wms.service.IItemTypeService; +import org.mybatis.dynamic.sql.SqlBuilder; +import org.mybatis.dynamic.sql.render.RenderingStrategies; +import org.mybatis.dynamic.sql.select.render.SelectStatementProvider; +import org.mybatis.dynamic.sql.update.render.UpdateStatementProvider; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Optional; + +/** + * 物品类型Service业务层处理 + * + * @author ryas + * created on 2024-02-20 + */ +@Service +public class ItemTypeServiceImpl implements IItemTypeService { + @Autowired + private ItemTypeMapper itemTypeMapper; + + @Autowired + private ISysSequenceService sequenceService; + + /** + * 查询物品类型 + * + * @param itemTypeCd 物品类型主键 + * @return 物品类型 + */ + @Override + public ItemType selectItemTypeByItemTypeCd(String itemTypeCd) { + Optional result = itemTypeMapper.selectOne(dsl -> dsl.where(ItemTypeDynamicSqlSupport.itemTypeCd, SqlBuilder.isEqualTo(itemTypeCd))); + return result.orElse(null); + } + + /** + * 查询物品类型列表 + * + * @param itemType 物品类型 + * @return 物品类型 + */ + @Override + public List selectItemTypeList(ItemType itemType) { + SelectStatementProvider provider = SqlBuilder.select(ItemTypeMapper.selectList) + .from(ItemTypeDynamicSqlSupport.itemType) + .where(ItemTypeDynamicSqlSupport.deleteFlag, SqlBuilder.isEqualTo(ExtBaseEntity.NOT_DELETE)) + .and(ItemTypeDynamicSqlSupport.itemTypeName, SqlBuilder.isLikeWhenPresent(itemType.getItemTypeName() == null ? null : "%" + itemType.getItemTypeName() + "%")) + .and(ItemTypeDynamicSqlSupport.remark1, SqlBuilder.isEqualToWhenPresent(itemType.getRemark1())) + .build() + .render(RenderingStrategies.MYBATIS3); + return itemTypeMapper.selectMany(provider); + } + + /** + * 新增物品类型 + * + * @param itemType 物品类型 + * @return 结果 + */ + @Transactional + @Override + public int insertItemType(ItemType itemType) { + if (StringUtils.isBlank(itemType.getItemTypeCd())) { + String itemTypeCd = sequenceService.getNextSequence(SeqType.ITEM_TYPE_CD); + itemType.setItemTypeCd(itemTypeCd); + } + return itemTypeMapper.insertSelective(itemType); + } + + /** + * 修改物品类型 + * + * @param itemType 物品类型 + * @return 结果 + */ + @Transactional + @Override + public int updateItemType(ItemType itemType) { + return itemTypeMapper.updateByPrimaryKeySelective(itemType); + } + + /** + * 批量删除物品类型 + * + * @param itemTypeCds 需要删除的物品类型主键 + * @return 结果 + */ + @Transactional + @Override + public int deleteItemTypeByItemTypeCds(String[] itemTypeCds) { + String userId = SecurityUtilsExt.getUserIdStr(); + UpdateStatementProvider provider = SqlBuilder.update(ItemTypeDynamicSqlSupport.itemType) + .set(ItemTypeDynamicSqlSupport.deleteFlag).equalTo(ExtBaseEntity.DELETED) + .set(ItemTypeDynamicSqlSupport.updateTime).equalTo(DateUtils.getNowDate()) + .set(ItemTypeDynamicSqlSupport.updateBy).equalTo(userId) + .where(ItemTypeDynamicSqlSupport.itemTypeCd, SqlBuilder.isIn(itemTypeCds)) + .build() + .render(RenderingStrategies.MYBATIS3); + return itemTypeMapper.update(provider); + } + + /** + * 删除物品类型信息 + * + * @param itemTypeCd 物品类型主键 + * @return 结果 + */ + @Transactional + @Override + public int deleteItemTypeByItemTypeCd(String itemTypeCd) { + ItemType record = new ItemType(); + record.setItemTypeCd(itemTypeCd); + record.setDeleteFlag(ExtBaseEntity.DELETED); + record.setUpdateTime(DateUtils.getNowDate()); + return itemTypeMapper.updateByPrimaryKey(record); + } +} diff --git a/ruoyi-modules/ruoyi-wms/src/test/resources/generatorConfig.xml b/ruoyi-modules/ruoyi-wms/src/test/resources/generatorConfig.xml index 9833bc75..6aea8e3b 100644 --- a/ruoyi-modules/ruoyi-wms/src/test/resources/generatorConfig.xml +++ b/ruoyi-modules/ruoyi-wms/src/test/resources/generatorConfig.xml @@ -41,8 +41,9 @@ - - + + +
\ No newline at end of file diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json index 30147cdc..a92c5ba6 100644 --- a/ruoyi-ui/package.json +++ b/ruoyi-ui/package.json @@ -1,8 +1,8 @@ { - "name": "ruoyi", + "name": "ryas", "version": "3.6.3", "description": "RYAS管理系统", - "author": "ruoyi", + "author": "ryas", "license": "MIT", "type": "module", "scripts": { @@ -11,10 +11,6 @@ "build:stage": "vite build --mode staging", "preview": "vite preview" }, - "repository": { - "type": "git", - "url": "https://gitee.com/y_project/RuoYi-Cloud.git" - }, "dependencies": { "@element-plus/icons-vue": "2.3.1", "@vueup/vue-quill": "1.2.0", diff --git a/ruoyi-ui/src/api/wms/GoodsType.js b/ruoyi-ui/src/api/wms/GoodsType.js deleted file mode 100644 index dc21c1e2..00000000 --- a/ruoyi-ui/src/api/wms/GoodsType.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询物品类型管理列表 -export function listGoodsType(query) { - return request({ - url: '/wms/GoodsType/list', - method: 'get', - params: query - }) -} - -// 查询物品类型管理详细 -export function getGoodsType(goodsTypeCd) { - return request({ - url: '/wms/GoodsType/' + goodsTypeCd, - method: 'get' - }) -} - -// 新增物品类型管理 -export function addGoodsType(data) { - return request({ - url: '/wms/GoodsType', - method: 'post', - data: data - }) -} - -// 修改物品类型管理 -export function updateGoodsType(data) { - return request({ - url: '/wms/GoodsType', - method: 'put', - data: data - }) -} - -// 删除物品类型管理 -export function delGoodsType(goodsTypeCd) { - return request({ - url: '/wms/GoodsType/' + goodsTypeCd, - method: 'delete' - }) -} diff --git a/ruoyi-ui/src/api/wms/ItemInfo.js b/ruoyi-ui/src/api/wms/ItemInfo.js new file mode 100644 index 00000000..13b62f9a --- /dev/null +++ b/ruoyi-ui/src/api/wms/ItemInfo.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询物品基础信息列表 +export function listItemInfo(query) { + return request({ + url: '/wms/ItemInfo/list', + method: 'get', + params: query + }) +} + +// 查询物品基础信息详细 +export function getItemInfo(itemCd) { + return request({ + url: '/wms/ItemInfo/' + itemCd, + method: 'get' + }) +} + +// 新增物品基础信息 +export function addItemInfo(data) { + return request({ + url: '/wms/ItemInfo', + method: 'post', + data: data + }) +} + +// 修改物品基础信息 +export function updateItemInfo(data) { + return request({ + url: '/wms/ItemInfo', + method: 'put', + data: data + }) +} + +// 删除物品基础信息 +export function delItemInfo(itemCd) { + return request({ + url: '/wms/ItemInfo/' + itemCd, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/wms/ItemType.js b/ruoyi-ui/src/api/wms/ItemType.js new file mode 100644 index 00000000..b8951348 --- /dev/null +++ b/ruoyi-ui/src/api/wms/ItemType.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询物品类型列表 +export function listItemType(query) { + return request({ + url: '/wms/ItemType/list', + method: 'get', + params: query + }) +} + +// 查询物品类型详细 +export function getItemType(itemTypeCd) { + return request({ + url: '/wms/ItemType/' + itemTypeCd, + method: 'get' + }) +} + +// 新增物品类型 +export function addItemType(data) { + return request({ + url: '/wms/ItemType', + method: 'post', + data: data + }) +} + +// 修改物品类型 +export function updateItemType(data) { + return request({ + url: '/wms/ItemType', + method: 'put', + data: data + }) +} + +// 删除物品类型 +export function delItemType(itemTypeCd) { + return request({ + url: '/wms/ItemType/' + itemTypeCd, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/components/SizeSelect/index.vue b/ruoyi-ui/src/components/SizeSelect/index.vue index 1ebb2b30..4c2e7e95 100644 --- a/ruoyi-ui/src/components/SizeSelect/index.vue +++ b/ruoyi-ui/src/components/SizeSelect/index.vue @@ -24,13 +24,13 @@ const route = useRoute(); const router = useRouter(); const { proxy } = getCurrentInstance(); const sizeOptions = ref([ - { label: "ϴ", value: "large" }, - { label: "Ĭ", value: "default" }, - { label: "С", value: "small" }, + { label: "较大", value: "large" }, + { label: "默认", value: "default" }, + { label: "稍小", value: "small" }, ]); function handleSetSize(size) { - proxy.$modal.loading("òִСԺ..."); + proxy.$modal.loading("正在设置布局大小,请稍候..."); appStore.setSize(size); setTimeout("window.location.reload()", 1000); } diff --git a/ruoyi-ui/src/views/wms/ItemInfo/index.vue b/ruoyi-ui/src/views/wms/ItemInfo/index.vue new file mode 100644 index 00000000..91fb0122 --- /dev/null +++ b/ruoyi-ui/src/views/wms/ItemInfo/index.vue @@ -0,0 +1,423 @@ + + + diff --git a/ruoyi-ui/src/views/wms/GoodsType/index.vue b/ruoyi-ui/src/views/wms/ItemType/index.vue similarity index 67% rename from ruoyi-ui/src/views/wms/GoodsType/index.vue rename to ruoyi-ui/src/views/wms/ItemType/index.vue index e0712f3c..b87b74c0 100644 --- a/ruoyi-ui/src/views/wms/GoodsType/index.vue +++ b/ruoyi-ui/src/views/wms/ItemType/index.vue @@ -1,18 +1,18 @@ -