diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/ghkh/controller/GhkhGhzbController.java b/src/main/java/com/budwk/app/zhgh/dayofficework/ghkh/controller/GhkhGhzbController.java index da5a666..813bca3 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/ghkh/controller/GhkhGhzbController.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/ghkh/controller/GhkhGhzbController.java @@ -2,9 +2,12 @@ package com.budwk.app.zhgh.dayofficework.ghkh.controller; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.util.StrUtil; import com.budwk.app.base.param.PageForm; import com.budwk.app.base.result.Result; +import com.budwk.app.zhgh.dayofficework.ghkh.model.Kh_bz; import com.budwk.app.zhgh.dayofficework.ghkh.model.Kh_zb; +import com.budwk.app.zhgh.dayofficework.ghkh.model.Kh_zp; import com.budwk.app.zhgh.dayofficework.ghkh.model.kh_nr; import com.budwk.app.zhgh.dayofficework.ghkh.service.KhBzService; import com.budwk.app.zhgh.dayofficework.ghkh.service.KhNrService; @@ -16,13 +19,18 @@ import org.nutz.dao.sql.Sql; import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.Lang; import org.nutz.lang.Strings; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.POST; import org.nutz.mvc.annotation.Param; +import java.util.ArrayList; import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; /** * Created with IntelliJ IDEA. @@ -101,21 +109,53 @@ public class GhkhGhzbController { @SaCheckPermission("ghkh.khzb") @Aop(TransAop.READ_COMMITTED) public Result doEdit(@Param(value = "kh_zb") Kh_zb kh_zb, @Param(value = "type") String type) { - khZbService.updateIgnoreNull(kh_zb); + // 查出数据库里面的考核内容和标准,找出需要删除的 + List nrList = khNrService.query(Cnd.where(kh_nr::getZb_id, "=", kh_zb.getId())); + // 查出考核内容(那个傻逼写的,他妈的zb_id都他妈的不存,真的是人才嘞,我踏马还要去根据nrList里面的主键Id去查询) + Set nrIdList = nrList.stream().map(kh_nr::getId).collect(Collectors.toSet()); + List bzList = khBzService.query(Cnd.where(Kh_bz::getNr_id, "in", nrIdList)); - List query = khNrService.query(Cnd.where("zb_id", "=", kh_zb.getId())); + // 构建考核内容 + List nrs = kh_zb.getNrs().stream().peek(v -> v.setZb_id(kh_zb.getId())).toList(); + List webNrIdList = nrs.stream().map(kh_nr::getId).toList(); - for (kh_nr kh_nr : query) { - System.err.println(kh_nr.getZb_id()); - khBzService.clear(Cnd.where("nr_id", "=", kh_nr.getId())); - } + // 构建考核标准 + List bzs = nrs.stream() + .map(v -> { + return v.getBzs().stream().peek(bz -> { + bz.setNr_id(v.getId()); + bz.setZb_id(kh_zb.getId()); + }).toList(); + }).flatMap(List::stream).toList(); + List webBzIdList = bzs.stream().map(Kh_bz::getId).toList(); - khNrService.clear(Cnd.where("zb_id", "=", kh_zb.getId())); - for (kh_nr nr : kh_zb.getNrs()) { - nr.setZb_id(kh_zb.getId()); - khNrService.insertWith(nr, "bzs"); - } + // 找不同,找出需要删除的内容和标准 + List deleteNrs = nrList.stream().filter(v -> !webNrIdList.contains(v.getId())).toList(); + List deleteBzs = bzList.stream().filter(v -> !webBzIdList.contains(v.getId())).toList(); + + // 找出bzs和nrs中Id是null的 + List insertNrList = nrs.stream().filter(v -> StrUtil.isBlank(v.getId())).toList(); + List insertBzList = bzs.stream().filter(v -> StrUtil.isBlank(v.getId())).toList(); + + // 新增数据 + khBzService.insert(insertBzList); + khNrService.insert(insertNrList); + + // 删除数据 + if (Lang.isNotEmpty(deleteNrs)) { + khNrService.delete(deleteNrs.stream().map(kh_nr::getId).toList()); + } + if (Lang.isNotEmpty(deleteBzs)) { + khBzService.delete(deleteBzs.stream().map(Kh_bz::getId).toList()); + } + + // 修改考核指标 + khZbService.updateIgnoreNull(kh_zb); + // 新增或修改考核内容 + khNrService.updateIgnoreNull(nrs); + // 新增或修改考核标准 + khBzService.updateIgnoreNull(bzs); return Result.success(); } diff --git a/src/main/resources/views/layouts/platform.html b/src/main/resources/views/layouts/platform.html index c4e4444..6ba60aa 100644 --- a/src/main/resources/views/layouts/platform.html +++ b/src/main/resources/views/layouts/platform.html @@ -309,7 +309,6 @@ layout("/layouts/v4/baseLayout.html"){ }, methods: { menuSelect(index, indexPath) { - debugger try { const app = JSON.parse(window.sessionStorage.getItem("zhgh_sub_app")) window.sessionStorage.setItem("zhgh_sub_app_left_menu_active_index-" + app.id, index) @@ -319,7 +318,6 @@ layout("/layouts/v4/baseLayout.html"){ }, // 获取菜单 getMenus(appId) { - debugger if (!appId) return this.$axios.post("/platform/sys/user/subAppMenus", {appId}).then((res) => { if (res.code === 0) { @@ -334,7 +332,6 @@ layout("/layouts/v4/baseLayout.html"){ // 设置应用信息 setAppInfo(app) { - debugger if (app) { // 储存到缓存 window.sessionStorage.setItem("zhgh_sub_app", JSON.stringify(app)) @@ -350,7 +347,6 @@ layout("/layouts/v4/baseLayout.html"){ }, // 菜单回显 echoMenus() { - debugger try { const app = JSON.parse(window.sessionStorage.getItem("zhgh_sub_app")) this.activeMenuIndex = window.sessionStorage.getItem("zhgh_sub_app_left_menu_active_index-" + app.id) @@ -371,7 +367,6 @@ layout("/layouts/v4/baseLayout.html"){ // 地址选中 hrefSelect() { - debugger function findMenuPath(menus, targetHref) { function search(items, path) { for (const item of items) { @@ -404,7 +399,6 @@ layout("/layouts/v4/baseLayout.html"){ // 默认选中 defaultSelect() { - debugger // 查找第一个有href的子菜单 function findFirstChildWithHref(menus) { for (const menu of menus) { @@ -430,7 +424,6 @@ layout("/layouts/v4/baseLayout.html"){ } const result = findFirstChildWithHref(this.menus) - debugger if (result) { this.activeMenuIndex = result.menu.id this.openedMenus = result.parentIds @@ -451,7 +444,6 @@ layout("/layouts/v4/baseLayout.html"){ }, init() { - debugger // 页面加载时获取到正确的菜单 const pathname = window.location.pathname if (!pathname.startsWith("/platform/v4/subApp")) { diff --git a/src/main/resources/views/layouts/v4/baseLayout.html b/src/main/resources/views/layouts/v4/baseLayout.html index 7f3b5f4..57ff465 100644 --- a/src/main/resources/views/layouts/v4/baseLayout.html +++ b/src/main/resources/views/layouts/v4/baseLayout.html @@ -150,8 +150,8 @@ } connect() { - //const WS_URL = window.location.host + "${base}/websocket" - const WS_URL = 'zhgh.jshvc.edu.cn' + "${base}/websocket" + const WS_URL = window.location.host + "${base}/websocket" + // const WS_URL = 'zhgh.jshvc.edu.cn' + "${base}/websocket" const protocol = window.location.protocol === "http:" ? "ws://" : "wss://" this.ws = new WebSocket(protocol + WS_URL) } diff --git a/src/main/resources/views/platform/zhgh/dayofficework/ghkh/khzb.html b/src/main/resources/views/platform/zhgh/dayofficework/ghkh/khzb.html index 99bf6e3..c0355fd 100644 --- a/src/main/resources/views/platform/zhgh/dayofficework/ghkh/khzb.html +++ b/src/main/resources/views/platform/zhgh/dayofficework/ghkh/khzb.html @@ -47,10 +47,10 @@ layout("/layouts/platform.html"){ :width="column.width" header-align="center" show-overflow-tooltip> -