Merge #48 into master from cc_2021104_twelve_points

十二分优化

* cc_2021104_twelve_points: (53 commits squashed)

  - fix:启用禁用规则合并

  - Merge branch 'refs/heads/master' into cc_2021104_twelve_points

  - fix:惩处规则列表新增描述字段

  - fix:新增用户管辖门店列表接口

  - fix:门店列表接口新增门店积分字段

  - fix:查询问题修复;新增草稿状态

  - fix:申请单审批补充审批人字段

  - fix:修改门店积分限制0-12

  - fix:积分流水接口修复;申请单查询接口添加日期筛选

  - fix:惩处单查询提供惩处待处理、惩处已处理状态筛选

  - fix:惩处单复议申请查询异常修复

  - fix:小程序惩处单详情接口字段补充

  - fix:查询字段补充

  - fix

  - fix:转义

  - fix

  - fix:新增撤销复议申请单接口

  - fix:补充字段

  - fix:补充字段

  - fix:新增门店分数接口

  - fix:申请单新增筛选条件

  - fix:门店积分接口返回参数修改

  - fix:小程序规则分页查询接口改为Post

  - fix:问题修复

  - fix:十二分导入

  - fix:导入状态部分失败改为失败

  - fix:字段补充

  - fix:异步下Excel导入图片临时文件被清理的问题

  - fix:扣分申请导入图片路径修改并使用CDN

  - fix:导入图片上传oss文件类型修改为图片

  - fix:批量审批

  - fix:批量审批新增备注字段

  - fix:字段补充

  - Merge branch 'master' into cc_2021104_twelve_points
    
    # Conflicts:
    #	coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java
    #	coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
    #	coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreDao.java
    #	coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMapper.java
    #	coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml
    #	coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCStoreController.java

  - fix:字典项新增排序、编辑删除权限、关联字典项

  - Merge branch 'master' into cc_2021104_twelve_points

  - fix:十二分值-扣分列表申请复议截止日期格式

  - fix:去除appealEndDate格式校验

  - Merge remote-tracking branch 'origin/cc_20260128_dict_update' into cc_20260205_twelve_points_v2

  - Merge branch 'cc_20260128_dict_update' into cc_2021104_twelve_points

  - fix:字典回显包含已删除字典项

  - Merge branch 'master' into cc_2021104_twelve_points

  - Merge remote-tracking branch 'origin/cc_20260205_twelve_points_v2' into cc_2021104_twelve_points

  - fix:去除惩处单审批阶段;复议申请单证明图片非必填

  - fix:复议拒绝后惩处单直接生效

  - fix:扣分申请单证明图片改为非必填

  - fix

  - fix:字段转义

  - fix:惩处待处理包含带生效数据

  - fix:字段转义

  - fix:警告单金额和积分初始化为0

  - fix

  - fix:小程序接口字段转义

Signed-off-by: 王非凡 <accounts_67eba0c5fee9c49c80c8e2b4@mail.teambition.com>
Merged-by: 正新 <accounts_6964c7bcd2a2c377c5bbd01b@mail.teambition.com>

CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/48
This commit is contained in:
王非凡
2026-03-03 10:48:21 +00:00
committed by 正新
parent 64192e3a1d
commit 0da8efbeaa
21 changed files with 205 additions and 39 deletions

View File

