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:
@@ -382,6 +382,8 @@ public enum ErrorCodeEnum {
|
||||
TP_PENALTY_APPLY_NO_NEED_PAY(1810011, "该处罚单无需缴费", null),
|
||||
TP_EXIST_PENDING_IMPORT_TASK(1810012, "存在导入中的任务,请稍后再试", null),
|
||||
TP_NOT_EXIST_FORM_TYPE(1810013, "不存在该表单类型", null),
|
||||
TP_FORM_ENABLE_APPEAL(1810014, "该申请单无法复议", null),
|
||||
TP_EXISTS_APPEAL_FORM(1810015, "该申请单存在复议申请,无法重复发起", null),
|
||||
|
||||
VISIT_RECORD_NOT_EXIST(1820001, "拜访记录不存在", null),
|
||||
VISIT_RECORD_NOT_COMPLETE_EDIT(1820002, "未编辑拜访信息,无法签退", null),
|
||||
|
||||
@@ -19,6 +19,8 @@ public enum TpFormStatusEnum {
|
||||
PENDING("pending", "审批中"),
|
||||
PASS("pass", "审批通过"),
|
||||
REJECT("reject", "审批拒绝"),
|
||||
// 惩处单改为无需审批,中间状态为待生效
|
||||
INEFFECTIVE("ineffective", "待生效"),
|
||||
|
||||
EFFECTIVE("effective", "已生效"),
|
||||
CANCEL("cancel", "已作废"),
|
||||
|
||||
@@ -14,6 +14,8 @@ import org.apache.commons.collections4.MapUtils;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collector;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -44,6 +46,13 @@ public class SysDictColumnDAO {
|
||||
return sysDictColumnMapper.selectById(id);
|
||||
}
|
||||
|
||||
public List<SysDictColumnDO> getByIds(List<Long> ids) {
|
||||
if (CollectionUtils.isEmpty(ids)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return sysDictColumnMapper.selectByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据字典表id查询字典项数量
|
||||
*
|
||||
@@ -141,6 +150,19 @@ public class SysDictColumnDAO {
|
||||
return CollStreamUtil.toMap(list, SysDictColumnDO::getColumnCode, SysDictColumnDO::getColumnName);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据字典列编码查询字典项名称映射包含已删除字典项
|
||||
* @param columnCodes 字典列编码列表
|
||||
* @return <字典列编码, 字典项名称>
|
||||
*/
|
||||
public Map<String, String> getNameMapIncludeDeleted(List<String> columnCodes) {
|
||||
if (CollectionUtils.isEmpty(columnCodes)) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
List<SysDictColumnDO> list = sysDictColumnMapper.selectColumnByCodesIncludeDeleted(columnCodes);
|
||||
return CollStreamUtil.toMap(list, SysDictColumnDO::getColumnCode, SysDictColumnDO::getColumnName);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据字典表编码查询启用状态的字典项
|
||||
* @param tableCodes 字典表编码列表
|
||||
@@ -154,10 +176,37 @@ public class SysDictColumnDAO {
|
||||
List<Long> tableIds = CollStreamUtil.toList(tableList, SysDictTableDO::getId);
|
||||
List<SysDictColumnDO> columnList = sysDictColumnMapper.selectOpenColumnListByTableIds(tableIds);
|
||||
Map<Long, String> tableCodeMap = CollStreamUtil.toMap(tableList, SysDictTableDO::getId, SysDictTableDO::getTableCode);
|
||||
return CollStreamUtil.toList(columnList, v -> {
|
||||
DictColumnSimpleVO vo = BeanUtil.toBean(v, DictColumnSimpleVO.class);
|
||||
vo.setTableCode(tableCodeMap.get(v.getDictTableId()));
|
||||
return vo;
|
||||
});
|
||||
return CollStreamUtil.toList(columnList, v -> DictColumnSimpleVO.of(v, tableCodeMap.get(v.getDictTableId())));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取字典项关联字典项列表映射
|
||||
* @param columnIds 字典项id列表
|
||||
* @return 关联字典项分组
|
||||
*/
|
||||
public Map<Long, List<DictColumnSimpleVO>> getRelationColumnMap(List<Long> columnIds) {
|
||||
if (CollectionUtils.isEmpty(columnIds)) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
List<Map<String, Object>> list = sysDictColumnMapper.getRelationColumnIds(columnIds);
|
||||
Set<Long> relationIds = CollStreamUtil.toSet(list, v -> MapUtils.getLong(v, "relation_id"));
|
||||
List<SysDictColumnDO> columnList = getByIds(new ArrayList<>(relationIds));
|
||||
Map<Long, SysDictColumnDO> columnMap = CollStreamUtil.toMap(columnList, SysDictColumnDO::getId, v -> v);
|
||||
return CollStreamUtil.groupBy(list,
|
||||
v -> MapUtils.getLong(v, "column_id"),
|
||||
Collector.of(
|
||||
ArrayList::new,
|
||||
(acc, row) -> {
|
||||
SysDictColumnDO col = columnMap.get(MapUtils.getLong(row, "relation_id"));
|
||||
if (col != null) {
|
||||
acc.add(DictColumnSimpleVO.of(col, null));
|
||||
}
|
||||
},
|
||||
(left, right) -> {
|
||||
left.addAll(right);
|
||||
return left;
|
||||
}
|
||||
));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,6 +56,8 @@ public interface SysDictColumnMapper {
|
||||
*/
|
||||
SysDictColumnDO selectById(@Param("id") Long id);
|
||||
|
||||
List<SysDictColumnDO> selectByIds(@Param("ids") List<Long> ids);
|
||||
|
||||
/**
|
||||
* 根据字典表id查询字典项数量
|
||||
* @param tableIds 字典表id列表
|
||||
@@ -102,10 +104,24 @@ public interface SysDictColumnMapper {
|
||||
*/
|
||||
List<SysDictColumnDO> selectOpenColumnByCodes(@Param("columnCodes") List<String> columnCodes);
|
||||
|
||||
/**
|
||||
* 根据字典项编码查询包含已删除的字典项
|
||||
* @param columnCodes 字典项编码列表
|
||||
* @return 字典项列表
|
||||
*/
|
||||
List<SysDictColumnDO> selectColumnByCodesIncludeDeleted(@Param("columnCodes") List<String> columnCodes);
|
||||
|
||||
/**
|
||||
* 根据字典表id查询
|
||||
* @param tableIds 字典表id列表
|
||||
* @return 字典项列表
|
||||
*/
|
||||
List<SysDictColumnDO> selectOpenColumnListByTableIds(@Param("tableIds") List<Long> tableIds);
|
||||
|
||||
/**
|
||||
* 获取字典项关联的字典项id
|
||||
* @param columnIds 字典项id列表
|
||||
* @return <字典项id, 字典项id>
|
||||
*/
|
||||
List<Map<String, Object>> getRelationColumnIds(@Param("columnIds") List<Long> columnIds);
|
||||
}
|
||||
@@ -14,10 +14,12 @@
|
||||
<result column="update_user_id" jdbcType="VARCHAR" property="updateUserId" />
|
||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
|
||||
<result column="auth_flag" jdbcType="INTEGER" property="authFlag" />
|
||||
<result column="sort_num" jdbcType="INTEGER" property="sortNum" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
id, dict_group_id, dict_table_id, column_name, column_code, open_status, remark,
|
||||
deleted, create_user_id, update_user_id, create_time, update_time
|
||||
deleted, create_user_id, update_user_id, create_time, update_time, auth_flag, sort_num
|
||||
</sql>
|
||||
<insert id="insertSelective" keyColumn="id" keyProperty="record.id" useGeneratedKeys="true">
|
||||
insert into sys_dict_column_${enterpriseId}
|
||||
@@ -178,7 +180,7 @@
|
||||
<if test="dto.remark != null and dto.remark != ''">
|
||||
AND remark LIKE CONCAT('%', #{dto.remark}, '%')
|
||||
</if>
|
||||
ORDER BY create_time ASC
|
||||
ORDER BY sort_num ASC
|
||||
</where>
|
||||
</select>
|
||||
|
||||
@@ -188,6 +190,18 @@
|
||||
WHERE id = #{id} AND deleted = 0 LIMIT 1
|
||||
</select>
|
||||
|
||||
<select id="selectByIds" resultMap="BaseResultMap">
|
||||
SELECT <include refid="Base_Column_List"/>
|
||||
FROM sys_dict_column_${enterpriseId}
|
||||
<where>
|
||||
id IN
|
||||
<foreach item="id" collection="ids" separator="," open="(" close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
AND deleted = 0
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectColumnNumByTableIds" resultType="java.util.Map">
|
||||
SELECT COUNT(*) num, dict_table_id
|
||||
FROM sys_dict_column_${enterpriseId}
|
||||
@@ -257,6 +271,15 @@
|
||||
AND deleted = 0 AND open_status = 1
|
||||
</select>
|
||||
|
||||
<select id="selectColumnByCodesIncludeDeleted" resultMap="BaseResultMap">
|
||||
SELECT <include refid="Base_Column_List"/>
|
||||
FROM sys_dict_column_${enterpriseId}
|
||||
WHERE column_code IN
|
||||
<foreach collection="columnCodes" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
<select id="selectOpenColumnListByTableIds" resultMap="BaseResultMap">
|
||||
SELECT <include refid="Base_Column_List"/>
|
||||
FROM sys_dict_column_${enterpriseId}
|
||||
@@ -266,4 +289,13 @@
|
||||
</foreach>
|
||||
AND deleted = 0 AND open_status = 1
|
||||
</select>
|
||||
|
||||
<select id="getRelationColumnIds" resultType="java.util.Map">
|
||||
SELECT column_id, relation_id
|
||||
FROM sys_dict_column_relation_${enterpriseId}
|
||||
WHERE column_id IN
|
||||
<foreach item="columnId" collection="columnIds" separator="," open="(" close=")">
|
||||
#{columnId}
|
||||
</foreach>
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -18,7 +18,7 @@
|
||||
<result column="score" jdbcType="DECIMAL" property="score" />
|
||||
<result column="remark" jdbcType="VARCHAR" property="remark" />
|
||||
<result column="amount" jdbcType="DECIMAL" property="amount" />
|
||||
<result column="appeal_end_date" jdbcType="DATE" property="appealEndDate" />
|
||||
<result column="appeal_end_date" jdbcType="TIMESTAMP" property="appealEndDate" />
|
||||
<result column="status" jdbcType="VARCHAR" property="status" />
|
||||
<result column="pay_status" jdbcType="BIT" property="payStatus" />
|
||||
<result column="is_draft" jdbcType="BIT" property="isDraft" />
|
||||
@@ -107,7 +107,7 @@
|
||||
AND a.create_time <= #{endTime}
|
||||
</if>
|
||||
<if test="penaltyStatus != null and penaltyStatus == 1">
|
||||
AND a.status = 'pass' AND (a.pay_status = 0 OR a.pay_status = 1)
|
||||
AND (a.status = 'pass' OR a.status = 'ineffective') AND (a.pay_status = 0 OR a.pay_status = 1)
|
||||
</if>
|
||||
<if test="penaltyStatus != null and penaltyStatus == 2">
|
||||
AND (a.status = 'effective' AND (a.pay_status = 0 OR a.pay_status = 2) OR a.status = 'cancel')
|
||||
|
||||
@@ -39,6 +39,12 @@ public class SysDictColumnDO implements Serializable {
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("权限标志, 使用二进制,&1不允许编辑 &2不允许删除")
|
||||
private Integer authFlag;
|
||||
|
||||
@ApiModelProperty("排序编号")
|
||||
private Integer sortNum;
|
||||
|
||||
@ApiModelProperty("删除标识")
|
||||
private Boolean deleted;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.cool.store.entity.tp;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.cool.store.request.tp;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
@@ -46,7 +47,6 @@ public class TpApplyRequest {
|
||||
private String applyUserName;
|
||||
|
||||
@ApiModelProperty("证明图片列表,逗号隔开")
|
||||
@NotBlank(message = "证明图片列表不能为空")
|
||||
private String proofUrls;
|
||||
|
||||
@ApiModelProperty("分值")
|
||||
@@ -55,6 +55,6 @@ public class TpApplyRequest {
|
||||
@ApiModelProperty("金额")
|
||||
private BigDecimal amount;
|
||||
|
||||
@ApiModelProperty("申请复议截止日期,yyyy-MM-dd")
|
||||
@ApiModelProperty("申请复议截止日期,yyyy-MM-dd HH:mm:ss")
|
||||
private Date appealEndDate;
|
||||
}
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
package com.cool.store.vo.dict;
|
||||
|
||||
import com.cool.store.entity.dict.SysDictColumnDO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 字典项简单信息VO
|
||||
@@ -21,4 +24,15 @@ public class DictColumnSimpleVO {
|
||||
|
||||
@ApiModelProperty("字典表编码")
|
||||
private String tableCode;
|
||||
|
||||
@ApiModelProperty("关联项")
|
||||
private List<DictColumnSimpleVO> relationColumns;
|
||||
|
||||
public static DictColumnSimpleVO of(SysDictColumnDO columnDO, String tableCode) {
|
||||
DictColumnSimpleVO vo = new DictColumnSimpleVO();
|
||||
vo.setColumnName(columnDO.getColumnName());
|
||||
vo.setColumnCode(columnDO.getColumnCode());
|
||||
vo.setTableCode(tableCode);
|
||||
return vo;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,4 +53,10 @@ public class DictColumnVO {
|
||||
|
||||
@ApiModelProperty("更新时间")
|
||||
private Date updateTime;
|
||||
|
||||
@ApiModelProperty("权限标志, 使用二进制,&1不允许编辑 &2不允许删除")
|
||||
private Integer authFlag;
|
||||
|
||||
@ApiModelProperty("排序编号")
|
||||
private Integer sortNum;
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.cool.store.vo.tp;
|
||||
import com.cool.store.annotation.DictField;
|
||||
import com.cool.store.enums.tp.TpFormStatusEnum;
|
||||
import com.cool.store.enums.tp.TpFormTypeEnum;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -53,6 +54,10 @@ public class TpPenaltyApplyDetailVO {
|
||||
@ApiModelProperty("项目名称")
|
||||
private String projectName;
|
||||
|
||||
@ApiModelProperty("项目名称")
|
||||
@DictField
|
||||
private String projectNameName;
|
||||
|
||||
@ApiModelProperty("分值")
|
||||
private BigDecimal score;
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.cool.store.vo.tp;
|
||||
|
||||
import com.cool.store.annotation.DictField;
|
||||
import com.cool.store.enums.tp.TpFormTypeEnum;
|
||||
import com.cool.store.enums.tp.TpPayStatusEnum;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
@@ -37,6 +38,10 @@ public class TpPenaltyApplyListVO extends TpApplyListBaseVO {
|
||||
@ApiModelProperty("缴费状态名称")
|
||||
private String payStatusName;
|
||||
|
||||
@ApiModelProperty("项目名称")
|
||||
@DictField
|
||||
private String projectNameName;
|
||||
|
||||
public String getTypeName() {
|
||||
return TpFormTypeEnum.getMsgByType(this.type);
|
||||
}
|
||||
|
||||
@@ -39,6 +39,10 @@ public class TpPenaltyRuleDetailVO {
|
||||
@ApiModelProperty("惩处项目名称")
|
||||
private String projectName;
|
||||
|
||||
@ApiModelProperty("项目名称")
|
||||
@DictField
|
||||
private String projectNameName;
|
||||
|
||||
@ApiModelProperty("警告上限次数")
|
||||
private Integer warningLimit;
|
||||
|
||||
|
||||
@@ -39,6 +39,10 @@ public class TpPenaltyRuleListVO {
|
||||
@ApiModelProperty("惩处项目名称")
|
||||
private String projectName;
|
||||
|
||||
@ApiModelProperty("项目名称")
|
||||
@DictField
|
||||
private String projectNameName;
|
||||
|
||||
@ApiModelProperty("警告上限次数")
|
||||
private Integer warningLimit;
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
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.TpFormTypeEnum;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
@@ -30,6 +31,10 @@ public class MiniTpApplyListVO {
|
||||
@ApiModelProperty("项目名称")
|
||||
private String projectName;
|
||||
|
||||
@ApiModelProperty("项目名称")
|
||||
@DictField
|
||||
private String projectNameName;
|
||||
|
||||
@ApiModelProperty("创建时间")
|
||||
private Date createTime;
|
||||
|
||||
|
||||
@@ -3,11 +3,11 @@ 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 com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
@@ -29,6 +29,10 @@ public class MiniTpPenaltyApplyVO {
|
||||
@ApiModelProperty("项目名称")
|
||||
private String projectName;
|
||||
|
||||
@ApiModelProperty("项目名称")
|
||||
@DictField
|
||||
private String projectNameName;
|
||||
|
||||
@ApiModelProperty("项目大类")
|
||||
private String projectCategory;
|
||||
|
||||
|
||||
@@ -36,6 +36,10 @@ public class MiniTpRuleListVO {
|
||||
@ApiModelProperty("项目名称")
|
||||
private String projectName;
|
||||
|
||||
@ApiModelProperty("项目名称")
|
||||
@DictField
|
||||
private String projectNameName;
|
||||
|
||||
@ApiModelProperty("警告上限次数")
|
||||
private Integer warningLimit;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user