diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
index 62b8b194e..a06db83ad 100644
--- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
@@ -326,6 +326,10 @@ public enum ErrorCodeEnum {
TP_APPLY_AUDIT_COMPLETED(1810005, "该申请单已审批", null),
TP_EXISTS_PENDING_APPLY(1810006, "存在待审批的申请单", null),
TP_PENALTY_APPLY_APPEAL_COMPLETED(1810007, "该处罚单已完成复议", null),
+ TP_PENALTY_APPLY_EFFECTIVE(1810008, "该处罚单已生效", null),
+ TP_PENALTY_APPLY_UNABLE_ACCEPT(1810009, "该处罚单无法认缴", null),
+ TP_PENALTY_APPLY_INEFFECTIVE(1810010, "该处罚单未生效无法完成缴费", null),
+ TP_PENALTY_APPLY_NO_NEED_PAY(1810011, "该处罚单无需缴费", null),
;
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/tp/TpApplyFormDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/tp/TpApplyFormDAO.java
index cb5937e7a..32d681afa 100644
--- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/tp/TpApplyFormDAO.java
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/tp/TpApplyFormDAO.java
@@ -1,9 +1,11 @@
package com.cool.store.dao.tp;
+import cn.hutool.core.collection.CollStreamUtil;
import com.alibaba.excel.util.CollectionUtils;
import com.cool.store.entity.tp.TpApplyFormDO;
import com.cool.store.enums.tp.TpFormStatusEnum;
import com.cool.store.enums.tp.TpFormTypeEnum;
+import com.cool.store.enums.tp.TpPayStatusEnum;
import com.cool.store.mapper.tp.TpApplyFormMapper;
import com.cool.store.request.tp.TpApplyQueryRequest;
import lombok.RequiredArgsConstructor;
@@ -11,10 +13,7 @@ import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.entity.Example;
import java.time.LocalDate;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
/**
*
@@ -129,14 +128,47 @@ public class TpApplyFormDAO {
}
/**
- * 根据处罚单id查询申请单
+ * 根据处罚单id查询复议申请单
* @param penaltyId 处罚单id
* @return 申请单
*/
- public TpApplyFormDO getByPenaltyId(Long penaltyId) {
+ public TpApplyFormDO getAppealByPenaltyId(Long penaltyId) {
return tpApplyFormMapper.selectOne(TpApplyFormDO.builder().penaltyId(penaltyId).deleted(0).build());
}
+ /**
+ * 根据处罚单id列表查询申请单
+ * @param penaltyIds 处罚单id列表
+ * @return 申请单列表
+ */
+ public List getByPenaltyIds(List penaltyIds) {
+ if (CollectionUtils.isEmpty(penaltyIds)) {
+ return Collections.emptyList();
+ }
+ Example example = new Example(TpApplyFormDO.class);
+ example.createCriteria().andIn("penaltyId", penaltyIds).andEqualTo("deleted", 0);
+ return tpApplyFormMapper.selectByExample(example);
+ }
+
+ /**
+ * 过滤存在正在复议的申请单
+ * @param penaltyIds 处罚单id列表
+ * @return 存在复议的处罚单id列表
+ */
+ public Set filterExistAppeal(List penaltyIds) {
+ if (CollectionUtils.isEmpty(penaltyIds)) {
+ return Collections.emptySet();
+ }
+ Example example = new Example(TpApplyFormDO.class);
+ example.createCriteria().andIn("penaltyId", penaltyIds)
+ .andEqualTo("type", TpFormTypeEnum.APPEAL.getType())
+ .andEqualTo("status", TpFormStatusEnum.PENDING.getStatus())
+ .andEqualTo("deleted", 0);
+ example.selectProperties("penaltyId");
+ List list = tpApplyFormMapper.selectByExample(example);
+ return CollStreamUtil.toSet(list, TpApplyFormDO::getPenaltyId);
+ }
+
/**
* 根据id列表查询
*/
@@ -150,12 +182,41 @@ public class TpApplyFormDAO {
}
/**
- * 申请单作废
- * @param applyId 申请单id
+ * 修改申请单状态
*/
- public void cancelApply(Long applyId) {
+ public void updateStatus(Long applyId, TpFormStatusEnum status) {
Example example = new Example(TpApplyFormDO.class);
example.createCriteria().andEqualTo("id", applyId).andEqualTo("deleted", 0);
- tpApplyFormMapper.updateByExampleSelective(TpApplyFormDO.builder().status(TpFormStatusEnum.CANCEL.getStatus()).build(), example);
+ tpApplyFormMapper.updateByExampleSelective(TpApplyFormDO.builder().status(status.getStatus()).build(), example);
+ }
+
+ public void updateStatusBatch(List applyIds, TpFormStatusEnum status) {
+ if (CollectionUtils.isEmpty(applyIds)) {
+ return ;
+ }
+ Example example = new Example(TpApplyFormDO.class);
+ example.createCriteria().andIn("id", applyIds).andEqualTo("deleted", 0);
+ tpApplyFormMapper.updateByExampleSelective(TpApplyFormDO.builder().status(status.getStatus()).build(), example);
+ }
+
+ /**
+ * 修改缴费状态
+ */
+ public void updatePayStatus(Long applyId, TpPayStatusEnum payStatus) {
+ Example example = new Example(TpApplyFormDO.class);
+ example.createCriteria().andEqualTo("id", applyId).andEqualTo("deleted", 0);
+ tpApplyFormMapper.updateByExampleSelective(TpApplyFormDO.builder().payStatus(payStatus.getStatus()).build(), example);
+ }
+
+ /**
+ * 根据id删除
+ */
+ public void deleteByIds(List ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ Example example = new Example(TpApplyFormDO.class);
+ example.createCriteria().andIn("id", ids).andEqualTo("deleted", 0);
+ tpApplyFormMapper.updateByExampleSelective(TpApplyFormDO.builder().deleted(1).build(), example);
}
}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/tp/TpAuditRecordDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/tp/TpAuditRecordDAO.java
index 1c2dfaded..85d6a8b7b 100644
--- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/tp/TpAuditRecordDAO.java
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/tp/TpAuditRecordDAO.java
@@ -1,14 +1,18 @@
package com.cool.store.dao.tp;
+import com.alibaba.excel.util.CollectionUtils;
+import com.cool.store.constants.CommonConstants;
import com.cool.store.entity.tp.TpAuditRecordDO;
import com.cool.store.enums.ErrorCodeEnum;
+import com.cool.store.enums.OperationLogAuditEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.tp.TpAuditRecordMapper;
+import com.cool.store.response.AuditInfoResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
+import tk.mybatis.mapper.entity.Example;
-import java.util.Date;
-import java.util.Objects;
+import java.util.*;
/**
*
@@ -25,10 +29,11 @@ public class TpAuditRecordDAO {
/**
* 新增提交记录
- * @param applyId 申请单id
+ *
+ * @param applyId 申请单id
* @param applyType 单据类型,0加分单 1警告书 2处罚书
- * @param userId 申请人id
- * @param userName 申请人名称
+ * @param userId 申请人id
+ * @param userName 申请人名称
*/
public void addSubmitRecord(Long applyId, Integer applyType, String userId, String userName) {
Date now = new Date();
@@ -47,7 +52,8 @@ public class TpAuditRecordDAO {
/**
* 新增审批记录
- * @param applyId 申请单id
+ *
+ * @param applyId 申请单id
* @param applyType 单据类型,0加分单 1警告书 2处罚书
*/
public void addApproveRecord(Long applyId, Integer applyType) {
@@ -65,10 +71,11 @@ public class TpAuditRecordDAO {
/**
* 首次发起流程
- * @param applyId 申请单id
+ *
+ * @param applyId 申请单id
* @param applyType 单据类型,0加分单 1警告书 2处罚书
- * @param userId 申请人id
- * @param userName 申请人名称
+ * @param userId 申请人id
+ * @param userName 申请人名称
*/
public void addRecord(Long applyId, Integer applyType, String userId, String userName) {
addSubmitRecord(applyId, applyType, userId, userName);
@@ -77,7 +84,8 @@ public class TpAuditRecordDAO {
/**
* 根据申请单id查询待审批记录
- * @param applyId 申请单id
+ *
+ * @param applyId 申请单id
* @param applyType 单据类型,0加分单 1警告书 2处罚书
* @return 审批记录
*/
@@ -92,13 +100,14 @@ public class TpAuditRecordDAO {
/**
* 根据申请单id审批待处理的审批记录
- * @param applyId 申请单id
- * @param applyType 单据类型,0加分单 1警告书 2处罚书
- * @param userId 审批人id
- * @param userName 审批人名称
+ *
+ * @param applyId 申请单id
+ * @param applyType 单据类型,0加分单 1警告书 2处罚书
+ * @param userId 审批人id
+ * @param userName 审批人名称
* @param auditStatus 审批状态
- * @param remark 备注
- * @param auditTime 审批时间
+ * @param remark 备注
+ * @param auditTime 审批时间
*/
public void auditPendingRecordByApplyId(Long applyId, Integer applyType, String userId, String userName, Integer auditStatus, String remark, Date auditTime) {
TpAuditRecordDO auditRecordDO = getPendingRecordByApplyId(applyId, applyType);
@@ -119,4 +128,64 @@ public class TpAuditRecordDAO {
public void updateKeySelective(TpAuditRecordDO recordDO) {
tpAuditRecordMapper.updateByPrimaryKeySelective(recordDO);
}
+
+ /**
+ * 审批记录
+ * @param applyId 申请单id
+ * @return 审批记录列表
+ */
+ public List getAuditRecordList(Long applyId) {
+ Example example = new Example(TpAuditRecordDO.class);
+ example.createCriteria()
+ .andEqualTo("applyId", applyId)
+ .andEqualTo("deleted", 0);
+ example.setOrderByClause("createTime ASC");
+ List recordList = tpAuditRecordMapper.selectByExample(example);
+ List result = new ArrayList<>();
+ for (TpAuditRecordDO auditRecordDO : recordList) {
+ AuditInfoResponse response = AuditInfoResponse.builder()
+ .type(getAuditInfoType(auditRecordDO))
+ .execute(auditRecordDO.getRecordType() - 1)
+ .status(CommonConstants.INDEX_ZERO.equals(auditRecordDO.getAuditStatus()) ? 0 : 1)
+ .createTime(auditRecordDO.getReceiveTaskTime())
+ .remark(auditRecordDO.getRemark())
+ .actualUserId(auditRecordDO.getHandlerUserId())
+ .build();
+ List auditUserList = Collections.singletonList(
+ new AuditInfoResponse.AuditUserInfoVO(auditRecordDO.getHandlerUserId(), auditRecordDO.getHandlerUserName(), null)
+ );
+ response.setList(auditUserList);
+ result.add(response);
+ }
+ return result;
+ }
+
+ private Integer getAuditInfoType(TpAuditRecordDO auditRecordDO) {
+ if (CommonConstants.INDEX_ONE.equals(auditRecordDO.getRecordType())) {
+ return OperationLogAuditEnum.SUBMIT_AUDIT.getCode();
+ } else {
+ switch (auditRecordDO.getAuditStatus()) {
+ case 0:
+ return OperationLogAuditEnum.WAIT_AUDIT.getCode();
+ case 1:
+ return OperationLogAuditEnum.PASS.getCode();
+ case 2:
+ return OperationLogAuditEnum.REFUSE.getCode();
+ default:
+ return null;
+ }
+ }
+ }
+
+ /**
+ * 根据申请单id删除
+ */
+ public void deleteByApplyIds(List applyIds) {
+ if (CollectionUtils.isEmpty(applyIds)) {
+ return;
+ }
+ Example example = new Example(TpAuditRecordDO.class);
+ example.createCriteria().andIn("applyId", applyIds).andEqualTo("deleted", 0);
+ tpAuditRecordMapper.updateByExampleSelective(TpAuditRecordDO.builder().deleted(1).build(), example);
+ }
}
diff --git a/coolstore-partner-dao/src/main/resources/mapper/tp/TpApplyFormMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/tp/TpApplyFormMapper.xml
index 5a88744a9..acb5380f6 100644
--- a/coolstore-partner-dao/src/main/resources/mapper/tp/TpApplyFormMapper.xml
+++ b/coolstore-partner-dao/src/main/resources/mapper/tp/TpApplyFormMapper.xml
@@ -61,8 +61,11 @@
AND a.rule_id = #{ruleId}
-
- AND a.status = #{status}
+
+ AND a.status IN
+
+ #{status}
+
AND a.type = #{type}
@@ -83,6 +86,9 @@
AND b.appeal_reason LIKE CONCAT('%', #{appealReason}, '%')
+
+ AND b.is_draft = #{isDraft}
+
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/tp/TpApplyQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/tp/TpApplyQueryRequest.java
index f0bcb9eb6..627f1e26b 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/request/tp/TpApplyQueryRequest.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/tp/TpApplyQueryRequest.java
@@ -1,10 +1,15 @@
package com.cool.store.request.tp;
import com.cool.store.common.PageBasicInfo;
+import com.cool.store.constants.CommonConstants;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import org.apache.commons.lang3.StringUtils;
import java.math.BigDecimal;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
/**
*
@@ -28,9 +33,12 @@ public class TpApplyQueryRequest extends PageBasicInfo {
@ApiModelProperty("规则id")
private String ruleId;
- @ApiModelProperty("状态")
+ @ApiModelProperty("状态,可多选逗号隔开")
private String status;
+ @ApiModelProperty(value = "状态列表", hidden = true)
+ private List statusList;
+
@ApiModelProperty(value = "单据类型,0加分单 1警告书 2处罚书")
private Integer type;
@@ -45,4 +53,16 @@ public class TpApplyQueryRequest extends PageBasicInfo {
@ApiModelProperty("复议理由")
private String appealReason;
+
+ @ApiModelProperty("是否为草稿")
+ private Integer isDraft;
+
+ public List getStatusList() {
+ if (StringUtils.isNotBlank(this.status)) {
+ return null;
+ }
+ return Arrays.stream(this.status.split(CommonConstants.COMMA))
+ .filter(StringUtils::isNotBlank)
+ .collect(Collectors.toList());
+ }
}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/response/AuditInfoResponse.java b/coolstore-partner-model/src/main/java/com/cool/store/response/AuditInfoResponse.java
index 5872edb27..303c58d9e 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/response/AuditInfoResponse.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/response/AuditInfoResponse.java
@@ -17,6 +17,9 @@ import java.util.List;
* @注释:
*/
@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
public class AuditInfoResponse {
@ApiModelProperty("操作人集合")
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/tp/mini/MiniTpAppealVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/tp/mini/MiniTpAppealVO.java
new file mode 100644
index 000000000..6124d7b5b
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/tp/mini/MiniTpAppealVO.java
@@ -0,0 +1,38 @@
+package com.cool.store.vo.tp.mini;
+
+import com.cool.store.annotation.DictField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * Mini复议信息VO
+ *
+ *
+ * @author wangff
+ * @since 2025/11/10
+ */
+@Data
+public class MiniTpAppealVO {
+ @ApiModelProperty("id")
+ private Long id;
+
+ @ApiModelProperty("申请人姓名")
+ private String applicantName;
+
+ @ApiModelProperty("联系电话")
+ private String phone;
+
+ @ApiModelProperty("复议理由")
+ private String appealReason;
+
+ @ApiModelProperty("复议理由名称")
+ @DictField
+ private String appealReasonName;
+
+ @ApiModelProperty("复议详细理由")
+ private String appealDetailReason;
+
+ @ApiModelProperty("证明材料")
+ private String proofUrls;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/tp/mini/MiniTpApplyListVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/tp/mini/MiniTpApplyListVO.java
new file mode 100644
index 000000000..92aac1871
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/tp/mini/MiniTpApplyListVO.java
@@ -0,0 +1,61 @@
+package com.cool.store.vo.tp.mini;
+
+import com.cool.store.enums.tp.TpFormStatusEnum;
+import com.cool.store.enums.tp.TpFormTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ *
+ * Mini申请单列表VO
+ *
+ *
+ * @author wangff
+ * @since 2025/11/10
+ */
+@Data
+public class MiniTpApplyListVO {
+ @ApiModelProperty("id")
+ private Long id;
+
+ @ApiModelProperty("单据类型,0加分单 1警告书 2处罚书")
+ private Integer type;
+
+ @ApiModelProperty("单据类型名称")
+ private String typeName;
+
+ @ApiModelProperty("项目名称")
+ private String projectName;
+
+ @ApiModelProperty("创建时间")
+ private Date createTime;
+
+ @ApiModelProperty("分值")
+ private BigDecimal score;
+
+ @ApiModelProperty("金额")
+ private BigDecimal amount;
+
+ @ApiModelProperty("状态")
+ private String status;
+
+ @ApiModelProperty("状态名称")
+ private String statusName;
+
+ @ApiModelProperty("是否为草稿")
+ private Integer isDraft;
+
+ @ApiModelProperty("是否复议中")
+ private Integer isAppeal;
+
+ public String getTypeName() {
+ return TpFormTypeEnum.getMsgByType(this.type);
+ }
+
+ public String getStatusName() {
+ return TpFormStatusEnum.getMsgByStatus(this.status);
+ }
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/tp/mini/MiniTpPenaltyApplyVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/tp/mini/MiniTpPenaltyApplyVO.java
new file mode 100644
index 000000000..36a2a4c39
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/tp/mini/MiniTpPenaltyApplyVO.java
@@ -0,0 +1,76 @@
+package com.cool.store.vo.tp.mini;
+
+import com.cool.store.annotation.DictField;
+import com.cool.store.enums.tp.TpFormStatusEnum;
+import com.cool.store.enums.tp.TpPayStatusEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.Date;
+
+/**
+ *
+ * Mini惩处申请单详情VO
+ *
+ *
+ * @author wangff
+ * @since 2025/11/10
+ */
+@Data
+public class MiniTpPenaltyApplyVO {
+ @ApiModelProperty("id")
+ private Long id;
+
+ @ApiModelProperty("申请单号")
+ private String applyNo;
+
+ @ApiModelProperty("项目名称")
+ private String projectName;
+
+ @ApiModelProperty("项目大类")
+ private String projectCategory;
+
+ @ApiModelProperty("项目大类名称")
+ @DictField
+ private String projectCategoryName;
+
+ @ApiModelProperty("创建时间")
+ private Date createTime;
+
+ @ApiModelProperty("申请人名称")
+ private String applyUserName;
+
+ @ApiModelProperty("状态")
+ private String status;
+
+ @ApiModelProperty("缴费状态")
+ private Integer payStatus;
+
+ @ApiModelProperty("缴费状态名称")
+ private String payStatusName;
+
+ @ApiModelProperty("状态名称")
+ private String statusName;
+
+ @ApiModelProperty("分值")
+ private BigDecimal score;
+
+ @ApiModelProperty("复议截止日期")
+ private LocalDate appealEndDate;
+
+ @ApiModelProperty("证明图片列表")
+ private String proofUrls;
+
+ @ApiModelProperty("复议申请")
+ private MiniTpAppealVO appeal;
+
+ public String getStatusName() {
+ return TpFormStatusEnum.getMsgByStatus(this.status);
+ }
+
+ public String getPayStatusName() {
+ return TpPayStatusEnum.getMsgByStatus(this.payStatus);
+ }
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/tp/mini/MiniTpRewardApplyVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/tp/mini/MiniTpRewardApplyVO.java
new file mode 100644
index 000000000..99c309e7e
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/tp/mini/MiniTpRewardApplyVO.java
@@ -0,0 +1,55 @@
+package com.cool.store.vo.tp.mini;
+
+import com.cool.store.annotation.DictField;
+import com.cool.store.enums.tp.TpFormStatusEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ *
+ * Mini加分申请单详情VO
+ *
+ *
+ * @author wangff
+ * @since 2025/11/10
+ */
+@Data
+public class MiniTpRewardApplyVO {
+ @ApiModelProperty("id")
+ private Long id;
+
+ @ApiModelProperty("申请单号")
+ private String applyNo;
+
+ @ApiModelProperty("项目名称")
+ private String projectName;
+
+ @ApiModelProperty("项目大类")
+ private String projectCategory;
+
+ @ApiModelProperty("项目大类名称")
+ @DictField
+ private String projectCategoryName;
+
+ @ApiModelProperty("创建时间")
+ private Date createTime;
+
+ @ApiModelProperty("状态")
+ private String status;
+
+ @ApiModelProperty("状态名称")
+ private String statusName;
+
+ @ApiModelProperty("分值")
+ private BigDecimal score;
+
+ @ApiModelProperty("证明图片列表")
+ private String proofUrls;
+
+ public String getStatusName() {
+ return TpFormStatusEnum.getMsgByStatus(this.status);
+ }
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/tp/mini/MiniTpRuleListVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/tp/mini/MiniTpRuleListVO.java
new file mode 100644
index 000000000..c2ac09666
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/tp/mini/MiniTpRuleListVO.java
@@ -0,0 +1,53 @@
+package com.cool.store.vo.tp.mini;
+
+import com.cool.store.annotation.DictField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ *
+ * Mini奖惩规则列表VO
+ *
+ *
+ * @author wangff
+ * @since 2025/11/11
+ */
+@Data
+public class MiniTpRuleListVO {
+ @ApiModelProperty("id")
+ private Long id;
+
+ @ApiModelProperty("问题分类")
+ private String problemClassification;
+
+ @ApiModelProperty("问题分类名称")
+ @DictField
+ private String problemClassificationName;
+
+ @ApiModelProperty("项目大类")
+ private String projectCategory;
+
+ @ApiModelProperty("项目大类名称")
+ @DictField
+ private String projectCategoryName;
+
+ @ApiModelProperty("项目名称")
+ private String projectName;
+
+ @ApiModelProperty("警告上限次数")
+ private Integer warningLimit;
+
+ @ApiModelProperty("分值")
+ private BigDecimal score;
+
+ @ApiModelProperty("是否加满,0否 1是")
+ private Integer isFull;
+
+ @ApiModelProperty("金额")
+ private BigDecimal amount;
+
+ @ApiModelProperty("项目描述")
+ private String remark;
+}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/dict/impl/DictService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/dict/impl/DictService.java
index ee04a779b..906dca888 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/dict/impl/DictService.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/dict/impl/DictService.java
@@ -28,7 +28,11 @@ import java.util.concurrent.ConcurrentHashMap;
public class DictService {
private final SysDictColumnDAO columnDAO;
private final Map, List>> dictFieldCache = new ConcurrentHashMap<>();
+ private final Map, Field[]> fieldCache = new ConcurrentHashMap<>();
+ /**
+ * 填充字典字段
+ */
public void fillDictField(T obj) {
fillDictField(Collections.singletonList(obj));
}
@@ -41,12 +45,20 @@ public class DictService {
return;
}
Class> clazz = objs.get(0).getClass();
+ fillDictField(objs, clazz, new HashSet<>());
+ }
+
+ private void fillDictField(List objs, Class> clazz, Set