@@ -64,12 +64,17 @@ public class DictColumnServiceImpl implements DictColumnService {
@Override
public DictColumnSimpleVO getColumnByColumnCode(String columnCode) {
SysDictColumnDO column = columnDAO.getOpenColumnByCode(columnCode);
SysDictTableDO table = tableDAO.getById(column.getDictTableId());
DictColumnSimpleVO vo = BeanUtil.toBean(column, DictColumnSimpleVO.class);
if (Objects.nonNull(table)) {
vo.setTableCode(table.getTableCode());
if (Objects.nonNull(column)) {
SysDictTableDO table = tableDAO.getById(column.getDictTableId());
DictColumnSimpleVO vo = BeanUtil.toBean(column, DictColumnSimpleVO.class);
if (Objects.nonNull(table)) {
vo.setTableCode(table.getTableCode());
}
Map<Long, List<DictColumnSimpleVO>> relationColumnMap = columnDAO.getRelationColumnMap(Collections.singletonList(column.getId()));
vo.setRelationColumns(relationColumnMap.get(column.getId()));
return vo;
}
return vo;
return null;
}
@Override

View File

@@ -71,7 +71,7 @@ public class DictService {
}
}
if (!columnCodes.isEmpty()) {
Map<String, String> nameMap = columnDAO.getNameMapByCodes(new ArrayList<>(columnCodes));
Map<String, String> nameMap = columnDAO.getNameMapIncludeDeleted(new ArrayList<>(columnCodes));
for (T obj : objs) {
for (Pair<Field, Field> dictField : dictFields) {
try {

View File

@@ -53,7 +53,8 @@ import javax.annotation.Resource;
import java.io.ByteArrayInputStream;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
@@ -156,7 +157,7 @@ public class TpApplyServiceImpl implements TpApplyService {
throw new ServiceException(ErrorCodeEnum.TP_EXISTS_PENDING_APPLY);
}
fillRuleFields(formDO);
formDO.setStatus(isDraft ? TpFormStatusEnum.DRAFT.getStatus() : TpFormStatusEnum.PENDING.getStatus());
formDO.setStatus(isDraft ? TpFormStatusEnum.DRAFT.getStatus() : TpFormStatusEnum.INEFFECTIVE.getStatus());
formDO.setApplyNo(Objects.isNull(request.getId()) ? TpHelper.generateApplyNo(formDO.getType()) : null);
tpApplyFormDAO.insertOrUpdate(formDO);
// 第一次提交后添加审批记录
@@ -233,14 +234,8 @@ public class TpApplyServiceImpl implements TpApplyService {
}
if (!isDraft) {
TpApplyFormDO appealFormDO = tpApplyFormDAO.getAppealByPenaltyId(request.getPenaltyId());
// 存在待审批或已审批的复议申请单
if (Objects.nonNull(appealFormDO)) {
if (TpFormStatusEnum.PENDING.getStatus().equals(appealFormDO.getStatus())) {
throw new ServiceException(ErrorCodeEnum.TP_EXISTS_PENDING_APPLY);
}
if (TpFormStatusEnum.PASS.getStatus().equals(appealFormDO.getStatus())) {
throw new ServiceException(ErrorCodeEnum.TP_PENALTY_APPLY_APPEAL_COMPLETED);
}
if (Objects.nonNull(appealFormDO) && CommonConstants.INDEX_ZERO.equals(appealFormDO.getIsDraft())) {
throw new ServiceException(ErrorCodeEnum.TP_EXISTS_APPEAL_FORM);
}
// 已生效的无法复议
if (TpFormStatusEnum.EFFECTIVE.getStatus().equals(penaltyFormDO.getStatus())) {
@@ -295,13 +290,14 @@ public class TpApplyServiceImpl implements TpApplyService {
}
@Override
@Transactional
public Boolean appealAudit(TpApplyAuditRequest request) {
TpApplyFormDO formDO = tpApplyFormDAO.getEffectiveById(request.getApplyId());
if (Objects.isNull(formDO) || !TpFormTypeEnum.APPEAL.getType().equals(formDO.getType())) {
throw new ServiceException(ErrorCodeEnum.TP_NOT_EXIST_APPLY_FORM);
}
if (!TpFormStatusEnum.PENDING.getStatus().equals(formDO.getStatus())) {
throw new ServiceException(ErrorCodeEnum.TP_APPLY_AUDIT_COMPLETED);
if (!TpFormStatusEnum.PENDING.getStatus().equals(formDO.getStatus()) && !TpFormStatusEnum.INEFFECTIVE.getStatus().equals(formDO.getStatus())) {
throw new ServiceException(ErrorCodeEnum.TP_FORM_ENABLE_APPEAL);
}
auditCommon(request, formDO);
return true;
@@ -328,6 +324,7 @@ public class TpApplyServiceImpl implements TpApplyService {
PageInfo<TpApplyFormDO> page = new PageInfo<>(list);
PageInfo<MiniTpApplyListVO> newPage = BeanUtil.toPage(page, MiniTpApplyListVO.class);
List<MiniTpApplyListVO> applyList = newPage.getList();
dictService.fillDictField(applyList);
if (Boolean.TRUE.equals(request.getIsPenalty()) && CollectionUtils.isNotEmpty(applyList)) {
List<Long> applyIds = CollStreamUtil.toList(applyList, MiniTpApplyListVO::getId);
Set<Long> existAppealSet = tpApplyFormDAO.filterExistAppeal(applyIds);
@@ -375,8 +372,7 @@ public class TpApplyServiceImpl implements TpApplyService {
if (Objects.isNull(formDO)) {
throw new ServiceException(ErrorCodeEnum.TP_NOT_EXIST_APPLY_FORM);
}
if (!TpFormStatusEnum.PASS.getStatus().equals(formDO.getStatus())) {
log.info("非审批通过状态无法认缴");
if (!TpFormStatusEnum.PASS.getStatus().equals(formDO.getStatus()) && !TpFormStatusEnum.INEFFECTIVE.getStatus().equals(formDO.getStatus())) {
throw new ServiceException(ErrorCodeEnum.TP_PENALTY_APPLY_UNABLE_ACCEPT);
}
tpApplyFormDAO.updateStatus(applyId, TpFormStatusEnum.EFFECTIVE);
@@ -416,7 +412,8 @@ public class TpApplyServiceImpl implements TpApplyService {
/**
* 审批通用方法
*/
private void auditCommon(TpApplyAuditRequest request, TpApplyFormDO formDO) {
@Transactional
public void auditCommon(TpApplyAuditRequest request, TpApplyFormDO formDO) {
Date now = new Date();
// 修改申请单审批数据
formDO.setStatus(CommonConstants.INDEX_ONE.equals(request.getAuditStatus()) ? TpFormStatusEnum.PASS.getStatus() : TpFormStatusEnum.REJECT.getStatus());
@@ -427,7 +424,7 @@ public class TpApplyServiceImpl implements TpApplyService {
// 处理审批记录
tpAuditRecordDAO.auditPendingRecordByApplyId(request.getApplyId(), formDO.getType(), user.getUserId(), user.getName(), request.getAuditStatus(), request.getRemark(), now);
if (TpFormTypeEnum.APPEAL.getType().equals(formDO.getType())) {
appealPassResolve(formDO);
appealResolve(formDO);
} else if (TpFormTypeEnum.REWARD.getType().equals(formDO.getType())) {
// 加分审批通过后门店积分变动
scoreChange(formDO);
@@ -435,12 +432,16 @@ public class TpApplyServiceImpl implements TpApplyService {
}
/**
* 复议申请通过时处罚单作废
* 复议申请审批完成处理
*/
private void appealPassResolve(TpApplyFormDO formDO) {
@Transactional
public void appealResolve(TpApplyFormDO formDO) {
if (TpFormStatusEnum.PASS.getStatus().equals(formDO.getStatus())) {
// 申诉通过后,处罚单失效
tpApplyFormDAO.updateStatus(formDO.getPenaltyId(), TpFormStatusEnum.CANCEL);
} else {
// 惩处单直接生效
acceptPenalty(formDO.getPenaltyId());
}
}
@@ -626,7 +627,8 @@ public class TpApplyServiceImpl implements TpApplyService {
// 扣分
if (CommonConstants.INDEX_ZERO.equals(ruleDO.getType())) {
if (Objects.isNull(formDO.getAppealEndDate())) {
formDO.setAppealEndDate(CoolDateUtils.localDate2Date(LocalDate.now().plusDays(ruleDO.getAppealDeadline())));
LocalDateTime appealEndDate = LocalDateTime.now().plusDays(ruleDO.getAppealDeadline());
formDO.setAppealEndDate(Date.from(appealEndDate.atZone(ZoneId.systemDefault()).toInstant()));
}
if (Objects.isNull(formDO.getType())) {
// 超过警告次数的为处罚单,否则警告单
@@ -634,8 +636,8 @@ public class TpApplyServiceImpl implements TpApplyService {
Integer type = ruleDO.getWarningLimit().compareTo(penaltyCount) <= 0 ? TpFormTypeEnum.PENALTY.getType() : TpFormTypeEnum.WARNING.getType();
formDO.setType(type);
if (TpFormTypeEnum.WARNING.getType().equals(type)) {
formDO.setAmount(null);
formDO.setScore(null);
formDO.setAmount(BigDecimal.ZERO);
formDO.setScore(BigDecimal.ZERO);
}
}
}