Commit 61669359 authored by 廖旭伟's avatar 廖旭伟

Merge remote-tracking branch 'origin/master'

parents 165c662d 40f95244
......@@ -35,13 +35,13 @@
</ul>
</div>
<div class="controllBar">
<!-- <div class="controllBar">
<el-badge :value="12" class="item">
<i class="el-icon-bell" style="font-size: 15px;margin-right: 10px">
消息</i
>
</el-badge>
</div>
</div> -->
<div class="controllBar" @click="returnHome">
<i class="el-icon-s-home" style="font-size: 15px;margin-right: 10px">
首页</i
......
......@@ -39,6 +39,16 @@
>核查</el-button
>
<span>&nbsp;</span>
<el-button
v-if="chuli"
type="text"
icon="el-icon-edit"
size="mini"
@click="$emit('edit', row)"
title="处理"
>处理</el-button
>
<span>&nbsp;</span>
<Confirm @confirm="$emit('del', row.id)" message="确定要删除该条记录吗?">
<el-button
v-if="!noDel"
......@@ -72,6 +82,10 @@ export default {
type: Boolean,
default: false,
},
chuli: {
type: Boolean,
default: false,
},
switchBtn: {
type: Boolean,
default: false,
......
......@@ -260,11 +260,11 @@ export default {
i.remark = i.field
i.questionType = formType(i.type)
i.require = formatNum(i.$required)
i.content = i.info || ''
i.content = i.title
if (formType(i.type) == 1 || formType(i.type) == 2) {
i.options.forEach(j => {
j.content = j.value
j.remark = j.label
j.content = j.label
j.remark = j.value
})
}
if (formType(i.type) == 1 || formType(i.type) == 2) {
......
......@@ -50,7 +50,9 @@
}}</el-col
>
<el-col :span="9"
>异常结果:{{ form.errorTime ? form.errorTime : "--" }}</el-col
>异常结果:{{
form.errorResult ? form.errorResult : "--"
}}</el-col
>
<el-col :span="5"
>扣分方式:{{ form.subMethod ? form.subMethod : "--" }}</el-col
......@@ -81,7 +83,9 @@
>绩效规则:{{ form.ruleName ? form.ruleName : "--" }}</el-col
>
<el-col :span="8"
>加分/扣除分值:{{ form.score ? form.score : "--" }}</el-col
>加分/扣除分值:<span style="color:#ff0000">{{
form.score ? form.score : "--"
}}</span></el-col
>
</el-row>
<el-row>
......@@ -104,20 +108,78 @@
<div class="content">
<el-row>
<el-col :span="24"
>申诉说明:{{
form.appealDesc ? form.appealDesc : "--"
}}</el-col
>申诉说明:{{ form.appealDesc ? form.appealDesc : "--" }}</el-col
>
<el-col :span="24"
>申诉时间:{{ form.appealTime ? form.appealTime : "--" }}</el-col
>
<el-col :span="24"
>申诉附件:{{ form.performAttendAppealFilesList ? form.performAttendAppealFilesList : "--" }}</el-col
>申诉附件:
<span v-if="!form.performAttendAppealFilesList">
--
</span>
<div class="img_content" v-else>
<div
class="imgBox"
v-for="val in form.performAttendAppealFilesList"
:key="val.id"
@click="hanldeDownloadFile(val)"
>
<img src="../../../../assets/images/fileImg.png" alt="" />
{{ val.fileName }}
</div>
</div>
</el-col>
</el-row>
</div>
</div>
<div class="box" v-if="form.view == '查看' || form.processStatus == 2">
<div class="title">申诉结果</div>
<div class="content">
<el-row>
<el-col :span="8"
>申诉结果:{{
form.appealResult ? form.appealResult : "--"
}}</el-col
>
<el-col :span="8"
>处理人员:{{
form.updateUserId ? form.updateUserId : "--"
}}</el-col
>
<el-col :span="8"
>处理时间:{{ form.appealTime ? form.appealTime : "--" }}</el-col
>
</el-row>
<el-row>
<el-col :span="24"
>说明:{{ form.remark ? form.remark : "--" }}</el-col
>
</el-row>
</div>
</div>
<div class="box"></div>
<div class="box" v-else>
<div class="title">申诉结果</div>
<div class="content">
<el-row>
<el-col :span="24">
<el-form-item label="申诉结果:">
<el-radio-group v-model="form.appealResult">
<el-radio :label="1">通过</el-radio>
<el-radio :label="2">不通过</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="说明:">
<el-input type="textarea" v-model="form.remark"></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</div>
<form-buttons
@submit="submitForm"
v-if="pageInfo.type != 'view'"
......@@ -393,6 +455,9 @@
<script>
import form from "@/assets/mixins/formdialog";
import { timestampToTime } from "@/assets/utils/dateFormat.js";
import { downloadFile } from "@/assets/utils/index";
export default {
name: "PerformAttendAppealDetail",
mixins: [form],
......@@ -433,6 +498,26 @@ export default {
},
methods: {
// 下载附件
hanldeDownloadFile(val) {
console.log(val);
downloadFile(val.filePath, val.fileName);
},
picMatter(val) {
if (val || val !== "--") {
return (
<el-image
src={val.indexOf("http") == -1 ? this.baseUrl + val : val}
preview-src-list={
val.indexOf("http") == -1 ? this.baseUrl + val : val
}
style="width: 100px"
></el-image>
);
} else {
return val;
}
},
/** 绩效记录申诉附件信息序号 */
rowPerformAttendAppealFilesIndex({ row, rowIndex }) {
row.index = rowIndex + 1;
......@@ -472,9 +557,8 @@ export default {
},
// 渲染前置处理
beforeRender(data) {
if (data.entity.performAttendAppealFilesList) {
this.performAttendAppealFilesList =
data.entity.performAttendAppealFilesList;
if (data.performAttendAppealFilesList) {
this.performAttendAppealFilesList = data.performAttendAppealFilesList;
}
return data;
},
......@@ -482,10 +566,47 @@ export default {
edit(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "perform/attend/appeal/edit";
this.getData();
// this.urls.currUrl = "/perform/attend/appeal/info";
// this.getData();
this.$get("/perform/attend/appeal/info", { id: row.id }).then((res) => {
if (res.code == 1) {
this.form = res.data;
} else {
this.reset();
}
for (let key in this.form) {
key == "actualAttendTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "attendanceDate"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "createTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "errorTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "updateTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "checkTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "reviewTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "appealTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "complainTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "happenTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "alarmTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "alarmTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: "";
}
this.form.appealResult = "";
this.form.remark = "";
this.open = true;
});
this.pageInfo.type = "edit";
this.title = "修改绩效记录申诉信息";
this.title = "处理绩效记录申诉信息";
},
/** 新增 */
add(row) {
......@@ -501,6 +622,7 @@ export default {
this.query = { id: row.id };
this.urls.currUrl = "perform/attend/appeal/view";
this.getData();
this.form.view = "查看";
this.pageInfo.type = "view";
this.title = "绩效记录申诉信息详细";
},
......@@ -603,6 +725,27 @@ export default {
/deep/.el-row {
margin-bottom: 20px;
}
.img_content {
width: 100%;
height: auto;
display: flex;
flex-wrap: wrap;
padding: 10px 0 0 10px;
}
.imgBox {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 60px;
height: 80px;
cursor: pointer;
img {
width: 50px;
height: 50px;
margin-top: 10px;
}
}
}
}
}
......
......@@ -13,8 +13,17 @@
<div class="content">
<div class="search_box">
<div class="search">
<el-select v-model="dateValue" placeholder="请选择" style="margin: 0 10px;">
<el-option v-for="item in optionsMonths" :key="item.value" :label="item.label" :value="item.value">
<el-select
v-model="dateValue"
placeholder="请选择"
style="margin: 0 10px;"
>
<el-option
v-for="item in optionsMonths"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<el-button type="primary">搜索</el-button>
......@@ -23,17 +32,29 @@
<div class="data_box">
<div class="top">
<div class="box">
<bar-charts :title="'申诉次数部门排名TOP20'" :id="'dept_20'" :legendName="'申诉次数'"
:styleObj="{ width: '800px', height: '360px' }" />
<bar-charts
:title="'申诉次数部门排名TOP20'"
:id="'dept_20'"
:legendName="'申诉次数'"
:styleObj="{ width: '800px', height: '360px' }"
/>
</div>
<div class="box">
<bar-charts :title="'申诉次数个人排名TOP20'" :id="'person_20'" :legendName="'申诉次数'"
:styleObj="{ width: '800px', height: '360px' }" />
<bar-charts
:title="'申诉次数个人排名TOP20'"
:id="'person_20'"
:legendName="'申诉次数'"
:styleObj="{ width: '800px', height: '360px' }"
/>
</div>
</div>
<div class="down">
<bar-charts :title="'申诉次数规则排名TOP20'" :id="'rule_20'" :legendName="'申诉次数'"
:styleObj="{ width: '1800px', height: '320px' }" />
<bar-charts
:title="'申诉次数规则排名TOP20'"
:id="'rule_20'"
:legendName="'申诉次数'"
:styleObj="{ width: '1800px', height: '320px' }"
/>
</div>
</div>
</div>
......@@ -197,7 +218,7 @@ export default {
{
label: "操作",
formatter: (row) => {
return (
return row.processStatus == 2 ? (
<table-buttons
noAdd
noDel
......@@ -207,74 +228,27 @@ export default {
onView={this.toView}
onDel={this.toDel}
/>
) : (
<table-buttons
noAdd
noDel
noView
noEdit
chuli
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
},
},
],
},
activeName: "1",
optionsMonths: [
{
value: "2023-01-00 00:00:00",
label: "1月",
},
{
value: "2023-02-00 00:00:00",
label: "2月",
},
{
value: "2023-03-00 00:00:00",
label: "3月",
},
{
value: "2023-04-00 00:00:00",
label: "4月",
},
{
value: "2023-05-00 00:00:00",
label: "5月",
},
{
value: "2023-06-00 00:00:00",
label: "6月",
},
{
value: "2023-07-00 00:00:00",
label: "7月",
},
{
value: "2023-08-00 00:00:00",
label: "8月",
},
{
value: "2023-09-00 00:00:00",
label: "9月",
},
{
value: "2023-10-00 00:00:00",
label: "10月",
},
{
value: "2023-11-00 00:00:00",
label: "11月",
},
{
value: "2023-12-00 00:00:00",
label: "12月",
},
],
dateValue: '2023-01-00 00:00:00',
dateValue: "2023-01-00 00:00:00",
};
},
mounted() {
// this.$post('/perform/attend/appeal/stat', { appealTimeStart: this.dateValue }).then(res => {
// console.log(res)
// })
},
methods: {
}
};
</script>
<style lang="less" scoped>
......
......@@ -657,7 +657,7 @@ export default {
box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.117647058823529);
-moz-box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.117647058823529);
-webkit-box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.117647058823529);
margin: 0 20px 20px 0;
margin: 10px 20px 20px 10px;
padding: 20px;
.goal_title {
width: 100%;
......
......@@ -182,7 +182,6 @@ public class FeedbackApiController extends AbstractBaseController<FeedbackReq> {
model.put(PAGEINFO_KEY, pageInfo);
}
public static void main(String[] args) {
}
......
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
......@@ -11,7 +11,8 @@ import java.util.Map;
public enum SubMethodEnum {
系统自动(1, "系统自动"),
人工添加(2, "人工添加"),
大厅巡查(3, "大厅巡查");
大厅巡查(3, "大厅巡查"),
申诉冲销(4, "申诉冲销");
private Integer value;
private String desc;
......
......@@ -110,7 +110,7 @@ public class CheckAttendRecordEntity extends CheckAttendRecordVo {
*/
private Integer checkStatus;
/**
* 扣分方式(1.系统自动,2.人工添加,3.大厅巡查)
* 扣分方式(1.系统自动,2.人工添加,3.大厅巡查,4.申诉冲销)
*/
private Integer subMethod;
/**
......
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;
}
package com.mortals.xhx.module.perform.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.perform.model.PerformAttendAppealEntity;
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
import com.mortals.framework.annotation.Excel;
import java.math.BigDecimal;
import java.util.Date;
/**
* 绩效记录申诉信息视图对象
......@@ -16,4 +13,13 @@ import java.util.Date;
@Data
public class PerformAttendAppealVo extends BaseEntityLong {
/**
* 时间
*/
private String appealTimeStart;
/**
* 统计类型(1.申诉次数部门排名,2.申诉次数个人排名,3.申诉次数规则排名)
*/
private Integer statType;
}
\ No newline at end of file
package com.mortals.xhx.module.perform.service;
import com.mortals.framework.common.Rest;
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
*
* 绩效记录申诉信息 service接口
*
* @author zxfei
* @date 2023-07-12
*/
public interface PerformAttendAppealService extends ICRUDService<PerformAttendAppealEntity,Long>{
* PerformAttendAppealService
* <p>
* 绩效记录申诉信息 service接口
*
* @author zxfei
* @date 2023-07-12
*/
public interface PerformAttendAppealService extends ICRUDService<PerformAttendAppealEntity, Long> {
PerformAttendAppealDao getDao();
Rest<Void> audit(PerformAttendAppealEntity appeal, Context context);
Rest<List<AppealInfo>> stat(PerformAttendAppealEntity appeal, Context context);
}
\ No newline at end of file
......@@ -43,7 +43,6 @@ public class PerformRulesServiceImpl extends AbstractCRUDCacheServiceImpl<Perfor
@Override
protected void saveBefore(PerformRulesEntity entity, Context context) throws AppException {
if (ObjectUtils.isEmpty(entity.getRuleCode())) {
String ruleCode = "";
/*
if (PerformRulesTypeEnum.考勤绩效.getValue() == entity.getType()) {
......@@ -52,22 +51,22 @@ public class PerformRulesServiceImpl extends AbstractCRUDCacheServiceImpl<Perfor
*/
switch (PerformRulesTypeEnum.getByValue(entity.getType())) {
case 考勤绩效:
ruleCode = PerformRulesTypeEnum.getByValue(entity.getType()).getDesc().toUpperCase() + "_" + idgeneratorService.getLongId(ATTEND_KEY);
ruleCode = PerformRulesTypeEnum.getByValue(entity.getType()).getDesc().toUpperCase() + idgeneratorService.getLongId(ATTEND_KEY);
break;
case 评价差评绩效:
ruleCode = PerformRulesTypeEnum.getByValue(entity.getType()).getDesc().toUpperCase() + "_" + idgeneratorService.getLongId(REVIEW_KEY);
ruleCode = PerformRulesTypeEnum.getByValue(entity.getType()).getDesc().toUpperCase() + idgeneratorService.getLongId(REVIEW_KEY);
break;
case 评价投诉绩效:
ruleCode = PerformRulesTypeEnum.getByValue(entity.getType()).getDesc().toUpperCase() + "_" + idgeneratorService.getLongId(COMPLAIN_KEY);
ruleCode = PerformRulesTypeEnum.getByValue(entity.getType()).getDesc().toUpperCase() + idgeneratorService.getLongId(COMPLAIN_KEY);
break;
case 办件绩效:
ruleCode = PerformRulesTypeEnum.getByValue(entity.getType()).getDesc().toUpperCase() + "_" + idgeneratorService.getLongId(GOWORK_KEY);
ruleCode = PerformRulesTypeEnum.getByValue(entity.getType()).getDesc().toUpperCase() + idgeneratorService.getLongId(GOWORK_KEY);
break;
case 效能绩效:
ruleCode = PerformRulesTypeEnum.getByValue(entity.getType()).getDesc().toUpperCase() + "_" + idgeneratorService.getLongId(EFFECT_KEY);
ruleCode = PerformRulesTypeEnum.getByValue(entity.getType()).getDesc().toUpperCase() + idgeneratorService.getLongId(EFFECT_KEY);
break;
case 其它绩效:
ruleCode = PerformRulesTypeEnum.getByValue(entity.getType()).getDesc().toUpperCase() + "_" + idgeneratorService.getLongId(OTHER_KEY);
ruleCode = PerformRulesTypeEnum.getByValue(entity.getType()).getDesc().toUpperCase() + idgeneratorService.getLongId(OTHER_KEY);
break;
default:
throw new AppException("绩效类型不支持!");
......
package com.mortals.xhx.module.perform.web;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException;
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;
import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.perform.model.PerformAttendAppealEntity;
import com.mortals.xhx.module.perform.service.PerformAttendAppealService;
import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*;
/**
*
* 绩效记录申诉信息
*
* @author zxfei
* @date 2023-07-12
*/
* 绩效记录申诉信息
*
* @author zxfei
* @date 2023-07-12
*/
@RestController
@RequestMapping("perform/attend/appeal")
public class PerformAttendAppealController extends BaseCRUDJsonBodyMappingController<PerformAttendAppealService,PerformAttendAppealEntity,Long> {
public class PerformAttendAppealController extends BaseCRUDJsonBodyMappingController<PerformAttendAppealService, PerformAttendAppealEntity, Long> {
@Autowired
private ParamService paramService;
public PerformAttendAppealController(){
super.setModuleDesc( "绩效记录申诉信息");
public PerformAttendAppealController() {
super.setModuleDesc("绩效记录申诉信息");
}
@Override
protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "subMethod", paramService.getParamBySecondOrganize("PerformAttendAppeal","subMethod"));
this.addDict(model, "subAddType", paramService.getParamBySecondOrganize("PerformAttendAppeal","subAddType"));
this.addDict(model, "processStatus", paramService.getParamBySecondOrganize("PerformAttendAppeal","processStatus"));
this.addDict(model, "appealResult", paramService.getParamBySecondOrganize("PerformAttendAppeal","appealResult"));
this.addDict(model, "reviewResult", paramService.getParamBySecondOrganize("PerformAttendAppeal","reviewResult"));
this.addDict(model, "reviewSource", paramService.getParamBySecondOrganize("PerformAttendAppeal","reviewSource"));
this.addDict(model, "irregularType", paramService.getParamBySecondOrganize("PerformAttendAppeal","irregularType"));
this.addDict(model, "irregularOtherType", paramService.getParamBySecondOrganize("PerformAttendAppeal","irregularOtherType"));
this.addDict(model, "subMethod", paramService.getParamBySecondOrganize("PerformAttendAppeal", "subMethod"));
this.addDict(model, "subAddType", paramService.getParamBySecondOrganize("PerformAttendAppeal", "subAddType"));
this.addDict(model, "processStatus", paramService.getParamBySecondOrganize("PerformAttendAppeal", "processStatus"));
this.addDict(model, "appealResult", paramService.getParamBySecondOrganize("PerformAttendAppeal", "appealResult"));
this.addDict(model, "reviewResult", paramService.getParamBySecondOrganize("PerformAttendAppeal", "reviewResult"));
this.addDict(model, "reviewSource", paramService.getParamBySecondOrganize("PerformAttendAppeal", "reviewSource"));
this.addDict(model, "irregularType", paramService.getParamBySecondOrganize("PerformAttendAppeal", "irregularType"));
this.addDict(model, "irregularOtherType", paramService.getParamBySecondOrganize("PerformAttendAppeal", "irregularOtherType"));
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();
}
/**
* 申诉审核
*/
@PostMapping(value = "audit")
public String appealAudit(@RequestBody PerformAttendAppealEntity appeal) {
JSONObject jsonObject = new JSONObject();
String busiDesc = this.getModuleDesc() + "审核";
try {
Rest<Void> audit = this.service.audit(appeal, getContext());
if (audit.getCode() == YesNoEnum.NO.getValue()) {
throw new AppException("申诉审核异常!");
}
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();
}
}
\ No newline at end of file
<?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