Commit 638fb867 authored by 赵啸非's avatar 赵啸非

Merge remote-tracking branch 'origin/master'

parents 6496103d 6eea5b45
......@@ -44,7 +44,13 @@
class="el-upload-list__item ele-upload-list__item-content"
v-for="(file, index) in list"
>
<el-link :href="baseUrl + file.url" :underline="false" target="_blank">
<el-link
:href="
file.url[0].indexOf('https') == -1 ? baseUrl + file.url : file.url
"
:underline="false"
target="_blank"
>
<span class="el-icon-document" style="font-size: 12px">
{{ getFileName(file.name) }}
</span>
......@@ -145,15 +151,23 @@ export default {
list() {
let temp = 1;
if (this.value) {
console.log("value", this.value);
// 首先将值转为数组
const list = Array.isArray(this.value) ? this.value : [this.value];
list &&
list.forEach((v) => {
v.url.indexOf("https") >= 0 ? (v.url = JSON.parse(v.url)) : v.url;
});
// 然后将数组转为对象数组
this.fileList = list.map((item) => {
item = { name: item.name, url: item.url };
item = {
name: item.name,
url:
item.url.indexOf("[`\`") >= 0 ? JSON.parse(item.url) : item.url,
};
item.uid = item.uid || new Date().getTime() + temp++;
return item;
});
return this.fileList;
} else {
this.fileList = [];
......
......@@ -164,7 +164,7 @@ export default {
prop: "auditResult",
formatter: this.formatter,
},
{ label: "审批负责人", prop: "approver" },
// { label: "审批负责人", prop: "approver" },
{
label: "创建用户",
......
......@@ -7,7 +7,177 @@
:destroy-on-close="true"
size="50%"
>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<div class="content_box">
<div class="text_line">
<div class="text_box">
<span>窗口负责人:</span>
<span>{{ form.ownerName }}</span>
</div>
<div class="text_box">
<span>登记年月:</span>
<span>{{
`${form.year ? form.year : "--"}-${
form.month
? [1, 2, 3, 4, 5, 6, 7, 8, 9].includes(form.month)
? "0" + form.month
: form.month
: "--"
}`
}}</span>
</div>
<div class="text_box">
<span>窗口编号:</span>
<span>{{ form.windowName }}</span>
</div>
</div>
<div class="text_line">
<div class="text_box">
<span>工作总结:</span>
<span>{{ form.workSummary }}</span>
</div>
</div>
<div class="text_line">
<div class="text_box">
<span>加分申报:</span>
<span>{{ form.bonusReport }}</span>
</div>
</div>
<div class="text_line">
<div class="text_box">
<span>加分佐证材料:</span>
<span>{{ form.bonusReport }}</span>
</div>
</div>
<div class="text_line">
<div class="text_box">
<span>扣分情况:</span>
<span>{{ form.deductStatement }}</span>
</div>
</div>
<div class="text_line">
<div class="text_box">
<span>扣分分值:</span>
<span>{{ form.deductScore }}</span>
</div>
</div>
<div class="text_line">
<div class="text_box">
<span>自评得分:</span>
<span style="width: 820px;"
><el-table :data="tableData" border style="width: 100%">
<el-table-column
prop="discipline"
label="工作纪律"
align="center"
>
</el-table-column>
<el-table-column
prop="specification"
label="服务规范"
align="center"
>
</el-table-column>
<el-table-column prop="bonusScore" label="加分" align="center">
</el-table-column>
<el-table-column prop="sumScore" label="合计得分" align="center">
</el-table-column>
<el-table-column prop="selfLevel" label="自评等级" align="center">
</el-table-column>
</el-table>
</span>
</div>
</div>
<div class="text_line">
<div class="text_box">
<span>备注:</span>
<span>{{ form.remark }}</span>
</div>
</div>
<div class="text_line">
<div class="text_box">
<span>附件材料:</span>
<span>{{ form.annex }}</span>
</div>
</div>
<div class="hecha_box">
<div class="hecha_title">
<span class="line"></span>
<span>核查情况</span>
</div>
<div class="hecha_content">
<el-form ref="form" :model="form" :rules="rules" label-width="180px">
<el-row>
<el-form-item label="政务服务管理科评荐意见:" prop="checkResult">
<div
v-if="form.view == '查看'"
style="display: flex; justify-content: space-between;"
>
<span class="left">
{{ form.manageCheckResult }}
</span>
<span class="right">
{{ form.manageCheckPerson }}
{{ functionTime(form.manageCheckTime) }} 核查
</span>
</div>
<el-radio-group v-model="form.manageCheckResult" v-else>
<el-radio
v-for="(val, i) in dict.manageCheckResult"
:key="i"
:label="val"
>{{ val }}</el-radio
>
</el-radio-group>
</el-form-item>
<el-form-item label="管理组核查说明:" prop="manageCheckDesc">
<el-input
v-model="form.manageCheckDesc"
type="textarea"
placeholder="请填写说明"
:disabled="form.view == '查看'"
></el-input>
</el-form-item>
<el-form-item label="领导小组审定意见:" prop="leaderCheckResult">
<div
v-if="form.view == '查看'"
style="display: flex; justify-content: space-between;"
>
<span class="left">
{{ form.leaderCheckResult }}
</span>
<span class="right">
{{ form.leaderCheckPerson }}
{{ functionTime(form.leaderCheckTime) }} 核查
</span>
</div>
<el-radio-group v-model="form.leaderCheckResult" v-else>
<el-radio
v-for="(val, i) in dict.leaderCheckResult"
:key="i"
:label="val"
>{{ val }}</el-radio
>
</el-radio-group>
</el-form-item>
<el-form-item label="领导小组核查说明:" prop="leaderCheckDesc">
<el-input
v-model="form.leaderCheckDesc"
type="textarea"
placeholder="请填写说明"
:disabled="form.view == '查看'"
></el-input>
</el-form-item>
</el-row>
<form-buttons
@submit="submitForm"
v-if="pageInfo.type != 'view'"
noCancelBtn
/>
</el-form>
</div>
</div>
</div>
<!-- <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field
label="记录ID"
......@@ -168,12 +338,14 @@
v-if="pageInfo.type != 'view'"
noCancelBtn
/>
</el-form>
</el-form> -->
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import { timestampToTime } from "@/assets/utils/dateFormat.js";
export default {
name: "CheckWindowPerformDetail",
mixins: [form],
......@@ -194,18 +366,76 @@ export default {
toDate: ["submitDate", "manageCheckTime", "leaderCheckTime"],
// 表单校验
rules: {},
tableData: [],
};
},
methods: {
functionTime(val) {
let time = timestampToTime(val, 6);
return time;
},
/** 编辑 */
edit(row) {
async edit(row) {
// this.reset();
// this.query = { id: row.id };
this.urls.currUrl = "check/window/perform/save";
// this.getData();
// this.pageInfo.type = "edit";
// this.title = "修改窗口考核核查";
this.form = row;
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "check/window/perform/edit";
this.getData();
await this.$get("/window/perform/info", { id: row.id }).then((res) => {
if (res.code == 1) {
this.form = res.data;
this.dict = res.dict;
} else {
this.form = row;
}
for (let key in this.form) {
key == "fillDate"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "createTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "deductTime"
? (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))
: "";
}
this.$get("/check/window/perform/info", { id: row.id }).then(
(response) => {
if (response.code == 1) {
this.form = { ...this.form, ...response.data };
this.dict = { ...this.dict, ...response.dict };
}
}
);
this.tableData = [];
this.tableData.push({
discipline: this.form["discipline"] ? this.form["discipline"] : "--",
specification: this.form["specification"]
? this.form["specification"]
: "--",
bonusScore: this.form["bonusScore"] ? this.form["bonusScore"] : "--",
sumScore: this.form["sumScore"] ? this.form["sumScore"] : "--",
selfLevel: this.form["selfLevel"]
? this.form["selfLevel"] == 1
? "红旗窗口"
: "黑旗窗口"
: "--",
});
this.form.view = "修改";
this.open = true;
});
this.pageInfo.type = "edit";
this.title = "修改窗口考核核查";
this.title = "自评绩效核查";
},
/** 新增 */
add(row) {
......@@ -216,13 +446,66 @@ export default {
this.title = "新增窗口考核核查";
},
/** 查看*/
view(row) {
async view(row) {
// this.reset();
// this.query = { id: row.id };
// this.urls.currUrl = "check/window/perform/view";
// this.getData();
// this.pageInfo.type = "view";
// this.title = "窗口考核核查详细";
this.form = row;
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "check/window/perform/view";
this.getData();
await this.$get("/window/perform/info", { id: row.id }).then((res) => {
if (res.code == 1) {
this.form = res.data;
this.dict = res.dict;
} else {
this.form = row;
}
for (let key in this.form) {
key == "fillDate"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "createTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "deductTime"
? (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))
: "";
}
this.$get("/check/window/perform/info", { id: row.id }).then(
(response) => {
if (response.code == 1) {
this.form = { ...this.form, ...response.data };
this.dict = { ...this.dict, ...response.dict };
}
}
);
this.tableData = [];
this.tableData.push({
discipline: this.form["discipline"] ? this.form["discipline"] : "--",
specification: this.form["specification"]
? this.form["specification"]
: "--",
bonusScore: this.form["bonusScore"] ? this.form["bonusScore"] : "--",
sumScore: this.form["sumScore"] ? this.form["sumScore"] : "--",
selfLevel: this.form["selfLevel"]
? this.form["selfLevel"] == 1
? "红旗窗口"
: "黑旗窗口"
: "--",
});
this.form.view = "查看";
this.open = true;
});
this.pageInfo.type = "view";
this.title = "窗口考核核查详细";
this.title = "自评绩效核查信息详细";
},
/**取消按钮 */
cancel() {
......@@ -276,3 +559,28 @@ export default {
},
};
</script>
<style lang="less" scoped>
.content_box {
padding: 0 20px;
font-size: 14px;
.text_line {
width: 100%;
display: flex;
margin-bottom: 25px;
.text_box:nth-child(2) {
margin: 0 100px;
}
.text_box {
display: flex;
span {
text-align: end;
width: 100px;
display: inline-block;
}
span:nth-child(2) {
text-align: start;
}
}
}
}
</style>
<template>
<div class="page">
<div class="btn_box" style="position: absolute;top: 52px;left: 10px;">
<div class="btn_box" style="position: absolute;top: 54px;left: 10px;">
<el-radio-group v-model="radio1" @input="changeRadio">
<el-radio-button label="1">窗口考核</el-radio-button>
<el-radio-button label="2">工作人员考核</el-radio-button>
......@@ -51,7 +51,7 @@ export default {
doExport() {
this.isExport = true;
this.$download(
"/check/review/record/exportExcel",
"/check/window/perform/exportExcel",
{
page: 1,
size: -1,
......@@ -66,7 +66,6 @@ export default {
},
// 切换表格
changeRadio() {
console.log(this.radio1);
this.radio1 == 2
? this.$router.push("/check/window/workman/perform/list?page=1")
: "";
......@@ -80,49 +79,68 @@ export default {
isshowTabPane: true,
search: [
{
name: "year",
type: "text",
label: "考核年度",
fuzzy: true,
name: "deptId",
type: "select",
label: "所属部门",
fuzzy: false,
},
{
name: "windowId",
type: "text",
label: "窗口ID",
fuzzy: true,
name: "checkStatus",
type: "select",
label: "核查状态",
fuzzy: false,
},
{
name: "createTimeMonth",
type: "month",
label: "请选择月份",
fuzzy: false,
},
{
name: "ownerId",
name: "ownerName",
type: "text",
label: "窗口负责人id",
fuzzy: true,
width: 200,
label: "窗口负责人姓名搜索",
fuzzy: false,
},
],
columns: [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{ label: "窗口负责人", prop: "ownerName" },
{
label: "管理组核查时间",
prop: "manageCheckTime",
formatter: this.formatterDate,
label: "登记年月",
formatter: (row) => {
return `${row.year ? row.year : "--"}-${
row.month
? [1, 2, 3, 4, 5, 6, 7, 8, 9].includes(row.month)
? "0" + row.month
: row.month
: "--"
}`;
},
},
{ label: "管理组核查说明", prop: "manageCheckDesc" },
{ label: "管理组核查结果", prop: "manageCheckResult" },
{ label: "所属大厅", prop: "salaName" },
{
label: "领导组核查时间",
prop: "leaderCheckTime",
formatter: this.formatterDate,
label: "所属部门",
prop: "deptName",
},
{ label: "领导组核查说明", prop: "leaderCheckDesc" },
{ label: "考核窗口", prop: "windowName" },
{ label: "领导组核查结果", prop: "leaderCheckResult" },
{ label: "表单名称", prop: "fromName" },
{ label: "总分分值", prop: "sumScore", formatter: this.formatter },
{
label: "提交时间",
prop: "submitDate",
formatter: this.formatterDate,
},
{ label: "处理状态", prop: "checkStatus", formatter: this.formatter },
{
label: "操作",
width: 240,
......@@ -130,6 +148,10 @@ export default {
return (
<table-buttons
noAdd
noDel
noEdit
reCheck
text={"自评核查"}
row={row}
onEdit={this.toEdit}
onView={this.toView}
......
<template>
<!-- 弹出框表单 -->
<el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
:destroy-on-close="true"
size="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<!-- 弹出框表单 -->
<el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
:destroy-on-close="true"
size="50%"
>
<div class="content_box">
<div class="text_line">
<div class="text_box">
<span>窗口负责人:</span>
<span>{{ form.ownerName }}</span>
</div>
<div class="text_box">
<span>登记年月:</span>
<span>{{
`${form.year ? form.year : "--"}-${
form.month
? [1, 2, 3, 4, 5, 6, 7, 8, 9].includes(form.month)
? "0" + form.month
: form.month
: "--"
}`
}}</span>
</div>
</div>
<div class="text_line">
<div class="text_box">
<span style="width: 920px;"
><el-table :data="tableData" border style="width: 100%">
<el-table-column type="index" label="序号" width="50">
</el-table-column>
<el-table-column prop="staffName" label="姓名" align="center">
</el-table-column>
<el-table-column label="考核得分(分)">
<el-table-column
prop="discipline"
label="工作纪律"
align="center"
>
</el-table-column>
<el-table-column
prop="specification"
label="服务规范"
align="center"
>
</el-table-column>
<el-table-column
prop="management"
label="综合管理"
align="center"
>
</el-table-column>
<el-table-column
prop="evaluation"
label="群众评议"
align="center"
>
</el-table-column>
<el-table-column
prop="efficiency"
label="工作效能"
align="center"
>
</el-table-column>
<el-table-column prop="bonusScore" label="加分" align="center">
</el-table-column>
</el-table-column>
<el-table-column
prop="sumScore"
label="综合评定打分"
align="center"
>
</el-table-column>
<el-table-column
prop="selfLevel"
label="建议考核等级"
align="center"
>
</el-table-column>
</el-table>
</span>
</div>
</div>
<div class="text_line">
<div class="text_box">
<span>备注:</span>
<span>{{ form.remark }}</span>
</div>
</div>
<div class="text_line">
<div class="text_box">
<span>附件材料:</span>
<span>{{ form.annex }}</span>
</div>
</div>
<div class="hecha_box">
<div class="hecha_title">
<span class="line"></span>
<span>核查情况</span>
</div>
<div class="hecha_content">
<el-form ref="form" :model="form" :rules="rules" label-width="180px">
<el-row>
<Field label="记录ID" prop="recordId" v-model="form.recordId" placeholder="请输入记录ID"/>
<Field label="考核年度" prop="year" v-model="form.year" placeholder="请输入考核年度"/>
<Field label="考核月份" prop="month" v-model="form.month" placeholder="请输入考核月份"/>
<Field label="窗口ID" prop="windowId" v-model="form.windowId" placeholder="请输入窗口ID"/>
<Field label="窗口名称" prop="windowName" v-model="form.windowName" placeholder="请输入窗口名称"/>
<Field label="窗口负责人id" prop="ownerId" v-model="form.ownerId" placeholder="请输入窗口负责人id"/>
<Field label="窗口负责人名称" prop="ownerName" v-model="form.ownerName" placeholder="请输入窗口负责人名称"/>
<Field label="所属部门id" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门id"/>
<Field label="所属部门名称" prop="deptName" v-model="form.deptName" type="textarea" placeholder="请输入所属部门名称"/>
<Field label="所属大厅" prop="salaId" v-model="form.salaId" placeholder="请输入所属大厅"/>
<Field label="所属大厅名称" prop="salaName" v-model="form.salaName" placeholder="请输入所属大厅名称"/>
<Field label="考核表单名称" prop="fromName" v-model="form.fromName" placeholder="请输入考核表单名称"/>
<Field label="提交时间" prop="submitDate" v-model="form.submitDate" type="date" />
<Field label="管理组核查人员" prop="manageCheckPerson" v-model="form.manageCheckPerson" placeholder="请输入管理组核查人员"/>
<Field label="管理组核查时间" prop="manageCheckTime" v-model="form.manageCheckTime" type="date" />
<Field label="管理组核查说明" prop="manageCheckDesc" v-model="form.manageCheckDesc" type="textarea" placeholder="请输入管理组核查说明"/>
<Field label="管理组核查结果" prop="manageCheckResult" v-model="form.manageCheckResult" type="radio" :enumData="dict.manageCheckResult" />
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
<el-form-item label="政务服务管理科评荐意见:" prop="checkResult">
<div
v-if="form.view == '查看'"
style="display: flex; justify-content: space-between;"
>
<span class="left">
{{ form.manageCheckResult }}
</span>
<span class="right">
{{ form.manageCheckPerson }}
{{ functionTime(form.manageCheckTime) }} 核查
</span>
</div>
<el-radio-group v-model="form.manageCheckResult" v-else>
<el-radio
v-for="(val, i) in dict.manageCheckResult"
:key="i"
:label="val"
>{{ val }}</el-radio
>
</el-radio-group>
</el-form-item>
<el-form-item label="管理组核查说明:" prop="manageCheckDesc">
<el-input
v-model="form.manageCheckDesc"
type="textarea"
placeholder="请填写说明"
:disabled="form.view == '查看'"
></el-input>
</el-form-item>
</el-row>
<form-buttons
@submit="submitForm"
v-if="pageInfo.type != 'view'"
noCancelBtn
/>
</el-form>
</div>
</div>
</div>
<!-- <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field
label="记录ID"
prop="recordId"
v-model="form.recordId"
placeholder="请输入记录ID"
/>
<Field
label="考核年度"
prop="year"
v-model="form.year"
placeholder="请输入考核年度"
/>
<Field
label="考核月份"
prop="month"
v-model="form.month"
placeholder="请输入考核月份"
/>
<Field
label="窗口ID"
prop="windowId"
v-model="form.windowId"
placeholder="请输入窗口ID"
/>
<Field
label="窗口名称"
prop="windowName"
v-model="form.windowName"
placeholder="请输入窗口名称"
/>
<Field
label="窗口负责人id"
prop="ownerId"
v-model="form.ownerId"
placeholder="请输入窗口负责人id"
/>
<Field
label="窗口负责人名称"
prop="ownerName"
v-model="form.ownerName"
placeholder="请输入窗口负责人名称"
/>
<Field
label="所属部门id"
prop="deptId"
v-model="form.deptId"
placeholder="请输入所属部门id"
/>
<Field
label="所属部门名称"
prop="deptName"
v-model="form.deptName"
type="textarea"
placeholder="请输入所属部门名称"
/>
<Field
label="所属大厅"
prop="salaId"
v-model="form.salaId"
placeholder="请输入所属大厅"
/>
<Field
label="所属大厅名称"
prop="salaName"
v-model="form.salaName"
placeholder="请输入所属大厅名称"
/>
<Field
label="考核表单名称"
prop="fromName"
v-model="form.fromName"
placeholder="请输入考核表单名称"
/>
<Field
label="提交时间"
prop="submitDate"
v-model="form.submitDate"
type="date"
/>
<Field
label="管理组核查人员"
prop="manageCheckPerson"
v-model="form.manageCheckPerson"
placeholder="请输入管理组核查人员"
/>
<Field
label="管理组核查时间"
prop="manageCheckTime"
v-model="form.manageCheckTime"
type="date"
/>
<Field
label="管理组核查说明"
prop="manageCheckDesc"
v-model="form.manageCheckDesc"
type="textarea"
placeholder="请输入管理组核查说明"
/>
<Field
label="管理组核查结果"
prop="manageCheckResult"
v-model="form.manageCheckResult"
type="radio"
:enumData="dict.manageCheckResult"
/>
<Field
label="备注"
prop="remark"
v-model="form.remark"
type="textarea"
placeholder="请输入备注"
/>
</el-row>
<form-buttons @submit='submitForm' v-if="pageInfo.type!='view'" noCancelBtn />
</el-form>
</el-drawer>
<form-buttons
@submit="submitForm"
v-if="pageInfo.type != 'view'"
noCancelBtn
/>
</el-form> -->
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "CheckWindowWorkmanPerformDetail",
mixins: [form],
components: {
import form from "@/assets/mixins/formdialog";
import { timestampToTime } from "@/assets/utils/dateFormat.js";
},
created() {
this.changePath("check/window/workman/perform")
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "窗口人员考核汇总核查",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
],
toDate:[
"submitDate",
"manageCheckTime",
],
// 表单校验
rules: {
}
};
},
export default {
name: "CheckWindowWorkmanPerformDetail",
mixins: [form],
components: {},
created() {
this.changePath("check/window/workman/perform");
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "窗口人员考核汇总核查",
// 是否显示弹出层
open: false,
direction: "rtl",
toString: [],
toDate: ["submitDate", "manageCheckTime"],
// 表单校验
rules: {},
tableData: [],
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="check/window/workman/perform/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改窗口人员考核汇总核查";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "check/window/workman/perform/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增窗口人员考核汇总核查";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="check/window/workman/perform/view";
this.getData();
this.pageInfo.type="view"
this.title = "窗口人员考核汇总核查详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
methods: {
functionTime(val) {
let time = timestampToTime(val, 6);
return time;
},
/** 编辑 */
async edit(row) {
// this.reset();
// this.query = { id: row.id };
this.urls.currUrl = "check/window/workman/perform/save";
// this.getData();
// this.pageInfo.type = "edit";
// this.title = "修改窗口人员考核汇总核查";
this.form = row;
this.reset();
this.query = { id: row.id };
await this.$get("/check/window/workman/perform/info", {
id: row.id,
}).then((res) => {
if (res.code == 1) {
this.form = res.data;
this.dict = res.dict;
} else {
this.form = row;
}
for (let key in this.form) {
key == "fillDate"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "createTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "deductTime"
? (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))
: "";
}
this.$get("/window/workman/perform/detail/info", { id: row.id }).then(
(response) => {
if (response.code == 1) {
this.form = { ...this.form, ...response.data };
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
this.dict = { ...this.dict, ...response.dict };
}
}
);
this.$get("/window/workman/perform/info", { id: row.id }).then(
(responses) => {
if (responses.code == 1) {
this.form = { ...this.form, ...responses.data };
// 表单重置
reset() {
this.form = {
recordId : null,
year : null,
month : null,
windowId : null,
windowName : "",
ownerId : null,
ownerName : "",
deptId : null,
deptName : "",
salaId : null,
salaName : "",
fromName : "",
submitDate : null,
manageCheckPerson : "",
manageCheckTime : null,
manageCheckDesc : "",
manageCheckResult : "",
remark : "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
this.dict = { ...this.dict, ...responses.dict };
}
}
);
this.tableData = [];
this.tableData.push({
staffName: this.form["staffName"] ? this.form["staffName"] : "--",
discipline: this.form["discipline"] ? this.form["discipline"] : "--",
specification: this.form["specification"]
? this.form["specification"]
: "--",
management: this.form["management"] ? this.form["management"] : "--",
evaluation: this.form["evaluation"] ? this.form["evaluation"] : "--",
efficiency: this.form["efficiency"] ? this.form["efficiency"] : "--",
bonusScore: this.form["bonusScore"] ? this.form["bonusScore"] : "--",
sumScore: this.form["sumScore"] ? this.form["sumScore"] : "--",
examineLevel: this.form["examineLevel"]
? this.dict["examineLevel"]
: "--",
});
this.form.view = "修改";
this.open = true;
});
this.pageInfo.type = "edit";
this.title = "窗口人员自评绩效核查";
},
/** 新增 */
add(row) {
this.reset();
this.urls.currUrl = "check/window/workman/perform/add";
this.getData();
this.pageInfo.type = "add";
this.title = "新增窗口人员考核汇总核查";
},
/** 查看*/
async view(row) {
// this.reset();
// this.query = { id: row.id };
// this.urls.currUrl = "check/window/workman/perform/view";
// this.getData();
// this.pageInfo.type = "view";
// this.title = "窗口人员考核汇总核查详细";
this.form = row;
this.reset();
this.query = { id: row.id };
await this.$get("/check/window/workman/perform/info", {
id: row.id,
}).then((res) => {
if (res.code == 1) {
this.form = res.data;
this.dict = res.dict;
} else {
this.form = row;
}
for (let key in this.form) {
key == "fillDate"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "createTime"
? (this.form[key] = timestampToTime(this.form[key], 6))
: key == "deductTime"
? (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))
: "";
}
this.$get("/window/workman/perform/detail/info", { id: row.id }).then(
(response) => {
if (response.code == 1) {
this.form = { ...this.form, ...response.data };
this.dict = { ...this.dict, ...response.dict };
}
}
);
this.$get("/window/workman/perform/info", { id: row.id }).then(
(responses) => {
if (responses.code == 1) {
this.form = { ...this.form, ...responses.data };
this.dict = { ...this.dict, ...responses.dict };
}
}
);
this.tableData = [];
this.tableData.push({
staffName: this.form["staffName"] ? this.form["staffName"] : "--",
discipline: this.form["discipline"] ? this.form["discipline"] : "--",
specification: this.form["specification"]
? this.form["specification"]
: "--",
management: this.form["management"] ? this.form["management"] : "--",
evaluation: this.form["evaluation"] ? this.form["evaluation"] : "--",
efficiency: this.form["efficiency"] ? this.form["efficiency"] : "--",
bonusScore: this.form["bonusScore"] ? this.form["bonusScore"] : "--",
sumScore: this.form["sumScore"] ? this.form["sumScore"] : "--",
examineLevel: this.form["examineLevel"]
? this.dict["examineLevel"]
: "--",
});
this.form.view = "查看";
this.open = true;
});
this.pageInfo.type = "view";
this.title = "窗口人员自评绩效核查信息详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
recordId: null,
year: null,
month: null,
windowId: null,
windowName: "",
ownerId: null,
ownerName: "",
deptId: null,
deptName: "",
salaId: null,
salaName: "",
fromName: "",
submitDate: null,
manageCheckPerson: "",
manageCheckTime: null,
manageCheckDesc: "",
manageCheckResult: "",
remark: "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<style lang="less" scoped>
.content_box {
padding: 0 20px;
font-size: 14px;
.text_line {
width: 100%;
display: flex;
margin-bottom: 25px;
.text_box:nth-child(2) {
margin: 0 100px;
}
.text_box {
display: flex;
span {
text-align: end;
width: 100px;
display: inline-block;
}
span:nth-child(2) {
text-align: start;
}
}
}
}
</style>
<template>
<div class="page">
<div class="btn_box" style="position: absolute;top: 52px;left: 10px;">
<div class="btn_box" style="position: absolute;top: 54px;left: 10px;">
<el-radio-group v-model="radio1" @input="changeRadio">
<el-radio-button label="1">窗口考核</el-radio-button>
<el-radio-button label="2">工作人员考核</el-radio-button>
......@@ -33,8 +33,7 @@ export default {
},
mixins: [table],
created() {
console.log(123);
this.getData();
// this.getData();
},
methods: {
/** 重写新增方法 */
......@@ -53,7 +52,7 @@ export default {
doExport() {
this.isExport = true;
this.$download(
"/check/review/record/exportExcel",
"/check/window/workman/perform/exportExcel",
{
page: 1,
size: -1,
......@@ -81,25 +80,75 @@ export default {
isshowTabPane: true,
search: [
{
name: "year",
name: "deptId",
type: "select",
label: "所属部门",
fuzzy: false,
},
{
name: "checkStatus",
type: "select",
label: "核查状态",
fuzzy: false,
},
{
name: "createTimeMonth",
type: "month",
label: "请选择月份",
fuzzy: false,
},
{
name: "ownerName",
type: "text",
label: "考核年度",
fuzzy: true,
width: 200,
label: "窗口负责人姓名搜索",
fuzzy: false,
},
],
columns: [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{ label: "窗口负责人", prop: "ownerName" },
{
label: "管理组核查时间",
prop: "manageCheckTime",
formatter: this.formatterDate,
label: "登记年月",
formatter: (row) => {
return `${row.year ? row.year : "--"}-${
row.month
? [1, 2, 3, 4, 5, 6, 7, 8, 9].includes(row.month)
? "0" + row.month
: row.month
: "--"
}`;
},
},
{ label: "管理组核查说明", prop: "manageCheckDesc" },
{ label: "所属大厅", prop: "salaName" },
{
label: "所属部门",
prop: "deptName",
},
{ label: "考核窗口", prop: "windowName" },
{ label: "表单名称", prop: "fromName" },
{ label: "总分分值", prop: "sumScore", formatter: this.formatter },
{
label: "提交时间",
prop: "submitDate",
width: 110,
formatter: this.formatterDate,
},
{
label: "最新核查时间",
prop: "updateTime",
width: 150,
formatter: this.formatterDate,
},
{ label: "处理状态", prop: "checkStatus", formatter: this.formatter },
{ label: "管理组核查结果", prop: "manageCheckResult" },
{
label: "操作",
width: 240,
......@@ -107,6 +156,10 @@ export default {
return (
<table-buttons
noAdd
noDel
noEdit
reCheck
text={"自评核查"}
row={row}
onEdit={this.toEdit}
onView={this.toView}
......
package com.mortals.xhx.base.login.sms;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.IAuthTokenService;
import com.mortals.framework.util.DateUtils;
import com.mortals.framework.web.BaseJsonBodyController;
import com.mortals.xhx.base.system.user.model.UserEntity;
import com.mortals.xhx.base.system.user.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("sms")
public class SMSLoginController extends BaseJsonBodyController {
@Autowired
private UserService userService;
@Autowired
private IAuthTokenService authTokenService;
@PostMapping({"send"})
@UnAuth
public Rest<Object> sendSmsVerifyCode(@RequestBody SMSLoginPdu smsLoginPdu){
Rest<Object> ret = new Rest();
Map<String, Object> model = new HashMap();
Context context = this.getContext();
String busiDesc = "发送手机验证码";
int code=1;
try {
userService.sendSmsVerifyCode(smsLoginPdu.getMobileNumber());
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var9) {
code = -1;
this.doException(this.request, busiDesc, model, var9);
}
ret.setCode(code);
ret.setData(model);
ret.setDict(model.get("dict"));
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret;
}
@PostMapping("login")
@UnAuth
public String login(@RequestBody SMSLoginPdu smsLoginPdu) throws Exception {
JSONObject ret = new JSONObject();
Map<String, Object> data = new HashMap<>();
String ip = super.getRequestIP(request);
UserEntity userEntity = null;
try {
userEntity = userService.doSmsLogin(smsLoginPdu.getMobileNumber(), smsLoginPdu.getVerifyCode(), ip);
userEntity.setLastLoginAddress(ip);
userEntity.setLoginTime(System.currentTimeMillis());
userEntity.setToken(IdUtil.fastSimpleUUID());
userEntity.setExpireTime(DateUtils.addCurrDate(7).getTime());
String token = authTokenService.createToken(userEntity);
data.put("token", token);
data.put("customer", userEntity);
recordSysLog(request, userEntity, "登录系统成功!");
ret.put(KEY_RESULT_DATA, data);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
ret.put(KEY_RESULT_MSG, "用户登录系统成功!");
return ret.toJSONString();
} catch (Exception e) {
log.error("login error ", e);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
return ret.toJSONString();
}
}
}
package com.mortals.xhx.base.login.sms;
import lombok.Data;
@Data
public class SMSLoginPdu {
/** 手机号码 */
private String mobileNumber;
/** 验证码 */
private String verifyCode;
}
......@@ -117,4 +117,21 @@ public interface UserService extends ICRUDCacheService<UserEntity,Long> {
UserDao getUserDao();
/**
* 发送手机验证码
* @param mobileNumber
* @throws AppException
*/
void sendSmsVerifyCode(String mobileNumber) throws AppException;
/**
* 手机验证码登录
* @param mobileNumber
* @param verifyCode
* @param loginIp
* @return
* @throws AppException
*/
UserEntity doSmsLogin(String mobileNumber, String verifyCode, String loginIp) throws AppException;
}
\ No newline at end of file
......@@ -8,6 +8,9 @@
package com.mortals.xhx.base.system.user.service.impl;
import cn.hutool.core.util.PhoneUtil;
import cn.hutool.core.util.RandomUtil;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.ap.SysConstains;
import com.mortals.framework.common.code.UserType;
import com.mortals.framework.exception.AppException;
......@@ -16,6 +19,7 @@ import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result;
import com.mortals.framework.service.IUser;
import com.mortals.framework.service.impl.AbstractCRUDCacheServiceImpl;
import com.mortals.framework.util.HttpUtil;
import com.mortals.framework.util.SecurityUtil;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.base.system.menu.model.MenuEntity;
......@@ -31,6 +35,7 @@ import com.mortals.xhx.base.system.user.model.UserQuery;
import com.mortals.xhx.base.system.user.service.UserService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.*;
......@@ -55,6 +60,16 @@ public class UserServiceImpl extends AbstractCRUDCacheServiceImpl<UserDao, UserE
@Autowired
private RoleUserDao roleUserDao;
@Value("${sms.smsSendUrl:http://sms.wx3.com.cn/api/index/index}")
private String smsApiUrl;
@Value("${sms.apiId:ADsUXLrS81vZDU95}")
private String appid;
/** 短信模板ID**/
private static String SMS_TPYE = "30";
private static String SMS_VERIFY_CODE_KEY ="login:sms:verify:";
@Override
protected String getExtKey(UserEntity data) {
return data.getLoginName();
......@@ -347,4 +362,74 @@ public class UserServiceImpl extends AbstractCRUDCacheServiceImpl<UserDao, UserE
return this.getDao();
}
@Override
public void sendSmsVerifyCode(String mobileNumber) throws AppException {
if(StringUtils.isEmpty(mobileNumber)){
throw new AppException("手机号不能为空");
}
if(!PhoneUtil.isPhone(mobileNumber)){
throw new AppException("手机号码格式不正确");
}
UserEntity user = this.selectOne(new UserQuery().mobile(mobileNumber));
if(user==null){
throw new AppException("手机号码:" + mobileNumber + "没有注册用户");
}
String verifyCode = cacheService.get(SMS_VERIFY_CODE_KEY + mobileNumber);
if(StringUtils.isNotEmpty(verifyCode)){
throw new AppException("当前手机号码已发送验证码,请稍后重试");
}
try {
Map<String, String> params = new HashMap<>();
params.put("appid",appid);
params.put("phone",mobileNumber);
params.put("type",SMS_TPYE);
String[] json = new String[2];
String vCode = RandomUtil.randomNumbers(6);
json[0] = vCode;
json[1] = "1";
params.put("json", JSONObject.toJSON(json).toString());
String resp = HttpUtil.doPost(smsApiUrl,params);
JSONObject respJson = JSONObject.parseObject(resp);
if(respJson.getIntValue("code")==0){
throw new AppException("短信发送失败:" + respJson.getString("message"));
}
//有效期60秒
cacheService.setnx(SMS_VERIFY_CODE_KEY+mobileNumber,vCode,60);
}catch (Exception e){
log.error("短信发送异常",e);
throw new AppException("短信发送异常");
}
}
@Override
public UserEntity doSmsLogin(String mobileNumber, String verifyCode, String loginIp) throws AppException {
if(StringUtils.isEmpty(mobileNumber)){
throw new AppException("手机号不能为空");
}
if(StringUtils.isEmpty(verifyCode)){
throw new AppException("验证码不能为空");
}
if(!PhoneUtil.isPhone(mobileNumber)){
throw new AppException("手机号码格式不正确");
}
UserEntity customer = this.selectOne(new UserQuery().mobile(mobileNumber));
if(customer==null){
throw new AppException("手机号码:" + mobileNumber + "没有注册用户");
}
String vCode = cacheService.get(SMS_VERIFY_CODE_KEY + mobileNumber);
if(StringUtils.isEmpty(vCode)){
throw new AppException("验证码已失效");
}
if(!verifyCode.equals(vCode)){
throw new AppException("验证码不正确");
}
UserEntity update = new UserEntity();
update.setId(customer.getId());
update.setLastLoginAddress(loginIp);
update.setLastLoginTime(new Date());
this.update(update);
return customer;
}
}
\ No newline at end of file
......@@ -155,11 +155,11 @@ public class CheckWindowPerformEntity extends CheckWindowPerformVo {
this.sumScore = BigDecimal.ZERO;
this.submitDate = new Date();
this.manageCheckPerson = "";
this.manageCheckTime = new Date();
this.manageCheckTime = null;
this.manageCheckDesc = "";
this.manageCheckResult = "";
this.leaderCheckPerson = "";
this.leaderCheckTime = new Date();
this.leaderCheckTime = null;
this.leaderCheckDesc = "";
this.leaderCheckResult = "";
this.checkStatus = 1;
......
package com.mortals.xhx.module.window.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.common.Rest;
import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.common.pdu.RespData;
......@@ -15,10 +16,7 @@ import com.mortals.xhx.module.window.model.WindowOwnerDetailEntity;
import com.mortals.xhx.module.window.service.WindowOwnerDetailService;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -38,21 +36,18 @@ public class WindowOwnerDetailServiceImpl extends AbstractCRUDServiceImpl<Window
@Override
public List<WindowPdu> subWindowPduList(WindowPdu pdu) {
List<WindowPdu> subList = new ArrayList<>();
if(pdu.getSiteId()==null){
pdu.setSiteId(1l); //默认只查宜宾市民中心
}
pdu.setSize(-1);
Rest<RespData<List<WindowPdu>>> respDataRest = windowFeign.list(pdu);
if (respDataRest.getCode() == YesNoEnum.YES.getValue()) {
List<WindowOwnerDetailEntity> ownerDetail = this.getAllList();
if(!CollectionUtils.isEmpty(ownerDetail)){
Map<Long,List<WindowOwnerDetailEntity>> windowMap = ownerDetail.stream().collect(Collectors.groupingBy(WindowOwnerDetailEntity::getWindowId));
List<WindowPdu> allWindow = respDataRest.getData().getData();
for(WindowPdu item:allWindow){
if(!windowMap.containsKey(item.getId())){
subList.add(item);
}
}
List<WindowOwnerDetailEntity> ownerDetail = this.getAllList();
if(!CollectionUtils.isEmpty(ownerDetail)){
Long[] windows = ownerDetail.stream().map(WindowOwnerDetailEntity::getWindowId).toArray(Long[]::new);
pdu.setIdNotList(Arrays.asList(windows));
if(pdu.getSiteId()==null){
pdu.setSiteId(1l); //默认只查宜宾市民中心
}
pdu.setSize(-1);
Rest<RespData<List<WindowPdu>>> respDataRest = windowFeign.list(pdu);
log.info(JSONObject.toJSONString(respDataRest));
if (respDataRest.getCode() == YesNoEnum.YES.getValue()) {
subList = respDataRest.getData().getData();
}
}
return subList;
......
package com.mortals.xhx.module.window.service.impl;
import com.mortals.xhx.common.code.FillStatusEnum;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.module.check.model.CheckWindowPerformEntity;
import com.mortals.xhx.module.check.model.CheckWindowPerformQuery;
import com.mortals.xhx.module.check.model.CheckWindowWorkmanPerformEntity;
import com.mortals.xhx.module.check.model.CheckWindowWorkmanPerformQuery;
import com.mortals.xhx.module.check.service.CheckWindowPerformService;
import com.mortals.xhx.module.window.model.WindowWorkmanPerformDetailEntity;
import com.mortals.xhx.module.window.model.WindowWorkmanPerformDetailQuery;
import com.mortals.xhx.module.window.model.WindowWorkmanPerformEntity;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
......@@ -7,6 +20,11 @@ import com.mortals.xhx.module.window.dao.WindowPerformDao;
import com.mortals.xhx.module.window.model.WindowPerformEntity;
import com.mortals.xhx.module.window.service.WindowPerformService;
import lombok.extern.slf4j.Slf4j;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
* WindowPerformService
* 大厅窗口信息 service实现
......@@ -17,5 +35,43 @@ import lombok.extern.slf4j.Slf4j;
@Service("windowPerformService")
@Slf4j
public class WindowPerformServiceImpl extends AbstractCRUDServiceImpl<WindowPerformDao, WindowPerformEntity, Long> implements WindowPerformService {
@Autowired
private CheckWindowPerformService checkWindowPerformService;
@Override
protected void saveAfter(WindowPerformEntity entity, Context context) throws AppException {
if(entity.getFillStatus()== FillStatusEnum.提交.getValue()){
saveToCheck(entity);
}
super.saveAfter(entity, context);
}
@Override
protected void updateAfter(WindowPerformEntity entity, Context context) throws AppException {
if(entity.getFillStatus()== FillStatusEnum.提交.getValue()){
saveToCheck(entity);
}
super.updateAfter(entity, context);
}
@Override
protected void removeAfter(Long[] ids, Context context, int result) throws AppException {
List<CheckWindowPerformEntity> performEntitys = checkWindowPerformService.find(new CheckWindowPerformQuery().recordIdList(Arrays.asList(ids)));
checkWindowPerformService.removeList(performEntitys,context);
super.removeAfter(ids, context, result);
}
private void saveToCheck(WindowPerformEntity entity){
CheckWindowPerformEntity perform = new CheckWindowPerformEntity();
perform.initAttrValue();
BeanUtils.copyProperties(entity, perform, BeanUtil.getNullPropertyNames(entity));
perform.setId(null);
perform.setRecordId(entity.getId());
perform.setFromName("市政务服务大厅窗口考核登记表");
perform.setSubmitDate(entity.getFillDate());
perform.setUpdateTime(null);
perform.setUpdateUserId(null);
checkWindowPerformService.save(perform);
}
}
\ No newline at end of file
package com.mortals.xhx.module.window.service.impl;
import com.mortals.xhx.common.code.FillStatusEnum;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.module.check.model.CheckWindowPerformEntity;
import com.mortals.xhx.module.check.model.CheckWindowPerformQuery;
import com.mortals.xhx.module.check.model.CheckWindowWorkmanPerformEntity;
import com.mortals.xhx.module.check.model.CheckWindowWorkmanPerformQuery;
import com.mortals.xhx.module.check.service.CheckWindowPerformService;
import com.mortals.xhx.module.check.service.CheckWindowWorkmanPerformService;
import com.mortals.xhx.module.window.model.WindowWorkmanPerformDetailEntity;
import com.mortals.xhx.module.window.model.WindowWorkmanPerformDetailQuery;
import com.mortals.xhx.module.window.service.WindowWorkmanPerformDetailService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
......@@ -30,6 +39,8 @@ public class WindowWorkmanPerformServiceImpl extends AbstractCRUDServiceImpl<Win
@Autowired
private WindowWorkmanPerformDetailService windowWorkmanPerformDetailService;
@Autowired
private CheckWindowWorkmanPerformService checkWindowWorkmanPerformService;
@Override
......@@ -42,6 +53,9 @@ public class WindowWorkmanPerformServiceImpl extends AbstractCRUDServiceImpl<Win
});
windowWorkmanPerformDetailService.save(entity.getWorkmanPerformDetailList());
}
if(entity.getFillStatus()== FillStatusEnum.提交.getValue()){
saveToCheck(entity);
}
super.saveAfter(entity, context);
}
......@@ -59,6 +73,9 @@ public class WindowWorkmanPerformServiceImpl extends AbstractCRUDServiceImpl<Win
});
windowWorkmanPerformDetailService.save(entity.getWorkmanPerformDetailList());
}
if(entity.getFillStatus()== FillStatusEnum.提交.getValue()){
saveToCheck(entity);
}
super.updateAfter(entity, context);
}
......@@ -66,6 +83,21 @@ public class WindowWorkmanPerformServiceImpl extends AbstractCRUDServiceImpl<Win
protected void removeAfter(Long[] ids, Context context, int result) throws AppException {
List<WindowWorkmanPerformDetailEntity> detailEntities = windowWorkmanPerformDetailService.find(new WindowWorkmanPerformDetailQuery().performIdList(Arrays.asList(ids)));
windowWorkmanPerformDetailService.removeList(detailEntities, context);
List<CheckWindowWorkmanPerformEntity> performEntitys = checkWindowWorkmanPerformService.find(new CheckWindowWorkmanPerformQuery().recordIdList(Arrays.asList(ids)));
checkWindowWorkmanPerformService.removeList(performEntitys,context);
super.removeAfter(ids, context, result);
}
private void saveToCheck(WindowWorkmanPerformEntity entity){
CheckWindowWorkmanPerformEntity perform = new CheckWindowWorkmanPerformEntity();
perform.initAttrValue();
BeanUtils.copyProperties(entity, perform, BeanUtil.getNullPropertyNames(entity));
perform.setId(null);
perform.setRecordId(entity.getId());
perform.setFromName("市政务服务大厅窗口工作人员考核汇总表");
perform.setSubmitDate(entity.getFillDate());
perform.setUpdateTime(null);
perform.setUpdateUserId(null);
checkWindowWorkmanPerformService.save(perform);
}
}
\ No newline at end of file
......@@ -3,6 +3,8 @@ package com.mortals.xhx.common.pdu.window;
import com.mortals.framework.model.BaseEntityLong;
import lombok.Data;
import java.util.List;
@Data
public class WindowPdu extends BaseEntityLong {
/**
......@@ -87,4 +89,7 @@ public class WindowPdu extends BaseEntityLong {
*/
private String hallName;
/** 序号,主键,自增长排除列表 */
private List<Long> idNotList;
}
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