Commit eaa2b774 authored by 赵啸非's avatar 赵啸非

添加申诉统计业务

parent c6437a16
package com.mortals.xhx.common.code;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* @author: finegirl
* @date: 2021/7/16 11:50
* @description: //TODO 请完善注释信息
**/
public enum AppealStatTypeEnum {
申诉次数部门排名(1, "deptName"),
申诉次数个人排名(2, "staffName"),
申诉次数规则排名(3, "ruleName");
private int value;
private String desc;
private AppealStatTypeEnum(int value, String desc) {
this.value = value;
this.desc = desc;
}
public int getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static AppealStatTypeEnum getByValue(int value) {
AppealStatTypeEnum[] var1 = values();
int var2 = var1.length;
for(int var3 = 0; var3 < var2; ++var3) {
AppealStatTypeEnum examStatus = var1[var3];
if (examStatus.getValue() == value) {
return examStatus;
}
}
return null;
}
public static Map<String, String> getEnumMap(int... eItem) {
Map<String, String> resultMap = new LinkedHashMap();
AppealStatTypeEnum[] var2 = values();
int var3 = var2.length;
for(int var4 = 0; var4 < var3; ++var4) {
AppealStatTypeEnum item = var2[var4];
try {
boolean hasE = false;
int[] var7 = eItem;
int var8 = eItem.length;
for(int var9 = 0; var9 < var8; ++var9) {
int e = var7[var9];
if (item.getValue() == e) {
hasE = true;
break;
}
}
if (!hasE) {
resultMap.put(item.getValue() + "", item.getDesc());
}
} catch (Exception var11) {
}
}
return resultMap;
}
}
\ No newline at end of file
package com.mortals.xhx.module.perform.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.framework.model.PageInfo;
import com.mortals.xhx.module.perform.model.PerformAttendAppealEntity;
import com.mortals.xhx.module.perform.model.vo.AppealInfo;
import java.util.List;
/**
* 绩效记录申诉信息Dao
......@@ -13,5 +16,7 @@ import java.util.List;
public interface PerformAttendAppealDao extends ICRUDDao<PerformAttendAppealEntity,Long>{
String SQLID_GET_STATLIST = "getStatList";
List<AppealInfo> getStatList(PerformAttendAppealEntity query, PageInfo pageInfo);
}
package com.mortals.xhx.module.perform.dao.ibatis;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.ParamDto;
import com.mortals.xhx.module.perform.model.vo.AppealInfo;
import org.apache.ibatis.session.RowBounds;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.perform.dao.PerformAttendAppealDao;
import com.mortals.xhx.module.perform.model.PerformAttendAppealEntity;
......@@ -17,5 +21,14 @@ import java.util.List;
public class PerformAttendAppealDaoImpl extends BaseCRUDDaoMybatis<PerformAttendAppealEntity,Long> implements PerformAttendAppealDao {
@Override
public List<AppealInfo> getStatList(PerformAttendAppealEntity query, PageInfo pageInfo) {
ParamDto queryParam = super.getQueryParam(query);
if (pageInfo.getPrePageResult() == -1) {
return getSqlSession().selectList(SQLID_GET_STATLIST, queryParam);
} else {
RowBounds rowBounds = new RowBounds(pageInfo.getBeginIndex(), pageInfo.getPrePageResult());
return getSqlSession().selectList(SQLID_GET_STATLIST, queryParam, rowBounds);
}
}
}
package com.mortals.xhx.module.perform.model.vo;
import lombok.Data;
@Data
public class AppealInfo {
private String staffName;
private String deptName;
private String ruleName;
private Integer number;
}
......@@ -16,4 +16,13 @@ import java.util.Date;
@Data
public class PerformAttendAppealVo extends BaseEntityLong {
/**
* 时间
*/
private Date appealTimeStart;
/**
* 统计类型(1.申诉次数部门排名,2.申诉次数个人排名,3.申诉次数规则排名)
*/
private Integer statType;
}
\ No newline at end of file
......@@ -5,6 +5,9 @@ import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.perform.model.PerformAttendAppealEntity;
import com.mortals.xhx.module.perform.dao.PerformAttendAppealDao;
import com.mortals.xhx.module.perform.model.vo.AppealInfo;
import java.util.List;
/**
* PerformAttendAppealService
......@@ -21,4 +24,6 @@ public interface PerformAttendAppealService extends ICRUDService<PerformAttendAp
Rest<Void> audit(PerformAttendAppealEntity appeal, Context context);
Rest<List<AppealInfo>> stat(PerformAttendAppealEntity appeal, Context context);
}
\ No newline at end of file
package com.mortals.xhx.module.perform.service.impl;
import cn.hutool.core.date.DateUtil;
import com.mortals.framework.common.Rest;
import com.mortals.framework.model.OrderCol;
import com.mortals.framework.model.PageInfo;
import com.mortals.xhx.common.code.*;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.module.check.model.*;
import com.mortals.xhx.module.check.service.*;
import com.mortals.xhx.module.perform.model.PerformAttendAppealQuery;
import com.mortals.xhx.module.perform.model.vo.AppealInfo;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
......@@ -147,6 +152,30 @@ public class PerformAttendAppealServiceImpl extends AbstractCRUDServiceImpl<Perf
return Rest.ok();
}
@Override
public Rest<List<AppealInfo>> stat(PerformAttendAppealEntity appeal, Context context) {
PageInfo pageInfo = new PageInfo(20);
//统计
String groupName = AppealStatTypeEnum.getByValue(appeal.getStatType()).getDesc();
PerformAttendAppealQuery query = new PerformAttendAppealQuery();
if (ObjectUtils.isEmpty(appeal.getAppealTimeStart())) {
//未设置时间的情况,默认为当月
query.setCreateTimeStart(DateUtil.beginOfMonth(new Date()).toDateStr());
query.setCreateTimeEnd(DateUtil.today());
} else {
//格式化到指定日期的当月
query.setCreateTimeStart(DateUtil.beginOfMonth(appeal.getAppealTimeStart()).toDateStr());
query.setCreateTimeEnd(DateUtil.endOfMonth(appeal.getAppealTimeStart()).toDateStr());
}
query.setGroupList(Arrays.asList(groupName));
query.setOrderColList(Arrays.asList(new OrderCol("number", OrderCol.DESCENDING), new OrderCol("month", OrderCol.DESCENDING), new OrderCol("day", OrderCol.DESCENDING), new OrderCol("createTime")));
List<AppealInfo> statList = this.getDao().getStatList(query, pageInfo);
return Rest.ok(statList);
}
@Override
protected void saveAfter(PerformAttendAppealEntity entity, Context context) throws AppException {
......
......@@ -6,6 +6,7 @@ import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.common.code.EnabledEnum;
import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.module.perform.model.vo.AppealInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......@@ -65,6 +66,30 @@ public class PerformAttendAppealController extends BaseCRUDJsonBodyMappingContro
super.init(model, context);
}
/**
* 申诉统计
*/
@PostMapping(value = "stat")
public String appealStat(@RequestBody PerformAttendAppealEntity appeal) {
JSONObject jsonObject = new JSONObject();
String busiDesc = this.getModuleDesc() + "统计";
try {
Rest<List<AppealInfo>> rest = this.service.stat(appeal, getContext());
if (rest.getCode() == YesNoEnum.NO.getValue()) {
throw new AppException("统计异常!");
} else {
jsonObject.put(KEY_RESULT_DATA, rest.getData());
}
recordSysLog(request, busiDesc + " 【成功】");
jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
} catch (Exception e) {
log.error("申诉审核", e);
jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
jsonObject.put(KEY_RESULT_MSG, super.convertException(e));
}
return jsonObject.toJSONString();
}
/**
* 申诉审核
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.perform.dao.ibatis.PerformAttendAppealDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="com.mortals.xhx.module.perform.model.vo.AppealInfo" id="AppealInfo-Map">
<result property="staffName" column="staffName" />
<result property="deptName" column="deptName" />
<result property="ruleName" column="ruleName" />
<result property="number" column="number" />
</resultMap>
<!-- 获取统计列表 -->
<select id="getStatList" parameterType="paramDto" resultMap="AppealInfo-Map">
select
<!-- 获取分组字段 -->
<if test="groupList != null and !groupList.isEmpty()">
<foreach collection="groupList" open="" close="" index="index" item="item">
${item},
</foreach>
</if>
count(IFNULL(a.id,0)) number
from mortals_xhx_perform_attend_appeal as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
<include refid="_group_by_"/>
<include refid="_orderCols_"/>
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment