feat(All): 新实体创建

This commit is contained in:
LukaJames 2025-04-21 03:00:50 +08:00
parent 3952232bef
commit 415708e38a
38 changed files with 1594 additions and 85 deletions

View File

@ -0,0 +1,109 @@
package net.ferrum.web.controller.business;
import cn.dev33.satoken.annotation.SaCheckPermission;
import lombok.RequiredArgsConstructor;
import net.ferrum.business.domain.bo.QsSupplierBo;
import net.ferrum.business.domain.vo.QsSupplierVo;
import net.ferrum.business.service.IQsSupplierService;
import net.ferrum.common.annotation.Log;
import net.ferrum.common.annotation.RepeatSubmit;
import net.ferrum.common.core.controller.BaseController;
import net.ferrum.common.core.domain.PageQuery;
import net.ferrum.common.core.domain.R;
import net.ferrum.common.core.page.TableDataInfo;
import net.ferrum.common.core.validate.AddGroup;
import net.ferrum.common.core.validate.EditGroup;
import net.ferrum.common.enums.BusinessType;
import net.ferrum.common.utils.poi.ExcelUtil;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;
/**
* 供应商信息
*
* @author ferrum
* @version 1.0.0
* @since 2025-03-05
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/business/supplier")
public class QsSupplierController extends BaseController {
private final IQsSupplierService iQsSupplierService;
/**
* 查询供应商信息列表
*/
@SaCheckPermission("business:supplier:list")
@GetMapping("/list")
public TableDataInfo<QsSupplierVo> list(QsSupplierBo bo, PageQuery pageQuery) {
return iQsSupplierService.queryPageList(bo, pageQuery);
}
/**
* 导出供应商信息列表
*/
@SaCheckPermission("business:supplier:export")
@Log(title = "供应商信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(QsSupplierBo bo, HttpServletResponse response) {
List<QsSupplierVo> list = iQsSupplierService.queryList(bo);
ExcelUtil.exportExcel(list, "供应商信息", QsSupplierVo.class, response);
}
/**
* 获取供应商信息详细信息
*
* @param supplierId 主键
*/
@SaCheckPermission("business:supplier:query")
@GetMapping("/{supplierId}")
public R<QsSupplierVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long supplierId) {
return R.ok(iQsSupplierService.queryById(supplierId));
}
/**
* 新增供应商信息
*/
@SaCheckPermission("business:supplier:add")
@Log(title = "供应商信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody QsSupplierBo bo) {
return toAjax(iQsSupplierService.insertByBo(bo));
}
/**
* 修改供应商信息
*/
@SaCheckPermission("business:supplier:edit")
@Log(title = "供应商信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody QsSupplierBo bo) {
return toAjax(iQsSupplierService.updateByBo(bo));
}
/**
* 删除供应商信息
*
* @param supplierIds 主键串
*/
@SaCheckPermission("business:supplier:remove")
@Log(title = "供应商信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{supplierIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] supplierIds) {
return toAjax(iQsSupplierService.deleteWithValidByIds(Arrays.asList(supplierIds), true));
}
}

View File

@ -50,7 +50,8 @@ spring:
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562 # jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题) # rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
# url: jdbc:mysql://localhost:3306/ry_flowable_plus?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true # url: jdbc:mysql://localhost:3306/ry_flowable_plus?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true
url: jdbc:mysql://192.168.137.20:3306/ry_flowable_plus?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true # url: jdbc:mysql://192.168.137.20:3306/ry_flowable_plus?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true
url: jdbc:mysql://10.168.1.206:3306/ry_flowable_plus?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true
username: remote username: remote
password: Tieth@121308 password: Tieth@121308
# 从库数据源 # 从库数据源
@ -59,7 +60,8 @@ spring:
type: ${spring.datasource.type} type: ${spring.datasource.type}
driverClassName: com.mysql.cj.jdbc.Driver driverClassName: com.mysql.cj.jdbc.Driver
# url: jdbc:mysql://localhost:3306/ry-ry_flowable_plus-plus?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true # url: jdbc:mysql://localhost:3306/ry-ry_flowable_plus-plus?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true
url: jdbc:mysql://192.168.137.20:3306/ry-ry_flowable_plus-plus?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true # url: jdbc:mysql://192.168.137.20:3306/ry-ry_flowable_plus-plus?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true
url: jdbc:mysql://10.168.1.206:3306/ry-ry_flowable_plus-plus?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true
username: remote username: remote
password: Tieth@121308 password: Tieth@121308
# oracle: # oracle:
@ -104,7 +106,8 @@ spring:
spring: spring:
redis: redis:
# 地址 # 地址
host: 192.168.137.20 # host: 192.168.137.20
host: 10.168.1.206
# 端口默认为6379 # 端口默认为6379
port: 6379 port: 6379
# 数据库索引 # 数据库索引

View File

@ -0,0 +1,17 @@
package net.ferrum.common.constant;
/**
* 业务常量
*
* @author 26554
* @version 1.0.0
* @since 2025/3/3
*/
public interface BusinessConstants {
/**
* 发布模板通知标题
*/
String NOTICE_TITLE = "新的模板已经通过审批,请尽快申领!";
}

View File

@ -0,0 +1,24 @@
package net.ferrum.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 通知类型
*
* @author 26554
* @version 1.0.0
* @since 2025/3/3
*/
@Getter
@AllArgsConstructor
public enum NoticeType {
NOTICE("1", "通知"),
ANNOUNCEMENT("2", "公告"),
DESIGN_PUBLISH("3", "规格设计发布"),
;
private final String type;
private final String info;
}

View File

