diff --git a/ruoyi-ui/src/views/benyi/dayflowassessment/index.vue b/ruoyi-ui/src/views/benyi/dayflowassessment/index.vue index 7e13612ec..e0e346f7b 100644 --- a/ruoyi-ui/src/views/benyi/dayflowassessment/index.vue +++ b/ruoyi-ui/src/views/benyi/dayflowassessment/index.vue @@ -68,6 +68,7 @@ prop="classid" :formatter="classFormat" /> + <el-table-column label="班级平均分" align="center" prop="classdf" /> <el-table-column label="主班教师" align="center" prop="bzbh" :formatter="bzbhFormat" /> <el-table-column label="配班教师" align="center" prop="pbbh" :formatter="pbbhFormat"/> <el-table-column label="助理教师" align="center" prop="zlbh" :formatter="zlbhFormat"/> @@ -306,6 +307,7 @@ export default { zzdf: undefined, kfcs: undefined, pgdx: undefined, + classdf: undefined, createUserid: undefined, }, // 表单参数 @@ -485,6 +487,7 @@ export default { zzdf: undefined, kfcs: undefined, pgdx: undefined, + classdf: undefined, createUserid: undefined, createTime: undefined, }; diff --git a/ruoyi-ui/src/views/benyi/dayflowassessment/teacher.vue b/ruoyi-ui/src/views/benyi/dayflowassessment/teacher.vue new file mode 100644 index 000000000..a87581b0e --- /dev/null +++ b/ruoyi-ui/src/views/benyi/dayflowassessment/teacher.vue @@ -0,0 +1,361 @@ +<template> + <div class="app-container"> + <div class="flex align-center justify-between student-main-title"> + <p class="title flex align-center"> + <span>幼儿园:{{ deptFormat(deptId) }} </span> + <span>行为人:{{ teacherFormat(teacherName) }} </span> + <span>班级:{{ classFormat(classid) }} </span> + <span>学期:{{ xnxqFormat(xnxq) }} </span> + <span>班长:{{ teacherFormat(zbjsxm) }} </span> + <span>配班教师:{{ teacherFormat(pbjs) }} </span> + <span>助理教师:{{ teacherFormat(zljs) }} </span> + </p> + <el-button + type="primary" + icon="el-icon-s-data" + size="mini" + @click="submitForm" + v-hasPermi="['benyi:dayflowassessment:edit']" + v-prevent-re-click + >提交评估</el-button + > + </div> + <el-tabs v-model="activeName" type="card"> + <div + class="block" + v-for="itemTask in dayflowtaskList" + :key="itemTask.code" + > + <h2 class="block-item-title flex align-center"> + {{ itemTask.taskLable }} + </h2> + + <div + class="checkbox-content" + v-for="itemBz in dayflowstandardList.filter( + (p) => p.taskCode == itemTask.code + )" + :key="itemBz.id" + > + <p class="checkbox-item flex align-center"> + <el-checkbox-group v-model="checkList"> + <el-checkbox :label="itemBz.id" :key="itemBz.id" + >{{ itemBz.standardTitle }}分值: {{ itemBz.score }}分 + </el-checkbox> + </el-checkbox-group> + </p> + <div class="check-info" v-if="itemBz.score"> + <!-- {{ itemBz.score }} --> + </div> + </div> + </div> + </el-tabs> + </div> +</template> +<script> +import { + listDayflowassessment, + getDayflowassessment, + delDayflowassessment, + addDayflowassessment, + updateDayflowassessment, +} from "@/api/benyi/dayflowassessment"; +import { listDayflowtask } from "@/api/benyi/dayflow/dayflowtask"; +import { listStandard } from "@/api/benyi/dayflow/biaozhun/standard"; +import { listDept, getDept } from "@/api/system/dept"; +import { listClass } from "@/api/system/class"; +import { listUser } from "@/api/system/user"; + +export default { + name: "Assessmentstudent", + + data() { + return { + teacherName: "", + planid: "", + xnxq: "", + classid: "", + zbjsxm: "", + pbjs: "", + zljs: "", + deptId: "", + bzmf: "", + kfz: "", + classdf: "", + assessmentsCode: "", + // 遮罩层 + loading: true, + // 选中数组 + ids: [], + // 评估内容表格数据 + assessmentcontentList: [], + + // 根据一日流程id查到的名下任务列表 + dayflowtaskList: [], + // 根据任务查询到名下标准 + dayflowstandardList: [], + // 学校列表 + deptOptions: [], + //班级 + classOptions: [], + // 所有教师 + userOptions: [], + // 学年学期 + xnxqOptions: [], + // 表单参数 + form: {}, + // 查询一日流程任务 + queryParams_detail: { + detailId: undefined, + }, + // 查询一日流程标准 + queryParams_standard: { + task_code: undefined, + }, + // 查询参数 + queryParams: { + parentid: undefined, + name: undefined, + iselement: undefined, + scope: undefined, + sort: undefined, + }, + activeName: "一日流程评估", + checked: false, + checkList: [], + }; + }, + created() { + // this.getList(); + const dayflowassessmentId = this.$route.params && this.$route.params.id; + this.dayflowassessmentId = dayflowassessmentId; + this.getDayflowassessmentContent(dayflowassessmentId); + this.getDeptList(); + this.getClassList(); + this.getUserList(); + this.getDicts("sys_xnxq").then((response) => { + this.xnxqOptions = response.data; + }); + }, + methods: { + getDayflowassessmentContent(dayflowassessmentId) { + getDayflowassessment(dayflowassessmentId).then((response) => { + if (response.code == "200") { + this.teacherName = response.data.pgdx; + this.xnxq = response.data.xnxq; + this.classid = response.data.classid; + this.bzmf = response.data.bzmf; + this.kfz = response.data.kfz; + this.zbjsxm = response.data.bzbh; + this.pbjs = response.data.pbbh; + this.zljs = response.data.zlbh; + this.deptId = response.data.deptId; + this.planid = response.data.planid; + this.classdf = response.data.classdf; + this.queryParams_detail.detailId = response.data.bzid; + this.assessmentsCode = response.data.code; + this.getTaskList(); + } + }); + }, + // 学校字典翻译 + deptFormat(deptId) { + var actions = []; + var datas = this.deptOptions; + Object.keys(datas).map((key) => { + if (datas[key].deptId == "" + deptId) { + actions.push(datas[key].deptName); + return false; + } + }); + return actions.join(""); + }, + // 班级字典翻译 + classFormat(classid) { + var actions = []; + var datas = this.classOptions; + Object.keys(datas).map((key) => { + if (datas[key].bjbh == "" + classid) { + actions.push(datas[key].bjmc); + return false; + } + }); + return actions.join(""); + }, + // 教师字典翻译 + teacherFormat(val) { + var actions = []; + var datas = this.userOptions; + Object.keys(datas).map((key) => { + if (datas[key].userId == "" + val) { + actions.push(datas[key].nickName); + return false; + } + }); + return actions.join(""); + }, + // 学年学期类型--字典状态字典翻译 + xnxqFormat(xnxq) { + return this.selectDictLabel(this.xnxqOptions, xnxq); + }, + /** 查询用户列表 */ + getUserList() { + listUser(null).then( + (response) => { + this.userOptions = response.rows; + } + ); + }, + /** 查询幼儿园机构列表 */ + getDeptList() { + listDept(null).then(response => { + this.deptOptions = response.data; + }); + }, + //班级列表 + getClassList() { + listClass(null).then((response) => { + this.classOptions = response.rows; + }); + }, + /** 查询一日流程任务列表 */ + getTaskList() { + listDayflowtask(this.queryParams_detail).then((response) => { + this.dayflowtaskList = response.rows; + }); + listStandard(null).then((response) => { + this.dayflowstandardList = response.rows; + }); + }, + + /** 提交按钮 */ + submitForm: function () { + this.$confirm("确认评估数据?评估后数据不能取消", "警告", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + callback: (action) => { + if (action === "confirm") { + var items = ""; + this.checkList.forEach((item) => { + //当全选被选中的时候,循环遍历源数据,把数据的每一项加入到默认选中的数组去 + items = items + item + ","; + }); + if (this.checkList.length == 0) { + this.msgError("请至少选择一项数据"); + } else { + this.form.id = this.dayflowassessmentId; + // this.form.classid = this.classid; + this.form.items = items; + this.form.pgdx = this.teacherName; + this.form.bzbh = this.zbjsxm; + this.form.planid = this.planid; + this.form.kfz = this.kfz; + this.form.bzmf = this.bzmf; + updateDayflowassessment(this.form).then((response) => { + if (response.code === 200) { + this.msgSuccess("评估成功"); + this.$router.go(-1) + this.$store.dispatch('tagsView/delView', this.$route) + // this.$router.push({ + // path: + // "/benyi/dayflowassessment", + // }); + } + }); + } + } else { + } + }, + }); + }, + }, +}; +</script> +<style lang="scss" scoped> +// 禁止复制 +div { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.title { + padding: 10px 0; + font-weight: 600; + flex-wrap: wrap; + padding-right: 10px; + line-height: 20px; + span { + font-size: 16px; + padding: 0 4px; + // &:nth-of-type(2) { + // font-size: 14px; + // font-weight: normal; + // } + } +} +.block { + padding: 10px; + color: #333; + .block-item-title { + padding: 10px 0; + margin: 0; + font-size: 16px; + font-weight: 500; + &::before { + content: ""; + margin-right: 8px; + width: 4px; + height: 14px; + background: #1890ff; + } + } + + .block-content { + border-radius: 5px; + padding: 10px; + background: #fcfcfc; + .block-content-title { + font-size: 14px; + font-weight: bold; + line-height: 24px; + padding-bottom: 5px; + .num { + font-size: 16px; + } + } + .checkbox-content { + padding-left: 20px; + margin-bottom: 15px; + } + .checkbox-item { + font-size: 14px; + line-height: 22px; + } + .check-info { + padding-left: 24px; + line-height: 18px; + font-size: 12px; + color: #999; + p { + padding-left: 10px; + } + } + .el-checkbox { + display: flex; + white-space: normal; + .el-checkbox__input { + margin-top: 2px; + } + } + } +} +@media (max-width: 768.98px) { + .title span { + font-size: 12px; + } +} +</style> diff --git a/ruoyi-ui/src/views/benyi/news/index.vue b/ruoyi-ui/src/views/benyi/news/index.vue index 66fd152b7..22e2e5380 100644 --- a/ruoyi-ui/src/views/benyi/news/index.vue +++ b/ruoyi-ui/src/views/benyi/news/index.vue @@ -314,6 +314,7 @@ export default { getDeptList() { listDept(null).then((response) => { this.deptOptions = response.data; + console.log(response.data); }); }, // 用户列表 diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByDayflowassessmentController.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByDayflowassessmentController.java index d8cf18eca..c39a71bce 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByDayflowassessmentController.java +++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByDayflowassessmentController.java @@ -88,19 +88,99 @@ public class ByDayflowassessmentController extends BaseController { @Log(title = "幼儿园一日流程评估", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ByDayflowassessment byDayflowassessment) { + AjaxResult ajax = AjaxResult.success(); if (byDayflowassessment.getItems() != null) { // 取出标准id并根据id查询此标准的分数 String[] arr = byDayflowassessment.getItems().split(","); // 勾选的总分数sum Double sum = 0.0; - for (int i=0; i<arr.length; i++) { + for (int i = 0; i < arr.length; i++) { sum += byDayFlowStandardService.selectByDayFlowStandardById(Long.parseLong(arr[i])).getScore(); } - byDayflowassessment.setZzdf(sum); - byDayflowassessment.setKfz(byDayflowassessment.getBzmf()-sum); + // 标准满分 + Double bzmfAll = byDayflowassessment.getBzmf(); + // 总扣分值 + Double sumKfz = 0.0; + sumKfz = bzmfAll - sum; - return toAjax(byDayflowassessmentService.updateByDayflowassessment(byDayflowassessment)); - }else { + // 如果评估对象是主班教师 直接更新主板分数 + if (byDayflowassessment.getPgdx().equals(byDayflowassessment.getBzbh())) { + // 主班教师扣分值 + Double zbjsKfz = byDayflowassessment.getKfz() + sumKfz; + byDayflowassessment.setKfz(zbjsKfz); + // 判断扣分值是否超过满分 + if (zbjsKfz.compareTo(bzmfAll) < 0) { + byDayflowassessment.setZzdf(bzmfAll - zbjsKfz); + } else { + byDayflowassessment.setZzdf(0.0); + } + byDayflowassessmentService.updateByDayflowassessment(byDayflowassessment); + // 设置班级平均分 + ByDayflowassessment byDayflowassessment2 = new ByDayflowassessment(); + byDayflowassessment2.setClassid(byDayflowassessment.getClassid()); + byDayflowassessment2.setPlanid(byDayflowassessment.getPlanid()); + List<ByDayflowassessment> list2 = byDayflowassessmentService.selectByDayflowassessmentList(byDayflowassessment2); + if (list2 != null && list2.size() > 0) { + Double total = 0.0; + Double avg = 0.0; + for (int i = 0; i < list2.size(); i++) { + total += list2.get(i).getZzdf(); + } + avg = total / list2.size(); + + for (int j = 0; j < list2.size(); j++) { + byDayflowassessment2.setId(list2.get(j).getId()); + byDayflowassessment2.setClassdf(avg); + byDayflowassessmentService.updateByDayflowassessment(byDayflowassessment2); + } + } + return ajax; + } else { + //如果是配班或者助理 先更新配班或者助理分数 再更新主班教师分数 + byDayflowassessment.setKfz(sumKfz); + byDayflowassessment.setZzdf(sum); + byDayflowassessmentService.updateByDayflowassessment(byDayflowassessment); + // 继续扣除主班教师分数 + ByDayflowassessment byDayflowassessment1 = new ByDayflowassessment(); + // 其他老师扣分项 + byDayflowassessment1.setPgdx(byDayflowassessment.getBzbh()); + byDayflowassessment1.setPlanid(byDayflowassessment.getPlanid()); + List<ByDayflowassessment> list = byDayflowassessmentService.selectByDayflowassessmentList(byDayflowassessment1); + if (list != null && list.size() > 0) { + // 主班教师当前扣分值 + Double zbjsDqkfz = list.get(0).getKfz() + sumKfz; + byDayflowassessment1.setKfz(zbjsDqkfz); + // 主班教师当前最终得分 + byDayflowassessment1.setId(list.get(0).getId()); + // 如果扣分值超出满分 则主班分数等于0 + if (zbjsDqkfz.compareTo(bzmfAll) < 0) { + byDayflowassessment1.setZzdf(bzmfAll - zbjsDqkfz); + } else { + byDayflowassessment1.setZzdf(0.0); + } + byDayflowassessmentService.updateByDayflowassessment(byDayflowassessment1); + // 设置班级平均分 + ByDayflowassessment byDayflowassessment3 = new ByDayflowassessment(); + byDayflowassessment3.setClassid(byDayflowassessment.getClassid()); + byDayflowassessment3.setPlanid(byDayflowassessment.getPlanid()); + List<ByDayflowassessment> list3 = byDayflowassessmentService.selectByDayflowassessmentList(byDayflowassessment3); + if (list3 != null && list3.size() > 0) { + Double total2 = 0.0; + Double avg2 = 0.0; + for (int i = 0; i < list3.size(); i++) { + total2 += list3.get(i).getZzdf(); + } + avg2 = total2 / list3.size(); + for (int j = 0; j < list3.size(); j++) { + byDayflowassessment3.setId(list3.get(j).getId()); + byDayflowassessment3.setClassdf(avg2); + byDayflowassessmentService.updateByDayflowassessment(byDayflowassessment3); + } + } + } + return ajax; + } + } else { return AjaxResult.error("未勾选评估选项"); } } diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByDayflowassessment.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByDayflowassessment.java index 528c185e4..8e6d07bdc 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByDayflowassessment.java +++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByDayflowassessment.java @@ -101,6 +101,12 @@ public class ByDayflowassessment extends BaseEntity { @Excel(name = "扣分值") private Double kfz; + /** + * 班级得分 + */ + @Excel(name = "班级得分") + private Double classdf; + /** * 扣分次数 */ @@ -269,6 +275,7 @@ public class ByDayflowassessment extends BaseEntity { .append("xnxq", getXnxq()) .append("bzid", getBzid()) .append("kfz", getKfz()) + .append("classdf", getClassdf()) .append("kfcs", getKfcs()) .append("bzmf", getBzmf()) .append("zzdf", getZzdf()) @@ -303,4 +310,12 @@ public class ByDayflowassessment extends BaseEntity { public void setItems(String items) { this.items = items; } + + public Double getClassdf() { + return classdf; + } + + public void setClassdf(Double classdf) { + this.classdf = classdf; + } } diff --git a/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysDeptController.java b/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysDeptController.java index 0c0b1d254..e2c094487 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysDeptController.java +++ b/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysDeptController.java @@ -46,7 +46,7 @@ public class SysDeptController extends BaseController { /** * 获取部门列表 */ - @PreAuthorize("@ss.hasPermi('system:dept:list')" + "||@ss.hasPermi('benyi:news:list')") + @PreAuthorize("@ss.hasPermi('system:dept:list')" + "||@ss.hasPermi('benyi:news:list')" + "||@ss.hasPermi('benyi:dayflowassessment:list')") @GetMapping("/list") public AjaxResult list(SysDept dept) { List<SysDept> depts = deptService.selectDeptList(dept); diff --git a/ruoyi/src/main/resources/mybatis/benyi/ByDayflowassessmentMapper.xml b/ruoyi/src/main/resources/mybatis/benyi/ByDayflowassessmentMapper.xml index 0f0071d76..8d16bef42 100644 --- a/ruoyi/src/main/resources/mybatis/benyi/ByDayflowassessmentMapper.xml +++ b/ruoyi/src/main/resources/mybatis/benyi/ByDayflowassessmentMapper.xml @@ -20,6 +20,7 @@ <result property="bzmf" column="bzmf"/> <result property="zzdf" column="zzdf"/> <result property="kfz" column="kfz"/> + <result property="classdf" column="classdf"/> <result property="kfcs" column="kfcs"/> <result property="pgdx" column="pgdx"/> <result property="createUserid" column="create_userid"/> @@ -27,7 +28,7 @@ </resultMap> <sql id="selectByDayflowassessmentVo"> - select id, planid, dept_id, classid, bzbh, bzxm, pbbh, pbxm, zlbh, zlxm, bzmf, zzdf, xnxq, bzid, kfz, kfcs, pgdx, create_userid, create_time from by_dayflowassessment + select id, planid, dept_id, classid, classdf, bzbh, bzxm, pbbh, pbxm, zlbh, zlxm, bzmf, zzdf, xnxq, bzid, kfz, kfcs, pgdx, create_userid, create_time from by_dayflowassessment </sql> <select id="selectByDayflowassessmentList" parameterType="ByDayflowassessment" @@ -46,6 +47,7 @@ <if test="xnxq != null and xnxq != ''">and xnxq = #{xnxq}</if> <if test="bzid != null ">and bzid = #{bzid}</if> <if test="kfz != null ">and kfz = #{kfz}</if> + <if test="classdf != null ">and classdf = #{classdf}</if> <if test="bzmf != null ">and bzmf = #{bzmf}</if> <if test="zzdf != null ">and zzdf = #{zzdf}</if> <if test="kfcs != null ">and kfcs = #{kfcs}</if> @@ -74,6 +76,7 @@ <if test="xnxq != null and xnxq != ''">xnxq,</if> <if test="bzid != null ">bzid,</if> <if test="kfz != null ">kfz,</if> + <if test="classdf != null ">classdf,</if> <if test="bzmf != null ">bzmf,</if> <if test="zzdf != null ">zzdf,</if> <if test="kfcs != null ">kfcs,</if> @@ -94,6 +97,7 @@ <if test="xnxq != null and xnxq != ''">#{xnxq},</if> <if test="bzid != null ">#{bzid},</if> <if test="kfz != null ">#{kfz},</if> + <if test="classdf != null ">#{classdf},</if> <if test="bzmf != null ">#{bzmf},</if> <if test="zzdf != null ">#{zzdf},</if> <if test="kfcs != null ">#{kfcs},</if> @@ -118,6 +122,7 @@ <if test="xnxq != null and xnxq != ''">xnxq = #{xnxq},</if> <if test="bzid != null ">bzid = #{bzid},</if> <if test="kfz != null ">kfz = #{kfz},</if> + <if test="classdf != null ">classdf = #{classdf},</if> <if test="bzmf != null ">bzmf = #{bzmf},</if> <if test="zzdf != null ">zzdf = #{zzdf},</if> <if test="kfcs != null ">kfcs = #{kfcs},</if>