diff --git a/fw-morax-dao/src/main/java/cn/fw/morax/dao/kpi/KpiAssessDao.java b/fw-morax-dao/src/main/java/cn/fw/morax/dao/kpi/KpiAssessDao.java
new file mode 100644
index 0000000..cc528b4
--- /dev/null
+++ b/fw-morax-dao/src/main/java/cn/fw/morax/dao/kpi/KpiAssessDao.java
@@ -0,0 +1,17 @@
+package cn.fw.morax.dao.kpi;
+
+
+import cn.fw.morax.domain.db.kpi.KpiAssess;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 人员质量考核配置 Mapper 接口
+ *
+ *
+ * @author jiangchao
+ * @since 2023-03-17
+ */
+public interface KpiAssessDao extends BaseMapper {
+
+}
diff --git a/fw-morax-dao/src/main/java/cn/fw/morax/dao/kpi/KpiAssessDetailDao.java b/fw-morax-dao/src/main/java/cn/fw/morax/dao/kpi/KpiAssessDetailDao.java
new file mode 100644
index 0000000..3c5fbac
--- /dev/null
+++ b/fw-morax-dao/src/main/java/cn/fw/morax/dao/kpi/KpiAssessDetailDao.java
@@ -0,0 +1,17 @@
+package cn.fw.morax.dao.kpi;
+
+
+import cn.fw.morax.domain.db.kpi.KpiAssessDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 人员质量考核配置 Mapper 接口
+ *
+ *
+ * @author jiangchao
+ * @since 2023-03-17
+ */
+public interface KpiAssessDetailDao extends BaseMapper {
+
+}
diff --git a/fw-morax-dao/src/main/java/cn/fw/morax/dao/kpi/KpiAssessPenaltyDao.java b/fw-morax-dao/src/main/java/cn/fw/morax/dao/kpi/KpiAssessPenaltyDao.java
new file mode 100644
index 0000000..e821952
--- /dev/null
+++ b/fw-morax-dao/src/main/java/cn/fw/morax/dao/kpi/KpiAssessPenaltyDao.java
@@ -0,0 +1,17 @@
+package cn.fw.morax.dao.kpi;
+
+
+import cn.fw.morax.domain.db.kpi.KpiAssessPenalty;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 人员质量考核奖惩 Mapper 接口
+ *
+ *
+ * @author jiangchao
+ * @since 2023-03-17
+ */
+public interface KpiAssessPenaltyDao extends BaseMapper {
+
+}
diff --git a/fw-morax-dao/src/main/resources/mapper/kpi/KpiAssesPenaltyDao.xml b/fw-morax-dao/src/main/resources/mapper/kpi/KpiAssesPenaltyDao.xml
new file mode 100644
index 0000000..db07a05
--- /dev/null
+++ b/fw-morax-dao/src/main/resources/mapper/kpi/KpiAssesPenaltyDao.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/fw-morax-dao/src/main/resources/mapper/kpi/KpiAssessDao.xml b/fw-morax-dao/src/main/resources/mapper/kpi/KpiAssessDao.xml
new file mode 100644
index 0000000..5de3ce5
--- /dev/null
+++ b/fw-morax-dao/src/main/resources/mapper/kpi/KpiAssessDao.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/fw-morax-dao/src/main/resources/mapper/kpi/KpiAssessDetailDao.xml b/fw-morax-dao/src/main/resources/mapper/kpi/KpiAssessDetailDao.xml
new file mode 100644
index 0000000..e78269e
--- /dev/null
+++ b/fw-morax-dao/src/main/resources/mapper/kpi/KpiAssessDetailDao.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/kpi/KpiAssess.java b/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/kpi/KpiAssess.java
new file mode 100644
index 0000000..f380d7a
--- /dev/null
+++ b/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/kpi/KpiAssess.java
@@ -0,0 +1,65 @@
+package cn.fw.morax.domain.db.kpi;
+
+import cn.fw.common.data.entity.BaseAuditableEntity;
+import cn.fw.common.data.entity.BaseAuditableTimeEntity;
+import cn.fw.common.data.mybatis.handler.LongListTypeHandler;
+import cn.fw.common.data.mybatis.handler.StringListTypeHandler;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ *
+ * 人员质量考核配置
+ *
+ *
+ * @author jiangchao
+ * @since 2023-03-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class KpiAssess extends BaseAuditableEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 岗位id
+ */
+ private Long postId;
+ /**
+ * 岗位名称
+ */
+ private String postName;
+ /**
+ * 适用门店ids
+ */
+ @TableField(typeHandler = LongListTypeHandler.class)
+ private List shopIds;
+ /**
+ * 适用门店名称
+ */
+ @TableField(typeHandler = StringListTypeHandler.class)
+ private List shopNames;
+
+ /**
+ * 排名
+ */
+ private Integer rank;
+
+ /**
+ * 集团id
+ */
+ private Long groupId;
+
+ /**
+ * 逻辑删除
+ */
+ private Boolean yn;
+
+}
diff --git a/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/kpi/KpiAssessDetail.java b/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/kpi/KpiAssessDetail.java
new file mode 100644
index 0000000..2d89670
--- /dev/null
+++ b/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/kpi/KpiAssessDetail.java
@@ -0,0 +1,114 @@
+package cn.fw.morax.domain.db.kpi;
+
+import cn.fw.common.data.entity.BaseAuditableEntity;
+import cn.fw.common.data.entity.BaseAuditableTimeEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 人员质量考核配置
+ *
+ *
+ * @author jiangchao
+ * @since 2023-03-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class KpiAssessDetail extends BaseAuditableTimeEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 人员质量考核id
+ */
+ private Long kpiAssessId;
+
+ /**
+ * 考核角色编码
+ */
+ private String roleCodes;
+
+ /**
+ * 考核角色名称
+ */
+ private String roleNames;
+
+ /**
+ * 惩罚分
+ */
+ private BigDecimal penaltyScore;
+
+ /**
+ * 封顶单人惩罚分
+ */
+ private BigDecimal capPersonPenaltyScore;
+
+ /**
+ * 封顶惩罚分
+ */
+ private BigDecimal capPenaltyScore;
+
+ /**
+ * 惩罚奖励
+ */
+ private BigDecimal penaltyMoney;
+
+ /**
+ * 封顶单人惩罚奖励
+ */
+ private BigDecimal capPersonPenaltyMoney;
+
+ /**
+ * 封顶惩罚奖励
+ */
+ private BigDecimal capPenaltyMoney;
+
+ /**
+ * 奖励分数
+ */
+ private BigDecimal awardScore;
+
+ /**
+ * 封顶单人奖励分数
+ */
+ private BigDecimal capPersonAwardScore;
+
+ /**
+ * 封顶奖励分数
+ */
+ private BigDecimal capAwardScore;
+
+ /**
+ * 奖励金额
+ */
+ private BigDecimal awardMoney;
+
+ /**
+ * 封顶单人奖励金额
+ */
+ private BigDecimal capPersonAwardMoney;
+
+ /**
+ * 封顶奖励金额
+ */
+ private BigDecimal capAwardMoney;
+
+ /**
+ * 集团id
+ */
+ private Long groupId;
+
+ /**
+ * 逻辑删除
+ */
+ private Boolean yn;
+
+
+}
diff --git a/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/kpi/KpiAssessPenalty.java b/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/kpi/KpiAssessPenalty.java
new file mode 100644
index 0000000..9405a47
--- /dev/null
+++ b/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/kpi/KpiAssessPenalty.java
@@ -0,0 +1,107 @@
+package cn.fw.morax.domain.db.kpi;
+
+import cn.fw.common.data.entity.BaseAuditableTimeEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 人员质量考核奖惩
+ *
+ *
+ * @author jiangchao
+ * @since 2023-03-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class KpiAssessPenalty extends BaseAuditableTimeEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 绩效池id
+ */
+ private Long kpiPoolId;
+
+ /**
+ * 用户名
+ */
+ private String userName;
+
+ /**
+ * 用户id
+ */
+ private Long userId;
+
+ /**
+ * 评测用户id
+ */
+ private Long assessUserId;
+
+ /**
+ * 评测用户名
+ */
+ private String assessUserName;
+
+ /**
+ * 评测绩效池id
+ */
+ private Long assessKpiPoolId;
+
+ /**
+ * 排名
+ */
+ private Integer rank;
+
+ /**
+ * 目标排名
+ */
+ private Integer targetRank;
+
+ /**
+ * 奖惩绩效分
+ */
+ private BigDecimal score;
+
+ /**
+ * 奖惩金额
+ */
+ private BigDecimal award;
+
+ /**
+ * 状态 1. 待推送 2.已推送
+ */
+ private Integer status;
+
+ /**
+ * 月度
+ */
+ private String monthly;
+
+ /**
+ * 集团id
+ */
+ private Long groupId;
+
+ /**
+ * 逻辑删除
+ */
+ private Boolean yn;
+
+ /**
+ * 创建时间
+ */
+ private LocalDateTime createTime;
+
+ /**
+ * 更新时间
+ */
+ private LocalDateTime updateTime;
+
+
+}
diff --git a/fw-morax-server/src/main/java/cn/fw/morax/server/controller/erp/KpiAssessController.java b/fw-morax-server/src/main/java/cn/fw/morax/server/controller/erp/KpiAssessController.java
new file mode 100644
index 0000000..ce1a907
--- /dev/null
+++ b/fw-morax-server/src/main/java/cn/fw/morax/server/controller/erp/KpiAssessController.java
@@ -0,0 +1,28 @@
+package cn.fw.morax.server.controller.erp;
+
+import cn.fw.security.auth.client.annotation.Authorization;
+import cn.fw.security.auth.client.annotation.IgnoreAuth;
+import cn.fw.security.auth.client.enums.AuthType;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author jiangchao
+ * @des: 人员质量评测
+ * @date 2023/3/17 15:32
+ */
+@Slf4j
+@RequiredArgsConstructor
+@Authorization(AuthType.ERP)
+@Validated
+@IgnoreAuth
+@RestController
+@RequestMapping("/kpi/assess")
+public class KpiAssessController {
+
+
+
+}
diff --git a/fw-morax-service/src/main/java/cn/fw/morax/service/data/kpi/KpiAssessDetailService.java b/fw-morax-service/src/main/java/cn/fw/morax/service/data/kpi/KpiAssessDetailService.java
new file mode 100644
index 0000000..7de105c
--- /dev/null
+++ b/fw-morax-service/src/main/java/cn/fw/morax/service/data/kpi/KpiAssessDetailService.java
@@ -0,0 +1,9 @@
+package cn.fw.morax.service.data.kpi;
+
+import cn.fw.morax.domain.db.kpi.KpiAssessDetail;
+import cn.fw.morax.domain.db.kpi.KpiStarSpecialRule;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+public interface KpiAssessDetailService extends IService {
+
+}
diff --git a/fw-morax-service/src/main/java/cn/fw/morax/service/data/kpi/KpiAssessPenaltyService.java b/fw-morax-service/src/main/java/cn/fw/morax/service/data/kpi/KpiAssessPenaltyService.java
new file mode 100644
index 0000000..0fffe92
--- /dev/null
+++ b/fw-morax-service/src/main/java/cn/fw/morax/service/data/kpi/KpiAssessPenaltyService.java
@@ -0,0 +1,9 @@
+package cn.fw.morax.service.data.kpi;
+
+import cn.fw.morax.domain.db.kpi.KpiAssessPenalty;
+import cn.fw.morax.domain.db.kpi.KpiStarSpecialRule;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+public interface KpiAssessPenaltyService extends IService {
+
+}
diff --git a/fw-morax-service/src/main/java/cn/fw/morax/service/data/kpi/KpiAssessService.java b/fw-morax-service/src/main/java/cn/fw/morax/service/data/kpi/KpiAssessService.java
new file mode 100644
index 0000000..eeea30e
--- /dev/null
+++ b/fw-morax-service/src/main/java/cn/fw/morax/service/data/kpi/KpiAssessService.java
@@ -0,0 +1,9 @@
+package cn.fw.morax.service.data.kpi;
+
+import cn.fw.morax.domain.db.kpi.KpiAssess;
+import cn.fw.morax.domain.db.kpi.KpiStarSpecialRule;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+public interface KpiAssessService extends IService {
+
+}
diff --git a/fw-morax-service/src/main/java/cn/fw/morax/service/data/kpi/impl/KpiAssessDetailServiceImpl.java b/fw-morax-service/src/main/java/cn/fw/morax/service/data/kpi/impl/KpiAssessDetailServiceImpl.java
new file mode 100644
index 0000000..91a6e6e
--- /dev/null
+++ b/fw-morax-service/src/main/java/cn/fw/morax/service/data/kpi/impl/KpiAssessDetailServiceImpl.java
@@ -0,0 +1,19 @@
+package cn.fw.morax.service.data.kpi.impl;
+
+import cn.fw.morax.dao.kpi.KpiAssessDetailDao;
+import cn.fw.morax.dao.kpi.KpiStarRuleDao;
+import cn.fw.morax.domain.db.kpi.KpiAssessDetail;
+import cn.fw.morax.domain.db.kpi.KpiStarRule;
+import cn.fw.morax.service.data.kpi.KpiAssessDetailService;
+import cn.fw.morax.service.data.kpi.KpiStarRuleService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Service
+@Slf4j
+@AllArgsConstructor
+public class KpiAssessDetailServiceImpl extends ServiceImpl implements KpiAssessDetailService {
+
+}
diff --git a/fw-morax-service/src/main/java/cn/fw/morax/service/data/kpi/impl/KpiAssessPenaltyServiceImpl.java b/fw-morax-service/src/main/java/cn/fw/morax/service/data/kpi/impl/KpiAssessPenaltyServiceImpl.java
new file mode 100644
index 0000000..3f3b1e1
--- /dev/null
+++ b/fw-morax-service/src/main/java/cn/fw/morax/service/data/kpi/impl/KpiAssessPenaltyServiceImpl.java
@@ -0,0 +1,19 @@
+package cn.fw.morax.service.data.kpi.impl;
+
+import cn.fw.morax.dao.kpi.KpiAssessPenaltyDao;
+import cn.fw.morax.dao.kpi.KpiStarRuleDao;
+import cn.fw.morax.domain.db.kpi.KpiAssessPenalty;
+import cn.fw.morax.domain.db.kpi.KpiStarRule;
+import cn.fw.morax.service.data.kpi.KpiAssessPenaltyService;
+import cn.fw.morax.service.data.kpi.KpiStarRuleService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Service
+@Slf4j
+@AllArgsConstructor
+public class KpiAssessPenaltyServiceImpl extends ServiceImpl implements KpiAssessPenaltyService {
+
+}
diff --git a/fw-morax-service/src/main/java/cn/fw/morax/service/data/kpi/impl/KpiAssessServiceImpl.java b/fw-morax-service/src/main/java/cn/fw/morax/service/data/kpi/impl/KpiAssessServiceImpl.java
new file mode 100644
index 0000000..0b07a24
--- /dev/null
+++ b/fw-morax-service/src/main/java/cn/fw/morax/service/data/kpi/impl/KpiAssessServiceImpl.java
@@ -0,0 +1,19 @@
+package cn.fw.morax.service.data.kpi.impl;
+
+import cn.fw.morax.dao.kpi.KpiAssessDao;
+import cn.fw.morax.dao.kpi.KpiStarRuleDao;
+import cn.fw.morax.domain.db.kpi.KpiAssess;
+import cn.fw.morax.domain.db.kpi.KpiStarRule;
+import cn.fw.morax.service.data.kpi.KpiAssessService;
+import cn.fw.morax.service.data.kpi.KpiStarRuleService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Service
+@Slf4j
+@AllArgsConstructor
+public class KpiAssessServiceImpl extends ServiceImpl implements KpiAssessService {
+
+}