@ -6,7 +6,9 @@ package net.ferrum.common.enums;
* @author ruoyi * @author ruoyi
*/ */
public enum UserStatus { public enum UserStatus {
OK("0", "正常"), DISABLE("1", "停用"), DELETED("2", "删除"); OK("0", "正常"),
DISABLE("1", "停用"),
DELETED("2", "删除");
private final String code; private final String code;
private final String info; private final String info;

View File

@ -2,9 +2,9 @@
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.ruoyi.generator.mapper.GenTableColumnMapper"> <mapper namespace="net.ferrum.generator.mapper.GenTableColumnMapper">
<resultMap type="GenTableColumn" id="GenTableColumnResult"> <resultMap type="net.ferrum.generator.domain.GenTableColumn" id="GenTableColumnResult">
<id property="columnId" column="column_id" /> <id property="columnId" column="column_id" />
<result property="tableId" column="table_id" /> <result property="tableId" column="table_id" />
<result property="columnName" column="column_name" /> <result property="columnName" column="column_name" />

View File

@ -2,9 +2,9 @@
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.ruoyi.generator.mapper.GenTableMapper"> <mapper namespace="net.ferrum.generator.mapper.GenTableMapper">
<resultMap type="GenTable" id="GenTableResult"> <resultMap type="net.ferrum.generator.domain.GenTable" id="GenTableResult">
<id property="tableId" column="table_id" /> <id property="tableId" column="table_id" />
<result property="tableName" column="table_name" /> <result property="tableName" column="table_name" />
<result property="tableComment" column="table_comment" /> <result property="tableComment" column="table_comment" />
@ -28,7 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<collection property="columns" javaType="java.util.List" resultMap="GenTableColumnResult" /> <collection property="columns" javaType="java.util.List" resultMap="GenTableColumnResult" />
</resultMap> </resultMap>
<resultMap type="GenTableColumn" id="GenTableColumnResult"> <resultMap type="net.ferrum.generator.domain.GenTableColumn" id="GenTableColumnResult">
<id property="columnId" column="column_id" /> <id property="columnId" column="column_id" />
<result property="tableId" column="table_id" /> <result property="tableId" column="table_id" />
<result property="columnName" column="column_name" /> <result property="columnName" column="column_name" />

View File

@ -0,0 +1,40 @@
package net.ferrum.business.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import net.ferrum.common.core.domain.BaseEntity;
/**
* 操作员操作记录对象 qs_operator_record
*
* @author 26554
* @date 2025-04-21
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("qs_operator_record")
public class QsOperatorRecord extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 记录Id
*/
@TableId(value = "id")
private Long id;
/**
* 操作员Id
*/
private Long operatorId;
/**
* 操作类型
*/
private Integer operation;
/**
* 对应样品模板
*/
private Long projectId;
}

View File

@ -0,0 +1,56 @@
package net.ferrum.business.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import net.ferrum.common.core.domain.BaseEntity;
/**
* 模板信息对象 qs_project
*
* @author 26554
* @date 2025-04-21
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("qs_project")
public class QsProject extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 模板Id
*/
@TableId(value = "id")
private Long id;
/**
* 模板信息
*/
private String projectInfo;
/**
* 对接人Id
*/
private Long dockerUserId;
/**
* 是否采用
*/
private String adoptFlag;
/**
* 设计生产数量
*/
private Integer designAmount;
/**
* 备注
*/
private String remark;
/**
* 逻辑删除标志
*/
@TableLogic
private String delFlag;
}

View File

@ -0,0 +1,55 @@
package net.ferrum.business.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import net.ferrum.common.core.domain.BaseEntity;
/**
* 供应商信息对象 qs_supplier
*
* @author 26554
* @version 1.0.0
* @since 2025/3/5
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("qs_supplier")
public class QsSupplier extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 供应商Id
*/
@TableId(value = "supplier_id")
private Long supplierId;
/**
* 供应商名称
*/
private String supplierName;
/**
* 供应商地址
*/
private String supplierAddress;
/**
* 供应商联系人
*/
private String supplierContact;
/**
* 供应商联系方式
*/
private String supplierContactNum;
/**
* 备注
*/
private String remark;
/**
* 逻辑删除标志
*/
@TableLogic
private String delFlag;
}

View File

@ -0,0 +1,34 @@
package net.ferrum.business.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 用户-供应商关系表
*
* @author 26554
* @version 1.0.0
* @since 2025-03-05
*/
@Data
@TableName("qs_user_supplier")
@NoArgsConstructor
@AllArgsConstructor
public class QsUserSupplier {
/**
* 用户主键
*/
@TableField
private Long userId;
/**
* 供应商主键
*/
@TableField
private Long supplierId;
}

View File

@ -0,0 +1,49 @@
package net.ferrum.business.domain.bo;
import net.ferrum.common.core.validate.AddGroup;
import net.ferrum.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import net.ferrum.common.core.domain.BaseEntity;
/**
* 操作员操作记录业务对象 qs_operator_record
*
* @author 26554
* @date 2025-04-21
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class QsOperatorRecordBo extends BaseEntity {
/**
* 记录Id
*/
@NotNull(message = "记录Id不能为空", groups = { EditGroup.class })
private Long id;
/**
* 操作员Id
*/
@NotNull(message = "操作员Id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long operatorId;
/**
* 操作类型
*/
@NotNull(message = "操作类型不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer operation;
/**
* 对应样品模板
*/
@NotNull(message = "对应样品模板不能为空", groups = { AddGroup.class, EditGroup.class })
private Long projectId;
}

View File

@ -0,0 +1,59 @@
package net.ferrum.business.domain.bo;
import net.ferrum.common.core.validate.AddGroup;
import net.ferrum.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import net.ferrum.common.core.domain.BaseEntity;
/**
* 模板信息业务对象 qs_project
*
* @author 26554
* @date 2025-04-21
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class QsProjectBo extends BaseEntity {
/**
* 模板Id
*/
@NotNull(message = "模板Id不能为空", groups = { EditGroup.class })
private Long id;
/**
* 模板信息
*/
private String projectInfo;
/**
* 对接人Id
*/
@NotNull(message = "对接人Id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long dockerUserId;
/**
* 是否采用
*/
@NotBlank(message = "是否采用不能为空", groups = { AddGroup.class, EditGroup.class })
private String adoptFlag;
/**
* 设计生产数量
*/
@NotNull(message = "设计生产数量不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer designAmount;
/**
* 备注
*/
private String remark;
}

View File

@ -0,0 +1,61 @@
package net.ferrum.business.domain.bo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import net.ferrum.common.core.domain.BaseEntity;
import net.ferrum.common.core.validate.AddGroup;
import net.ferrum.common.core.validate.EditGroup;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* 供应商信息业务对象 qs_supplier
*
* @author ferrum
* @version 1.0.0
* @since 2025/3/5
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class QsSupplierBo extends BaseEntity {
/**
* 供应商Id
*/
@NotNull(message = "供应商Id不能为空", groups = { EditGroup.class })
private Long supplierId;
/**
* 供应商名称
*/
@NotBlank(message = "供应商名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String supplierName;
/**
* 供应商地址
*/
//@NotBlank(message = "供应商地址不能为空", groups = { AddGroup.class, EditGroup.class })
private String supplierAddress;
/**
* 供应商联系人
*/
//@NotBlank(message = "供应商联系人不能为空", groups = { AddGroup.class, EditGroup.class })
private String supplierContact;
/**
* 供应商联系方式
*/
//@NotBlank(message = "供应商联系方式不能为空", groups = { AddGroup.class, EditGroup.class })
private String supplierContactNum;
/**
* 备注
*/
//@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String remark;
}

View File

@ -0,0 +1,49 @@
package net.ferrum.business.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import net.ferrum.common.annotation.ExcelDictFormat;
import net.ferrum.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;
/**
* 操作员操作记录视图对象 qs_operator_record
*
* @author 26554
* @date 2025-04-21
*/
@Data
@ExcelIgnoreUnannotated
public class QsOperatorRecordVo {
private static final long serialVersionUID = 1L;
/**
* 记录Id
*/
@ExcelProperty(value = "记录Id")
private Long id;
/**
* 操作员Id
*/
@ExcelProperty(value = "操作员Id")
private Long operatorId;
/**
* 操作类型
*/
@ExcelProperty(value = "操作类型")
private Integer operation;
/**
* 对应样品模板
*/
@ExcelProperty(value = "对应样品模板")
private Long projectId;
}

View File

@ -0,0 +1,61 @@
package net.ferrum.business.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import net.ferrum.common.annotation.ExcelDictFormat;
import net.ferrum.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;
/**
* 模板信息视图对象 qs_project
*
* @author 26554
* @date 2025-04-21
*/
@Data
@ExcelIgnoreUnannotated
public class QsProjectVo {
private static final long serialVersionUID = 1L;
/**
* 模板Id
*/
@ExcelProperty(value = "模板Id")
private Long id;
/**
* 模板信息
*/
@ExcelProperty(value = "模板信息")
private String projectInfo;
/**
* 对接人Id
*/
@ExcelProperty(value = "对接人Id")
private Long dockerUserId;
/**
* 是否采用
*/
@ExcelProperty(value = "是否采用")
private String adoptFlag;
/**
* 设计生产数量
*/
@ExcelProperty(value = "设计生产数量")
private Integer designAmount;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@ -0,0 +1,64 @@
package net.ferrum.business.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import net.ferrum.system.domain.vo.SysUserBasicInfoVo;
import java.io.Serializable;
import java.util.List;
/**
* 供应商信息视图对象 qs_supplier
*
* @author ferrum
* @version 1.0.0
* @since 2025/3/5
*/
@Data
@ExcelIgnoreUnannotated
public class QsSupplierVo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 供应商Id
*/
@ExcelProperty(value = "供应商Id")
private Long supplierId;
/**
* 供应商名称
*/
@ExcelProperty(value = "供应商名称")
private String supplierName;
/**
* 供应商地址
*/
@ExcelProperty(value = "供应商地址")
private String supplierAddress;
/**
* 供应商联系人
*/
@ExcelProperty(value = "供应商联系人")
private String supplierContact;
/**
* 供应商联系方式
*/
@ExcelProperty(value = "供应商联系方式")
private String supplierContactNum;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 对接人
*/
private List<SysUserBasicInfoVo> dockerUsers;
}

View File

@ -0,0 +1,15 @@
package net.ferrum.business.mapper;
import net.ferrum.business.domain.QsOperatorRecord;
import net.ferrum.business.domain.vo.QsOperatorRecordVo;
import net.ferrum.common.core.mapper.BaseMapperPlus;
/**
* 操作员操作记录Mapper接口
*
* @author 26554
* @date 2025-04-21
*/
public interface QsOperatorRecordMapper extends BaseMapperPlus<QsOperatorRecordMapper, QsOperatorRecord, QsOperatorRecordVo> {
}

View File

@ -0,0 +1,15 @@
package net.ferrum.business.mapper;
import net.ferrum.business.domain.QsProject;
import net.ferrum.business.domain.vo.QsProjectVo;
import net.ferrum.common.core.mapper.BaseMapperPlus;
/**
* 模板信息Mapper接口
*
* @author 26554
* @date 2025-04-21
*/
public interface QsProjectMapper extends BaseMapperPlus<QsProjectMapper, QsProject, QsProjectVo> {
}

View File

@ -0,0 +1,16 @@
package net.ferrum.business.mapper;
import net.ferrum.business.domain.QsSupplier;
import net.ferrum.business.domain.vo.QsSupplierVo;
import net.ferrum.common.core.mapper.BaseMapperPlus;
/**
* 供应商信息Mapper接口
*
* @author ferrum
* @version 1.0.0
* @since 2025-03-05
*/
public interface QsSupplierMapper extends BaseMapperPlus<QsSupplierMapper, QsSupplier, QsSupplierVo> {
}

View File

@ -0,0 +1,14 @@
package net.ferrum.business.mapper;
import net.ferrum.business.domain.QsUserSupplier;
import net.ferrum.common.core.mapper.BaseMapperPlus;
/**
* 用户-供应商关联表 数据层
*
* @author 26554
* @version 1.0.0
* @since 2025-03-05
*/
public interface QsUserSupplierMapper extends BaseMapperPlus<QsUserSupplierMapper, QsUserSupplier, QsUserSupplier> {
}

View File

@ -0,0 +1,48 @@
package net.ferrum.business.service;
import net.ferrum.business.domain.bo.QsOperatorRecordBo;
import net.ferrum.business.domain.vo.QsOperatorRecordVo;
import net.ferrum.common.core.domain.PageQuery;
import net.ferrum.common.core.page.TableDataInfo;
import java.util.Collection;
import java.util.List;
/**
* 操作员操作记录Service接口
*
* @author 26554
* @date 2025-04-21
*/
public interface IQsOperatorRecordService {
/**
* 查询操作员操作记录
*/
QsOperatorRecordVo queryById(Long id);
/**
* 查询操作员操作记录列表
*/
TableDataInfo<QsOperatorRecordVo> queryPageList(QsOperatorRecordBo bo, PageQuery pageQuery);
/**
* 查询操作员操作记录列表
*/
List<QsOperatorRecordVo> queryList(QsOperatorRecordBo bo);
/**
* 新增操作员操作记录
*/
Boolean insertByBo(QsOperatorRecordBo bo);
/**
* 修改操作员操作记录
*/
Boolean updateByBo(QsOperatorRecordBo bo);
/**
* 校验并批量删除操作员操作记录信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -0,0 +1,48 @@
package net.ferrum.business.service;
import net.ferrum.business.domain.bo.QsProjectBo;
import net.ferrum.business.domain.vo.QsProjectVo;
import net.ferrum.common.core.domain.PageQuery;
import net.ferrum.common.core.page.TableDataInfo;
import java.util.Collection;
import java.util.List;
/**
* 模板信息Service接口
*
* @author 26554
* @date 2025-04-21
*/
public interface IQsProjectService {
/**
* 查询模板信息
*/
QsProjectVo queryById(Long id);
/**
* 查询模板信息列表
*/
TableDataInfo<QsProjectVo> queryPageList(QsProjectBo bo, PageQuery pageQuery);
/**
* 查询模板信息列表
*/
List<QsProjectVo> queryList(QsProjectBo bo);
/**
* 新增模板信息
*/
Boolean insertByBo(QsProjectBo bo);
/**
* 修改模板信息
*/
Boolean updateByBo(QsProjectBo bo);
/**
* 校验并批量删除模板信息信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -0,0 +1,59 @@
package net.ferrum.business.service;
import net.ferrum.business.domain.bo.QsSupplierBo;
import net.ferrum.business.domain.vo.QsSupplierVo;
import net.ferrum.common.core.domain.PageQuery;
import net.ferrum.common.core.page.TableDataInfo;
import java.util.Collection;
import java.util.List;
/**
* 供应商信息Service接口
*
* @author ferrum
* @version 1.0.0
* @since 2025-03-05
*/
public interface IQsSupplierService {
/**
* 查询供应商信息
*/
QsSupplierVo queryById(Long supplierId);
/**
* 查询供应商信息列表
*/
TableDataInfo<QsSupplierVo> queryPageList(QsSupplierBo bo, PageQuery pageQuery);
/**
* 查询供应商信息列表
*/
List<QsSupplierVo> queryList(QsSupplierBo bo);
/**
* 新增供应商信息
*/
Boolean insertByBo(QsSupplierBo bo);
/**
* 修改供应商信息
*/
Boolean updateByBo(QsSupplierBo bo);
/**
* 校验并批量删除供应商信息信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 申领供应商
*/
Boolean claimSuppliers(Collection<Long> supplierIds, Long userId);
/**
* 分配供应商
*/
Boolean resignSuppliers(Collection<Long> userIds, Long supplierId);
}

View File

@ -0,0 +1,110 @@
package net.ferrum.business.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import net.ferrum.business.domain.QsOperatorRecord;
import net.ferrum.business.domain.bo.QsOperatorRecordBo;
import net.ferrum.business.domain.vo.QsOperatorRecordVo;
import net.ferrum.business.mapper.QsOperatorRecordMapper;
import net.ferrum.business.service.IQsOperatorRecordService;
import net.ferrum.common.core.domain.PageQuery;
import net.ferrum.common.core.page.TableDataInfo;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 操作员操作记录Service业务层处理
*
* @author 26554
* @date 2025-04-21
*/
@RequiredArgsConstructor
@Service
public class QsOperatorRecordServiceImpl implements IQsOperatorRecordService {
private final QsOperatorRecordMapper baseMapper;
/**
* 查询操作员操作记录
*/
@Override
public QsOperatorRecordVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 查询操作员操作记录列表
*/
@Override
public TableDataInfo<QsOperatorRecordVo> queryPageList(QsOperatorRecordBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<QsOperatorRecord> lqw = buildQueryWrapper(bo);
Page<QsOperatorRecordVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询操作员操作记录列表
*/
@Override
public List<QsOperatorRecordVo> queryList(QsOperatorRecordBo bo) {
LambdaQueryWrapper<QsOperatorRecord> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<QsOperatorRecord> buildQueryWrapper(QsOperatorRecordBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<QsOperatorRecord> lqw = Wrappers.lambdaQuery();
lqw.like(bo.getOperatorId() != null, QsOperatorRecord::getOperatorId, bo.getOperatorId());
lqw.eq(bo.getOperation() != null, QsOperatorRecord::getOperation, bo.getOperation());
lqw.like(bo.getProjectId() != null, QsOperatorRecord::getProjectId, bo.getProjectId());
return lqw;
}
/**
* 新增操作员操作记录
*/
@Override
public Boolean insertByBo(QsOperatorRecordBo bo) {
QsOperatorRecord add = BeanUtil.toBean(bo, QsOperatorRecord.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改操作员操作记录
*/
@Override
public Boolean updateByBo(QsOperatorRecordBo bo) {
QsOperatorRecord update = BeanUtil.toBean(bo, QsOperatorRecord.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(QsOperatorRecord entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除操作员操作记录
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@ -0,0 +1,112 @@
package net.ferrum.business.service.impl;
import cn.hutool.core.bean.BeanUtil;
import net.ferrum.common.utils.StringUtils;
import net.ferrum.common.core.page.TableDataInfo;
import net.ferrum.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import net.ferrum.business.domain.bo.QsProjectBo;
import net.ferrum.business.domain.vo.QsProjectVo;
import net.ferrum.business.domain.QsProject;
import net.ferrum.business.mapper.QsProjectMapper;
import net.ferrum.business.service.IQsProjectService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 模板信息Service业务层处理
*
* @author 26554
* @date 2025-04-21
*/
@RequiredArgsConstructor
@Service
public class QsProjectServiceImpl implements IQsProjectService {
private final QsProjectMapper baseMapper;
/**
* 查询模板信息
*/
@Override
public QsProjectVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 查询模板信息列表
*/
@Override
public TableDataInfo<QsProjectVo> queryPageList(QsProjectBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<QsProject> lqw = buildQueryWrapper(bo);
Page<QsProjectVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询模板信息列表
*/
@Override
public List<QsProjectVo> queryList(QsProjectBo bo) {
LambdaQueryWrapper<QsProject> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<QsProject> buildQueryWrapper(QsProjectBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<QsProject> lqw = Wrappers.lambdaQuery();
lqw.like(bo.getDockerUserId() != null, QsProject::getDockerUserId, bo.getDockerUserId());
lqw.eq(StringUtils.isNotBlank(bo.getAdoptFlag()), QsProject::getAdoptFlag, bo.getAdoptFlag());
lqw.between(params.get("beginDesignAmount") != null && params.get("endDesignAmount") != null,
QsProject::getDesignAmount ,params.get("beginDesignAmount"), params.get("endDesignAmount"));
return lqw;
}
/**
* 新增模板信息
*/
@Override
public Boolean insertByBo(QsProjectBo bo) {
QsProject add = BeanUtil.toBean(bo, QsProject.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改模板信息
*/
@Override
public Boolean updateByBo(QsProjectBo bo) {
QsProject update = BeanUtil.toBean(bo, QsProject.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(QsProject entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除模板信息
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@ -0,0 +1,157 @@
package net.ferrum.business.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.ferrum.business.domain.QsSupplier;
import net.ferrum.business.domain.QsUserSupplier;
import net.ferrum.business.domain.bo.QsSupplierBo;
import net.ferrum.business.domain.vo.QsSupplierVo;
import net.ferrum.business.mapper.QsSupplierMapper;
import net.ferrum.business.mapper.QsUserSupplierMapper;
import net.ferrum.business.service.IQsSupplierService;
import net.ferrum.common.core.domain.PageQuery;
import net.ferrum.common.core.page.TableDataInfo;
import net.ferrum.common.utils.StringUtils;
import net.ferrum.system.domain.vo.SysUserBasicInfoVo;
import net.ferrum.system.mapper.SysUserMapper;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 供应商信息Service业务层处理
*
* @author ferrum
* @version 1.0.0
* @since 2025-03-05
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class QsSupplierServiceImpl implements IQsSupplierService {
private final QsSupplierMapper supplierMapper;
private final QsUserSupplierMapper userSupplierMapper;
private final SysUserMapper userMapper;
/**
* 查询供应商信息
*/
@Override
public QsSupplierVo queryById(Long supplierId){
QsSupplierVo result = supplierMapper.selectVoById(supplierId);
List<QsUserSupplier> relations = userSupplierMapper.selectList(new LambdaQueryWrapper<QsUserSupplier>().eq(QsUserSupplier::getSupplierId, supplierId));
List<SysUserBasicInfoVo> userInfos = new ArrayList<>();
if (!CollectionUtils.isEmpty(relations)) {
relations.forEach(relation -> {
userInfos.add(userMapper.selectUserBasicInfoById(relation.getUserId()));
});
}
result.setDockerUsers(userInfos);
return result;
}
/**
* 查询供应商信息列表
*/
@Override
public TableDataInfo<QsSupplierVo> queryPageList(QsSupplierBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<QsSupplier> lqw = buildQueryWrapper(bo);
Page<QsSupplierVo> result = supplierMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询供应商信息列表
*/
@Override
public List<QsSupplierVo> queryList(QsSupplierBo bo) {
LambdaQueryWrapper<QsSupplier> lqw = buildQueryWrapper(bo);
return supplierMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<QsSupplier> buildQueryWrapper(QsSupplierBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<QsSupplier> lqw = Wrappers.lambdaQuery();
lqw.like(StringUtils.isNotBlank(bo.getSupplierName()), QsSupplier::getSupplierName, bo.getSupplierName());
lqw.like(StringUtils.isNotBlank(bo.getSupplierAddress()), QsSupplier::getSupplierAddress, bo.getSupplierAddress());
lqw.like(StringUtils.isNotBlank(bo.getSupplierContact()), QsSupplier::getSupplierContact, bo.getSupplierContact());
lqw.like(StringUtils.isNotBlank(bo.getSupplierContactNum()), QsSupplier::getSupplierContactNum, bo.getSupplierContactNum());
return lqw;
}
/**
* 新增供应商信息
*/
@Override
public Boolean insertByBo(QsSupplierBo bo) {
QsSupplier add = BeanUtil.toBean(bo, QsSupplier.class);
validEntityBeforeSave(add);
boolean flag = supplierMapper.insert(add) > 0;
if (flag) {
bo.setSupplierId(add.getSupplierId());
}
return flag;
}
/**
* 修改供应商信息
*/
@Override
public Boolean updateByBo(QsSupplierBo bo) {
QsSupplier update = BeanUtil.toBean(bo, QsSupplier.class);
validEntityBeforeSave(update);
return supplierMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(QsSupplier entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除供应商信息
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return supplierMapper.deleteBatchIds(ids) > 0;
}
/**
* 申领供应商
*
* @param supplierIds 供应商主键集合
* @param userId 当前登录用户Id
* @return 是否成功申领
*/
@Override
public Boolean claimSuppliers(Collection<Long> supplierIds, Long userId) {
List<QsUserSupplier> relations = new ArrayList<>(0);
supplierIds.forEach(id -> {
relations.add(new QsUserSupplier(userId, id));
});
return userSupplierMapper.insertBatch(relations);
}
@Override
public Boolean resignSuppliers(Collection<Long> userIds, Long supplierId) {
List<QsUserSupplier> relations = new ArrayList<>(0);
userIds.forEach(id -> {
relations.add(new QsUserSupplier(id, supplierId));
});
return userSupplierMapper.insertBatch(relations);
}
}

View File

@ -1,5 +1,6 @@
package net.ferrum.system.domain; package net.ferrum.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import net.ferrum.common.core.domain.BaseEntity; import net.ferrum.common.core.domain.BaseEntity;
@ -21,10 +22,11 @@ import javax.validation.constraints.Size;
@TableName("sys_notice") @TableName("sys_notice")
public class SysNotice extends BaseEntity { public class SysNotice extends BaseEntity {
private static final long serialVersionUID = 6332813813221195765L;
/** /**
* 公告ID * 公告ID
*/ */
@TableId(value = "notice_id") @TableId(value = "notice_id", type = IdType.AUTO)
private Long noticeId; private Long noticeId;
/** /**

View File

@ -0,0 +1,38 @@
package net.ferrum.system.domain.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 用户基础信息
*
* @author 26554
* @version 1.0.0
* @since 2025-03-18
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SysUserBasicInfoVo implements Serializable {
private static final long serialVersionUID = -5272592280264695130L;
/**
* 用户Id
*/
private Long userId;
/**
* 用户账号
*/
private String userName;
/**
* 用户昵称
*/
private String nickName;
}

View File

@ -7,6 +7,7 @@ import net.ferrum.common.annotation.DataColumn;
import net.ferrum.common.annotation.DataPermission; import net.ferrum.common.annotation.DataPermission;
import net.ferrum.common.core.domain.entity.SysUser; import net.ferrum.common.core.domain.entity.SysUser;
import net.ferrum.common.core.mapper.BaseMapperPlus; import net.ferrum.common.core.mapper.BaseMapperPlus;
import net.ferrum.system.domain.vo.SysUserBasicInfoVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -92,4 +93,10 @@ public interface SysUserMapper extends BaseMapperPlus<SysUserMapper, SysUser, Sy
*/ */
SysUser selectUserById(Long userId); SysUser selectUserById(Long userId);
/**
* 通过用户Id查询用户基本信息
* @param userId 用户Id
* @return 用户基本信息
*/
SysUserBasicInfoVo selectUserBasicInfoById(Long userId);
} }

View File

@ -2,18 +2,17 @@ package net.ferrum.workflow.listener;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.ferrum.flowable.utils.TaskUtils; import net.ferrum.common.constant.BusinessConstants;
import net.ferrum.common.enums.NoticeType;
import net.ferrum.common.utils.JsonUtils;
import net.ferrum.system.domain.SysNotice;
import net.ferrum.system.service.ISysNoticeService;
import net.ferrum.workflow.domain.vo.WfDetailVo;
import net.ferrum.workflow.service.IWfProcessService; import net.ferrum.workflow.service.IWfProcessService;
import org.flowable.engine.TaskService;
import org.flowable.engine.delegate.DelegateExecution; import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.delegate.ExecutionListener; import org.flowable.engine.delegate.ExecutionListener;
import org.flowable.task.api.Task;
import org.flowable.task.api.TaskQuery;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.lang.reflect.Field;
import java.util.List;
/** /**
* 发布规格事件监听类 * 发布规格事件监听类
* *
@ -28,29 +27,17 @@ import java.util.List;
public class PublishSpecificationListener implements ExecutionListener { public class PublishSpecificationListener implements ExecutionListener {
private final IWfProcessService processService; private final IWfProcessService processService;
private final TaskService taskService; private final ISysNoticeService noticeService;
@Override @Override
public void notify(DelegateExecution delegateExecution) { public void notify(DelegateExecution delegateExecution) {
TaskQuery taskQuery = taskService.createTaskQuery() WfDetailVo wfDetailVo = processService.queryProcessDetail(delegateExecution.getProcessInstanceId(), delegateExecution.getId());
.active() SysNotice notice = new SysNotice();
.includeProcessVariables() notice.setNoticeTitle(BusinessConstants.NOTICE_TITLE);
.taskCandidateOrAssigned(TaskUtils.getUserId()) notice.setNoticeType(NoticeType.DESIGN_PUBLISH.getType());
.taskCandidateGroupIn(TaskUtils.getCandidateGroup()) notice.setNoticeContent(JsonUtils.toJsonString(wfDetailVo.getProcessFormList()));
.processDefinitionId(delegateExecution.getProcessDefinitionId()) log.info("插入通知内容:{}", notice);
.orderByTaskCreateTime().desc(); noticeService.insertNotice(notice);
List<Task> taskList = taskQuery.list();
taskList.forEach(task -> {
Field[] fields = task.getClass().getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
try {
log.info("属性[{}]值为:{}", field.getName(), field.get(task));
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
});
} }

View File

@ -0,0 +1,65 @@
package net.ferrum.workflow.listener;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.ferrum.common.exception.ServiceException;
import net.ferrum.flowable.utils.TaskUtils;
import org.flowable.engine.TaskService;
import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.delegate.ExecutionListener;
import org.flowable.task.api.Task;
import org.flowable.task.api.TaskQuery;
import org.springframework.stereotype.Component;
import java.lang.reflect.Field;
/**
* 流程节点携带参数记录监听类
*
* @author 26554
* @version 1.0.0
* @since 2025/2/26
*/
@Slf4j
@Component("variablePublishListener")
@RequiredArgsConstructor
public class VariablePublishListener implements ExecutionListener {
private final TaskService taskService;
@Override
public void notify(DelegateExecution delegateExecution) {
TaskQuery taskQuery = taskService.createTaskQuery()
.active()
.includeProcessVariables()
.includeCaseVariables()
.includeTaskLocalVariables()
.taskCandidateOrAssigned(TaskUtils.getUserId())
.taskCandidateGroupIn(TaskUtils.getCandidateGroup())
.processDefinitionId(delegateExecution.getProcessDefinitionId())
.orderByTaskCreateTime().desc();
Task task = taskQuery.singleResult();
if (task == null) {
throw new ServiceException("任务没找到");
}
Field[] fields = delegateExecution.getClass().getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
try {
log.info("delegateExecution当前[{}]属性值为[{}]", field.getName(), field.get(delegateExecution));
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
Field[] fields1 = task.getClass().getDeclaredFields();
for (Field field : fields1) {
field.setAccessible(true);
try {
log.info("task当前[{}]属性值为[{}]", field.getName(), field.get(task));
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
}
}

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.ferrum.business.mapper.QsOperatorRecordMapper">
<resultMap type="net.ferrum.business.domain.QsOperatorRecord" id="QsOperatorRecordResult">
<result property="id" column="id"/>
<result property="operatorId" column="operator_id"/>
<result property="operation" column="operation"/>
<result property="projectId" column="project_id"/>
<result property="createTime" column="create_time"/>
</resultMap>
</mapper>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.ferrum.business.mapper.QsProjectMapper">
<resultMap type="net.ferrum.business.domain.QsProject" id="QsProjectResult">
<result property="id" column="id"/>
<result property="projectInfo" column="project_info"/>
<result property="dockerUserId" column="docker_user_id"/>
<result property="adoptFlag" column="adopt_flag"/>
<result property="designAmount" column="design_amount"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="remark" column="remark"/>
<result property="delFlag" column="del_flag"/>
</resultMap>
</mapper>

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.ferrum.business.mapper.QsSupplierMapper">
<resultMap type="net.ferrum.business.domain.QsSupplier" id="QsSupplierResult">
<result property="supplierId" column="supplier_id"/>
<result property="supplierName" column="supplier_name"/>
<result property="supplierAddress" column="supplier_address"/>
<result property="supplierContact" column="supplier_contact"/>
<result property="supplierContactNum" column="supplier_contact_num"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="remark" column="remark"/>
</resultMap>
</mapper>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.ferrum.business.mapper.QsUserSupplierMapper">
<resultMap type="net.ferrum.business.domain.QsUserSupplier" id="QsUserSupplierResult">
<result property="userId" column="user_id" />
<result property="supplierId" column="supplier_id" />
</resultMap>
</mapper>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.ferrum.system.mapper.SysUserMapper"> <mapper namespace="net.ferrum.system.mapper.SysUserMapper">
<resultMap type="net.ferrum.common.core.domain.entity.SysUser" id="SysUserResult"> <resultMap type="net.ferrum.common.core.domain.entity.SysUser" id="SysUserResult">
@ -24,11 +24,11 @@
<result property="updateBy" column="update_by"/> <result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/> <result property="updateTime" column="update_time"/>
<result property="remark" column="remark"/> <result property="remark" column="remark"/>
<association property="dept" column="dept_id" javaType="SysDept" resultMap="deptResult"/> <association property="dept" column="dept_id" javaType="net.ferrum.common.core.domain.entity.SysDept" resultMap="deptResult"/>
<collection property="roles" javaType="java.util.List" resultMap="RoleResult"/> <collection property="roles" javaType="java.util.List" resultMap="RoleResult"/>
</resultMap> </resultMap>
<resultMap id="deptResult" type="SysDept"> <resultMap id="deptResult" type="net.ferrum.common.core.domain.entity.SysDept">
<id property="deptId" column="dept_id"/> <id property="deptId" column="dept_id"/>
<result property="parentId" column="parent_id"/> <result property="parentId" column="parent_id"/>
<result property="deptName" column="dept_name"/> <result property="deptName" column="dept_name"/>
@ -38,7 +38,7 @@
<result property="status" column="dept_status"/> <result property="status" column="dept_status"/>
</resultMap> </resultMap>
<resultMap id="RoleResult" type="SysRole"> <resultMap id="RoleResult" type="net.ferrum.common.core.domain.entity.SysRole">
<id property="roleId" column="role_id"/> <id property="roleId" column="role_id"/>
<result property="roleName" column="role_name"/> <result property="roleName" column="role_name"/>
<result property="roleKey" column="role_key"/> <result property="roleKey" column="role_key"/>
@ -47,74 +47,89 @@
<result property="status" column="role_status"/> <result property="status" column="role_status"/>
</resultMap> </resultMap>
<resultMap id="SysUserBasicInfoResult" type="net.ferrum.system.domain.vo.SysUserBasicInfoVo">
<id property="userId" column="user_id"/>
<result property="userName" column="user_name"/>
<result property="nickName" column="nick_name"/>
</resultMap>
<sql id="selectUserVo"> <sql id="selectUserVo">
select u.user_id, select
u.dept_id, u.user_id,
u.user_name, u.dept_id,
u.nick_name, u.user_name,
u.user_type, u.nick_name,
u.email, u.user_type,
u.avatar, u.email,
u.phonenumber, u.avatar,
u.password, u.phonenumber,
u.sex, u.password,
u.status, u.sex,
u.del_flag, u.status,
u.login_ip, u.del_flag,
u.login_date, u.login_ip,
u.create_by, u.login_date,
u.create_time, u.create_by,
u.remark, u.create_time,
d.dept_id, u.remark,
d.parent_id, d.dept_id,
d.ancestors, d.parent_id,
d.dept_name, d.ancestors,
d.order_num, d.dept_name,
d.leader, d.order_num,
d.status as dept_status, d.leader,
r.role_id, d.status as dept_status,
r.role_name, r.role_id,
r.role_key, r.role_name,
r.role_sort, r.role_key,
r.data_scope, r.role_sort,
r.status as role_status r.data_scope,
r.status as role_status
from sys_user u
left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role sur on u.user_id = sur.user_id
left join sys_role r on r.role_id = sur.role_id
</sql>
<sql id="selectUserBasicInfo">
select
u.user_id,
u.user_name,
u.nick_name
from sys_user u from sys_user u
left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role sur on u.user_id = sur.user_id
left join sys_role r on r.role_id = sur.role_id
</sql> </sql>
<select id="selectPageUserList" resultMap="SysUserResult"> <select id="selectPageUserList" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader
from sys_user u from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
${ew.getCustomSqlSegment} ${ew.getCustomSqlSegment}
</select> </select>
<select id="selectUserList" resultMap="SysUserResult"> <select id="selectUserList" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader
from sys_user u from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
${ew.getCustomSqlSegment} ${ew.getCustomSqlSegment}
</select> </select>
<select id="selectAllocatedList" resultMap="SysUserResult"> <select id="selectAllocatedList" resultMap="SysUserResult">
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
from sys_user u from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role sur on u.user_id = sur.user_id left join sys_user_role sur on u.user_id = sur.user_id
left join sys_role r on r.role_id = sur.role_id left join sys_role r on r.role_id = sur.role_id
${ew.getCustomSqlSegment} ${ew.getCustomSqlSegment}
</select> </select>
<select id="selectUnallocatedList" resultMap="SysUserResult"> <select id="selectUnallocatedList" resultMap="SysUserResult">
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
from sys_user u from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role sur on u.user_id = sur.user_id left join sys_user_role sur on u.user_id = sur.user_id
left join sys_role r on r.role_id = sur.role_id left join sys_role r on r.role_id = sur.role_id
${ew.getCustomSqlSegment} ${ew.getCustomSqlSegment}
</select> </select>
@ -138,5 +153,10 @@
where u.del_flag = '0' and u.user_id = #{userId} where u.del_flag = '0' and u.user_id = #{userId}
</select> </select>
<select id="selectUserBasicInfoById" parameterType="Long" resultMap="SysUserBasicInfoResult">
<include refid="selectUserBasicInfo"/>
where u.del_flag = '0' and u.user_id = #{userId}
</select>
</mapper> </mapper>

View File

@ -0,0 +1,42 @@
use ry_flowable_plus;
create table if not exists `qs_supplier` (
`supplier_id` bigint NOT NULL COMMENT '供应商Id',
`supplier_name` varchar(100) COLLATE utf8mb4_bin NOT NULL COMMENT '供应商名称',
`supplier_address` varchar(1024) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '供应商地址',
`supplier_contact` varchar(30) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '供应商联系人',
`supplier_contact_num` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '供应商联系方式',
`create_by` varchar(64) COLLATE utf8mb4_bin DEFAULT '' COMMENT '创建人',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) COLLATE utf8mb4_bin DEFAULT '' COMMENT '更新人',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '备注',
`del_flag` char(1) COLLATE utf8mb4_bin NOT NULL DEFAULT '0' COMMENT '逻辑删除标志',
PRIMARY KEY (`supplier_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='供应商信息';
create table if not exists `qs_user_supplier` (
`user_id` bigint NOT NULL COMMENT '用户主键',
`supplier_id` bigint NOT NULL COMMENT '供应商主键',
PRIMARY KEY (`user_id`,`supplier_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='用户-供应商关联表';
create table if not exists qs_project(
id bigint not null comment '模板Id',
project_info longblob comment '模板信息',
docker_user_id bigint not null comment '对接人Id',
adopt_flag char(1) not null default '0' comment '是否采用',
design_amount int not null default 0 comment '设计生产数量',
create_by varchar(64) comment '创建人',
create_time datetime comment '创建时间',
update_by varchar(64) coment '更新人',
update_time datetime comment '更新时间',
remark varchar(500) comment '备注',
del_flag char(1) not null default '0' comment '逻辑删除标志',
primary key (id)
) comment '模板信息';
create table if not exists qs_operator_record(
id bigint not null comment '记录Id',
operator_id bigint not null comment '操作员Id',
operation tinyint not null comment '操作类型',
project_id bigint not null comment '对应样品模板',
create_time datetime not null comment '记录时间',
primary key (id)
) comment '操作员操作记录';