diff --git a/src/main/java/io/v/nutz/wakershome/controller/data/WakesHomeDataRevelController.java b/src/main/java/io/v/nutz/wakershome/controller/data/WakesHomeDataRevelController.java new file mode 100644 index 0000000..42f9674 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/controller/data/WakesHomeDataRevelController.java @@ -0,0 +1,185 @@ +package io.v.nutz.wakershome.controller.data; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import cn.wizzer.framework.page.Pagination; +import io.v.nutz.annontation.ViReturn; +import io.v.nutz.base.result.Result; +import io.v.nutz.base.utils.Roles; +import io.v.nutz.modules.models.PageForm; +import io.v.nutz.sys.models.Sys_file; +import io.v.nutz.sys.models.Sys_user_role; +import io.v.nutz.sys.models.User; +import io.v.nutz.wakershome.model.WakesHomeDataRevel; +import io.v.nutz.wakershome.service.WakesHomeInfoService; +import io.v.nutz.web.commons.utils.ShiroUtil; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Criteria; +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.random.R; +import org.nutz.lang.util.NutMap; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * @version 1.0 + * @Author zzr + * @name:WakesHomeDataRevelController + * @Date 2024/7/30 15:48 + * @注释 职工建家资料管理 + */ +@IocBean +@Ok("json:full") +@At("/platform/wakeshome/data/revel") +public class WakesHomeDataRevelController { + + @Inject + private Dao dao; + + @Inject + private WakesHomeInfoService wakesHomeInfoService; + + @At("") + @Ok("beetl:/platform/wakeshome/data/revel.html") + @RequiresPermissions("wakeshome.data.revel") + public void index() { + } + + + @At + @ViReturn + @RequiresPermissions("wakeshome.data.revel") + public Object getTreeData(@Param(value = "year", required = false) String year, + @Param(value = "revelName", required = false) String revelName, + @Param(value = "typeId", required = false) String typeId) { + NutMap nutMap = NutMap.NEW(); + nutMap.setv("unionname", "工会委员会"); + Sql sql = Sqls.create(""" + select + un.*, + (select count(*) from wakes_home_data_revel whdr where whdr.unionId = un.id $revelCount) as revelCount + from + sys_union un + $condition + """); + Criteria criteria = Cnd.cri(); + criteria.where().setTop(false); + if (StringUtils.isNotBlank(year)) { + criteria.where().and("year(whdr.time)", "=", year); + } + if (StringUtils.isNotBlank(revelName)) { + criteria.where().and(Cnd.likeEX("whdr.revelName", revelName)); + } + if (StringUtils.isNotBlank(typeId)) { + criteria.where().and("whdr.typeId", "=", typeId); + } + if (!criteria.where().isEmpty()) { + sql.vars().set("revelCount", "and " + criteria.toSql(null)); + } + + Cnd cnd = Cnd.NEW(); + if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { + List data = dao.query(Sys_user_role.class, Cnd.where("userId", "=", ShiroUtil.getUserId()).and("roleId", "=", Roles.UNION_MANGER)); + List unionIds = data.stream().map(Sys_user_role::getUnionid).distinct().collect(Collectors.toList()); + cnd.and("un.id", "in", unionIds); + } + cnd.and("un.isEnable","=",true); + cnd.asc("un.unioncode"); + sql.setCondition(cnd); + nutMap.setv("child", wakesHomeInfoService.listMap(sql)); + return List.of(nutMap); + } + + + @At + @RequiresPermissions("wakeshome.data.revel") + public Object pageData(PageForm pageForm, + @Param(value = "year", required = false) String year, + @Param(value = "revelName", required = false) String revelName, + @Param(value = "typeId", required = false) String typeId, + @Param(value = "unionId", required = false) String unionId) { + try { + Sql sql = Sqls.create(""" + SELECT + whdr.*, + whdt.typeName + FROM + wakes_home_data_revel whdr + LEFT JOIN wakes_home_data_type whdt ON whdr.typeId = whdt.id + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.andEX("year(whdr.time)", "=", year); + if (StrUtil.isNotBlank(revelName)) { + cnd.and(Cnd.likeEX("whdr.revelName", revelName)); + } + cnd.andEX("whdr.typeId", "=", typeId); + cnd.andEX("whdr.unionId", "=", unionId); + cnd.desc("whdr.time"); + sql.setCondition(cnd); + Pagination pagination = wakesHomeInfoService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success(pagination); + } catch (Exception e) { + e.printStackTrace(); + return Result.error(); + } + } + + + @At + @ViReturn +// @RequiresPermissions("wakeshome.data.revel") + public Object doAdd(WakesHomeDataRevel wakesHomeDataRevel) { + User user = dao.fetch(User.class, Cnd.where("id", "=", ShiroUtil.getUserId())); + wakesHomeDataRevel.setId(R.UU32()); + wakesHomeDataRevel.setUserId(user.getId()); + wakesHomeDataRevel.setUsername(user.getUsername()); + wakesHomeDataRevel.setLoginName(user.getLoginname()); + wakesHomeDataRevel.setUnitId(user.getUnitid()); + wakesHomeDataRevel.setUnitName(user.getUnitname()); + wakesHomeDataRevel.setUnionId(user.getUnionid()); + wakesHomeDataRevel.setUnionName(user.getUnionname()); + wakesHomeDataRevel.setTime(DateUtil.now()); + dao.fastInsert(wakesHomeDataRevel); + return null; + } + + + @At + @ViReturn +// @RequiresPermissions("wakeshome.data.revel") + public Object doEdit(WakesHomeDataRevel wakesHomeDataRevel) { + dao.update(wakesHomeDataRevel); + return null; + } + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) +// @RequiresPermissions("wakeshome.data.revel") + public Object doDelete(String id) { + WakesHomeDataRevel revel = dao.fetch(WakesHomeDataRevel.class, id); + if (revel != null) { + if (revel.getFiles() != null && !revel.getFiles().isEmpty()) { + Set fileIds = revel.getFiles().stream().map(Sys_file::getId).collect(Collectors.toSet()); + dao.clear(Sys_file.class, Cnd.where("id", "in", fileIds)); + } + dao.clear(WakesHomeDataRevel.class, Cnd.where("id", "=", id)); + } + return null; + } +} diff --git a/src/main/java/io/v/nutz/wakershome/controller/data/WakesHomeDataTypeController.java b/src/main/java/io/v/nutz/wakershome/controller/data/WakesHomeDataTypeController.java new file mode 100644 index 0000000..5554776 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/controller/data/WakesHomeDataTypeController.java @@ -0,0 +1,137 @@ +package io.v.nutz.wakershome.controller.data; + +import cn.hutool.core.util.StrUtil; +import cn.wizzer.framework.base.Result; +import io.v.nutz.annontation.ViReturn; +import io.v.nutz.modules.models.PageForm; +import io.v.nutz.wakershome.model.WakesHomeDataType; +import io.v.nutz.wakershome.service.WakesHomeInfoService; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Chain; +import org.nutz.dao.Cnd; +import org.nutz.dao.Sqls; +import org.nutz.dao.entity.Record; +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.random.R; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +/** + * @version 1.0 + * @Author zzr + * @name:WakesHomeDataTypeController + * @Date 2024/7/30 15:48 + * @注释 + */ +@IocBean +@Ok("json:full") +@At("/platform/wakeshome/data/type") +public class WakesHomeDataTypeController { + + @Inject + private WakesHomeInfoService wakesHomeInfoService; + + @At("") + @Ok("beetl:/platform/wakeshome/data/type.html") + @RequiresPermissions("wakeshome.data.type") + public void index() { + } + + + @At + @ViReturn + @RequiresPermissions("wakeshome.data.type") + public Object pageData(PageForm pageForm, + @Param(value = "typeName", required = false) String typeName) { + Sql sql = Sqls.create("select * from wakes_home_data_type $condition"); + Cnd cnd = Cnd.NEW(); + if (StrUtil.isNotBlank(typeName)) { + cnd.and(Cnd.likeEX("typeName", typeName)); + } + cnd.asc("serialNum"); + sql.setCondition(cnd); + return wakesHomeInfoService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + } + + + @At + @RequiresPermissions("wakeshome.data.type") + public Object doAdd(WakesHomeDataType wakesHomeDataType) { + try { + int count = wakesHomeInfoService.dao().count("wakes_home_data_type", Cnd.where("code", "=", wakesHomeDataType.getCode())); + if (count > 0) { + return Result.error("编码重复"); + } + wakesHomeDataType.setId(R.UU32()); + int totalCount = wakesHomeInfoService.count("wakes_home_data_type"); + wakesHomeDataType.setSerialNum(totalCount + 1); + wakesHomeInfoService.insert("wakes_home_data_type", Chain.from(wakesHomeDataType)); + return Result.success(); + } catch (Exception e) { + e.printStackTrace(); + return Result.error(); + } + } + + + @At + @RequiresPermissions("wakeshome.data.type") + public Object doEdit(WakesHomeDataType wakesHomeDataType) { + try { + int count = wakesHomeInfoService.count("wakes_home_data_type", Cnd.where("code", "=", wakesHomeDataType.getCode()).and("id", "!=", wakesHomeDataType.getId())); + if (count > 0) { + return Result.error("编码重复"); + } + wakesHomeInfoService.update("wakes_home_data_type", Chain.from(wakesHomeDataType), Cnd.where("id", "=", wakesHomeDataType.getId())); + return Result.success(); + } catch (Exception e) { + e.printStackTrace(); + return Result.error(); + } + } + + @At + @RequiresPermissions("wakeshome.data.type") + public Object doDelete(String id) { + try { + wakesHomeInfoService.clear("wakes_home_data_type", Cnd.where("id", "=", id)); + return Result.success(); + } catch (Exception e) { + e.printStackTrace(); + return Result.error(); + } + } + + + @At + @ViReturn + @RequiresAuthentication + public Object getAllWakesHomeDataType() { + return wakesHomeInfoService.dao().query(WakesHomeDataType.class, Cnd.NEW().asc("serialNum")); + } + + + @At + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions("sys.jdh2.gzzl.lx") + public Object serialNumChange(String id, Integer serialNum, boolean toDown) { + if (toDown) { + WakesHomeDataType next = wakesHomeInfoService.dao().fetch(WakesHomeDataType.class, Cnd.where("serialNum", "=", serialNum + 1)); + next.setSerialNum(serialNum - 1); + wakesHomeInfoService.dao().update(next); + wakesHomeInfoService.dao().update(WakesHomeDataType.class, Chain.make("serialNum", serialNum + 1), Cnd.where("id", "=", id)); + } else { + WakesHomeDataType pre = wakesHomeInfoService.dao().fetch(WakesHomeDataType.class, Cnd.where("serialNum", "=", serialNum - 1)); + pre.setSerialNum(serialNum + 1); + wakesHomeInfoService.dao().update(pre); + wakesHomeInfoService.dao().update(WakesHomeDataType.class, Chain.make("serialNum", serialNum - 1), Cnd.where("id", "=", id)); + } + return Result.success(); + } +} diff --git a/src/main/java/io/v/nutz/wakershome/controller/declaration/WakesHomeDeclarationApplyController.java b/src/main/java/io/v/nutz/wakershome/controller/declaration/WakesHomeDeclarationApplyController.java new file mode 100644 index 0000000..7f6bf54 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/controller/declaration/WakesHomeDeclarationApplyController.java @@ -0,0 +1,77 @@ +package io.v.nutz.wakershome.controller.declaration; + +import cn.hutool.core.util.StrUtil; +import io.v.nutz.annontation.ViReturn; +import io.v.nutz.wakershome.model.WakesHomeApply; +import io.v.nutz.wakershome.service.IWakesHomeApplyService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.random.R; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; + +/** + * @version 1.0 + * @Author zzr + * @name:WakesHomeDeclarationApply + * @Date 2024/7/30 14:06 + * @注释 职工建家申报 + */ +@IocBean +@Ok("json:full") +@At("/platform/wakeshome/declaration/apply") +public class WakesHomeDeclarationApplyController { + + @Inject + private IWakesHomeApplyService wakesHomeApplyService; + + @At("") + @Ok("beetl:/platform/wakeshome/declaration/apply.html") + @RequiresPermissions("wakeshome.declaration.apply") + public void index() {} + + + @At + @ViReturn + @RequiresPermissions("wakeshome.declaration.apply") + public Object doSave(WakesHomeApply wakesHomeApply) { + wakesHomeApply.setState("10000"); + if (wakesHomeApply != null) { + if (StrUtil.isNotBlank(wakesHomeApply.getId())) { + wakesHomeApplyService.update(wakesHomeApply); + } else { + wakesHomeApplyService.setParams(wakesHomeApply); + wakesHomeApplyService.fastInsert(wakesHomeApply); + } + } + return null; + } + + + @At + @ViReturn + @RequiresPermissions("wakeshome.declaration.apply") + public Object doSubmit(WakesHomeApply wakesHomeApply) { + wakesHomeApply.setState("10010"); + if (wakesHomeApply != null) { + if (StrUtil.isNotBlank(wakesHomeApply.getId())) { + wakesHomeApplyService.update(wakesHomeApply); + } else { + wakesHomeApply.setId(R.UU32()); + wakesHomeApplyService.setParams(wakesHomeApply); + wakesHomeApplyService.fastInsert(wakesHomeApply); + } + } + return null; + } + + + @At + @ViReturn + @RequiresPermissions("wakeshome.declaration.apply") + public Object getInfoById(String id){ + return wakesHomeApplyService.findById(id); + } + +} diff --git a/src/main/java/io/v/nutz/wakershome/controller/declaration/WakesHomeDeclarationMineController.java b/src/main/java/io/v/nutz/wakershome/controller/declaration/WakesHomeDeclarationMineController.java new file mode 100644 index 0000000..3f356ad --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/controller/declaration/WakesHomeDeclarationMineController.java @@ -0,0 +1,88 @@ +package io.v.nutz.wakershome.controller.declaration; + +import cn.hutool.core.util.StrUtil; +import io.v.nutz.annontation.ViReturn; +import io.v.nutz.base.utils.Vi; +import io.v.nutz.modules.models.Audit; +import io.v.nutz.modules.models.PageForm; +import io.v.nutz.util.ShiroUtil; +import io.v.nutz.wakershome.model.WakesHomeApply; +import io.v.nutz.wakershome.service.IWakesHomeApplyService; +import org.apache.shiro.authz.annotation.Logical; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Cnd; +import org.nutz.dao.Sqls; +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.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +/** + * @version 1.0 + * @Author zzr + * @name:WakesHomeDeclarationMine + * @Date 2024/7/30 14:06 + * @注释 我的建家申报 + */ +@IocBean +@Ok("json:full") +@At("/platform/wakeshome/declaration/mine") +public class WakesHomeDeclarationMineController { + + @Inject + private IWakesHomeApplyService wakesHomeApplyService; + + @At("") + @Ok("beetl:/platform/wakeshome/declaration/mine.html") + @RequiresPermissions("wakeshome.declaration.mine") + public void index() {} + + + @At + @ViReturn + @RequiresPermissions("wakeshome.declaration.mine") + public Object pageData(PageForm pageForm, + @Param(value = "year",required = false) Integer year, + @Param(value = "unionId",required = false) String unionId){ + Sql sql = Sqls.create(""" + SELECT + wh.*, + audit.stateName + FROM + `wakes_home_apply` wh + LEFT JOIN audit_state audit ON wh.state = audit.stateId + AND audit.module = 'WakesHome' + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.andEX("YEAR(wh.applyDate)","=",year); + if (!ShiroUtil.hasAnyRoles("sysadmin,A06")){ + cnd.and("unionId","=", Vi.getUnionId()); + } else { + cnd.andEX("unionId", "=", unionId); + } + sql.setCondition(cnd); + return wakesHomeApplyService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + } + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions(value = {"wakeshome.declaration.apply","wakeshome.declaration.mine"},logical = Logical.OR) + public Object doDelete(String id) { + WakesHomeApply apply = wakesHomeApplyService.fetch(id); + if (StrUtil.isNotBlank(apply.getOrganizationAuditId())) { + wakesHomeApplyService.dao().delete(Audit.class,apply.getOrganizationAuditId()); + } + if (StrUtil.isNotBlank(apply.getSchoolAuditId())) { + wakesHomeApplyService.dao().delete(Audit.class,apply.getSchoolAuditId()); + } + wakesHomeApplyService.delete(id); + return null; + } +} diff --git a/src/main/java/io/v/nutz/wakershome/controller/declaration/WakesHomeDeclarationOrganizationController.java b/src/main/java/io/v/nutz/wakershome/controller/declaration/WakesHomeDeclarationOrganizationController.java new file mode 100644 index 0000000..af8eb29 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/controller/declaration/WakesHomeDeclarationOrganizationController.java @@ -0,0 +1,99 @@ +package io.v.nutz.wakershome.controller.declaration; + +import io.v.nutz.annontation.ViReturn; +import io.v.nutz.base.utils.Vi; +import io.v.nutz.dao.CndPlus; +import io.v.nutz.modules.models.Audit; +import io.v.nutz.modules.models.PageForm; +import io.v.nutz.util.ShiroUtil; +import io.v.nutz.wakershome.model.WakesHomeApply; +import io.v.nutz.wakershome.service.IWakesHomeApplyService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Chain; +import org.nutz.dao.Cnd; +import org.nutz.dao.Sqls; +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.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +/** + * @version 1.0 + * @Author zzr + * @name:WakesHomeDeclarationOrganization + * @Date 2024/7/30 14:07 + * @注释 建家申报党组织审核 + */ +@IocBean +@Ok("json:full") +@At("/platform/wakeshome/declaration/organization") +public class WakesHomeDeclarationOrganizationController { + + @Inject + private IWakesHomeApplyService wakesHomeApplyService; + + @At("") + @Ok("beetl:/platform/wakeshome/declaration/organizationAudit.html") + @RequiresPermissions("wakeshome.declaration.organization") + public void index() { + } + + + @At + @ViReturn + @RequiresPermissions("wakeshome.declaration.organization") + public Object pageData(PageForm pageForm, + @Param(value = "year", required = false) Integer year, + @Param(value = "unionId", required = false) String unionId, + @Param(value = "isAudit", required = false) String isAudit) { + Sql sql = Sqls.create(""" + SELECT + wh.*, + audit.stateName + FROM + `wakes_home_apply` wh + LEFT JOIN audit_state audit ON wh.state = audit.stateId + AND audit.module = 'WakesHome' + $condition + """); + CndPlus cnd = CndPlus.create(); + if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { + cnd.and("wh.unionId", "=", Vi.getUnionId()); + } else { + cnd.andEX("wh.unionId", "=", unionId); + } + cnd.andEX("YEAR(wh.applyDate)", "=", year); + cnd.and("wh.state", "true".equals(isAudit) ? ">" : "false".equals(isAudit) ? "=" : ">=", 10010); + sql.setCondition(cnd); + return wakesHomeApplyService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + } + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions("wakeshome.declaration.organization") + public Object doAudit(@Param("audit") Audit audit, String id) { + Boolean auditPass = audit.getAuditPass(); + wakesHomeApplyService.dao().insert(audit); + wakesHomeApplyService.update(Chain.make("state", auditPass ? 10020 : 10015) + .add("organizationAuditId", audit.getId()), Cnd.where("id", "=", id)); + return null; + } + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions("wakeshome.declaration.organization") + public Object doRollBack(String id){ + WakesHomeApply wakesHome = wakesHomeApplyService.fetch(id); + wakesHomeApplyService.dao().clear(Audit.class,Cnd.where("id","=",wakesHome.getOrganizationAuditId())); + wakesHomeApplyService.update(Chain.make("state",10010).add("organizationAuditId",null),Cnd.where("id","=",id)); + return null; + } +} diff --git a/src/main/java/io/v/nutz/wakershome/controller/declaration/WakesHomeDeclarationSchoolController.java b/src/main/java/io/v/nutz/wakershome/controller/declaration/WakesHomeDeclarationSchoolController.java new file mode 100644 index 0000000..d864e95 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/controller/declaration/WakesHomeDeclarationSchoolController.java @@ -0,0 +1,98 @@ +package io.v.nutz.wakershome.controller.declaration; + +import io.v.nutz.annontation.ViReturn; +import io.v.nutz.base.utils.Vi; +import io.v.nutz.dao.CndPlus; +import io.v.nutz.modules.models.Audit; +import io.v.nutz.modules.models.PageForm; +import io.v.nutz.util.ShiroUtil; +import io.v.nutz.wakershome.model.WakesHomeApply; +import io.v.nutz.wakershome.service.IWakesHomeApplyService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Chain; +import org.nutz.dao.Cnd; +import org.nutz.dao.Sqls; +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.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +/** + * @version 1.0 + * @Author zzr + * @name:WakesHomeDeclarationSchool + * @Date 2024/7/30 14:07 + * @注释 建家申报校工会审核 + */ +@IocBean +@Ok("json:full") +@At("/platform/wakeshome/declaration/school") +public class WakesHomeDeclarationSchoolController { + + @Inject + private IWakesHomeApplyService wakesHomeApplyService; + + @At("") + @Ok("beetl:/platform/wakeshome/declaration/schoolAudit.html") + @RequiresPermissions("wakeshome.declaration.school") + public void index() {} + + + @At + @ViReturn + @RequiresPermissions("wakeshome.declaration.school") + public Object pageData(PageForm pageForm, + @Param(value = "year", required = false) Integer year, + @Param(value = "unionId", required = false) String unionId, + @Param(value = "isAudit", required = false) String isAudit){ + Sql sql = Sqls.create(""" + SELECT + wh.*, + audit.stateName + FROM + `wakes_home_apply` wh + LEFT JOIN audit_state audit ON wh.state = audit.stateId + AND audit.module = 'WakesHome' + $condition + """); + CndPlus cnd = CndPlus.create(); + if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { + cnd.and("wh.unionId", "=", Vi.getUnionId()); + } else { + cnd.andEX("wh.unionId", "=", unionId); + } + cnd.andEX("YEAR(wh.applyDate)", "=", year); + cnd.and("wh.state", "true".equals(isAudit) ? ">" : "false".equals(isAudit) ? "=" : ">=", 10020); + sql.setCondition(cnd); + return wakesHomeApplyService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + } + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions("wakeshome.declaration.school") + public Object doAudit(@Param("audit") Audit audit, String id) { + Boolean auditPass = audit.getAuditPass(); + wakesHomeApplyService.dao().insert(audit); + wakesHomeApplyService.update(Chain.make("state", auditPass ? 10030 : 10025) + .add("schoolAuditId", audit.getId()), Cnd.where("id", "=", id)); + return null; + } + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions("wakeshome.declaration.school") + public Object doRollBack(String id){ + WakesHomeApply wakesHome = wakesHomeApplyService.fetch(id); + wakesHomeApplyService.dao().clear(Audit.class,Cnd.where("id","=",wakesHome.getSchoolAuditId())); + wakesHomeApplyService.update(Chain.make("state",10010).add("schoolAuditId",null),Cnd.where("id","=",id)); + return null; + } +} diff --git a/src/main/java/io/v/nutz/wakershome/controller/info/WakesHomeApplyController.java b/src/main/java/io/v/nutz/wakershome/controller/info/WakesHomeApplyController.java new file mode 100644 index 0000000..aec64f7 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/controller/info/WakesHomeApplyController.java @@ -0,0 +1,70 @@ +package io.v.nutz.wakershome.controller.info; + +import io.v.nutz.annontation.ViReturn; +import io.v.nutz.base.result.Result; +import io.v.nutz.base.utils.Vi; +import io.v.nutz.wakershome.model.WakesHome; +import io.v.nutz.wakershome.model.WakesHomeApply; +import io.v.nutz.wakershome.service.WakesHomeInfoService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.dao.Cnd; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; + +@At("/platform/wakeshome/info/apply") +@Ok("json:full") +@IocBean +public class WakesHomeApplyController { + + + @Inject + private WakesHomeInfoService wakesHomeInfoService; + + + @At("") + @Ok("beetl:/platform/wakeshome/info/apply.html") + @RequiresPermissions("wakeshome.info.apply") + public void index() {} + + + @At + @ViReturn + @RequiresPermissions("wakeshome.info.apply") + public Object doAdd(WakesHome wakesHome, Boolean isSubmit){ + if (isSubmit){ +// wakesHome.setApplyTime(new Date()); + wakesHome.setState(8120); + } else { + wakesHome.setState(8100); + } + + if (!"校工会".equals(wakesHome.getCategory())){ + wakesHome.setUnionId(Vi.getUnionId()); + } + + wakesHomeInfoService.insert(wakesHome); + return null; + } + + + @At + @ViReturn + @RequiresPermissions("wakeshome.info.apply") + public Object doEdit(WakesHome wakesHome,Boolean isSubmit){ + if (isSubmit){ + wakesHome.setState(8120); + } + wakesHomeInfoService.updateIgnoreNull(wakesHome); + return null; + } + + + @At + @RequiresPermissions("wakeshome.info.apply") + public Object validateApply(){ + int count = wakesHomeInfoService.dao().count(WakesHomeApply.class, Cnd.where("state", "=", "10030").and("unionId", "=", Vi.getUnionId())); + return (count > 0) ? Result.error() : Result.success(); + } +} diff --git a/src/main/java/io/v/nutz/wakershome/controller/info/WakesHomeInfoController.java b/src/main/java/io/v/nutz/wakershome/controller/info/WakesHomeInfoController.java new file mode 100644 index 0000000..ca76636 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/controller/info/WakesHomeInfoController.java @@ -0,0 +1,58 @@ +package io.v.nutz.wakershome.controller.info; + +import io.v.nutz.annontation.ViReturn; +import io.v.nutz.dao.CndPlus; +import io.v.nutz.modules.models.PageForm; +import io.v.nutz.wakershome.service.WakesHomeInfoService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + + +@At("/platform/wakeshome/info/info") +@Ok("json:full") +@IocBean +public class WakesHomeInfoController { + + + @Inject + private WakesHomeInfoService wakesHomeInfoService; + + + @At("") + @Ok("beetl:/platform/wakeshome/info/info.html") + @RequiresPermissions("wakeshome.info.info") + public void index() {} + + @At + @ViReturn + @RequiresPermissions("wakeshome.info.info") + public Object pageData(PageForm pageForm, + @Param(value = "year",required = false) Integer year, + @Param(value = "unionId",required = false) String unionId){ + Sql sql = Sqls.create(""" + SELECT + wh.* + FROM + `wakes_home` wh + LEFT JOIN sys_union su ON su.id = wh.unionId + $condition + """); + CndPlus cnd = CndPlus.create(); + cnd.andEX("YEAR(applyTime)","=",year); + if ("校工会".equals(unionId)){ + cnd.and("wh.category","=","校工会"); + } else { + cnd.andEX("wh.unionId","=",unionId); + } + cnd.and("wh.state","=",8130); + cnd.asc("su.unioncode"); + sql.setCondition(cnd); + return wakesHomeInfoService.listMap(sql); + } +} diff --git a/src/main/java/io/v/nutz/wakershome/controller/info/WakesHomeMineController.java b/src/main/java/io/v/nutz/wakershome/controller/info/WakesHomeMineController.java new file mode 100644 index 0000000..196cc2d --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/controller/info/WakesHomeMineController.java @@ -0,0 +1,93 @@ +package io.v.nutz.wakershome.controller.info; + + +import io.v.nutz.annontation.ViReturn; +import io.v.nutz.base.utils.Vi; +import io.v.nutz.dao.CndPlus; +import io.v.nutz.modules.models.Audit; +import io.v.nutz.modules.models.PageForm; +import io.v.nutz.util.ShiroUtil; +import io.v.nutz.wakershome.model.WakesHome; +import io.v.nutz.wakershome.service.WakesHomeInfoService; +import org.apache.shiro.authz.annotation.Logical; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.dao.Cnd; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.Lang; +import org.nutz.lang.util.NutMap; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +@At("/platform/wakeshome/info/mine") +@Ok("json:full") +@IocBean +public class WakesHomeMineController { + + @Inject + private WakesHomeInfoService wakesHomeInfoService; + + @At("") + @Ok("beetl:/platform/wakeshome/info/mine.html") + @RequiresPermissions("wakeshome.info.mine") + public void index() {} + + + @At + @ViReturn + @RequiresPermissions("wakeshome.info.mine") + public Object pageData(PageForm pageForm, + @Param(value = "year",required = false) Integer year, + @Param(value = "unionId",required = false)String unionId){ + Sql sql = Sqls.create(""" + SELECT + wh.*, + audit.stateName + FROM + `wakes_home` wh + LEFT JOIN audit_state audit ON wh.state = audit.stateId + AND audit.module = 'WakesHome' + $condition + """); + + CndPlus cnd = CndPlus.create(); + cnd.andEX("YEAR(applyTime)","=",year); + if (!ShiroUtil.hasAnyRoles("sysadmin,A06")){ + cnd.and("unionId","=", Vi.getUnionId()); + } else { + if ("校工会".equals(unionId)){ + cnd.and("wh.category","=","校工会"); + } else { + cnd.andEX("unionId", "=", unionId); + } + } + sql.setCondition(cnd); + return wakesHomeInfoService.listPageMap(pageForm.getPageNumber(),pageForm.getPageSize(),sql); + } + + + + @At + @ViReturn + @RequiresPermissions(value = {"wakeshome.info.mine","wakeshome.info.apply"},logical = Logical.OR) + public Object getInfoById(String id){ + WakesHome wakesHome = wakesHomeInfoService.fetch(id); + NutMap nutMap = Lang.obj2nutmap(wakesHome); + Audit audit = wakesHomeInfoService.dao().fetch(Audit.class, Cnd.where("id", "=", wakesHome.getSchoolAuditId())); + if (Lang.isNotEmpty(audit)){ + nutMap.setv("schoolAudit",audit); + } + return nutMap; + } + + @At + @ViReturn + @RequiresPermissions("wakeshome.info.mine") + public Object doRemove(String id){ + wakesHomeInfoService.delete(id); + return null; + } +} diff --git a/src/main/java/io/v/nutz/wakershome/controller/info/WakesHomeSchoolAuditController.java b/src/main/java/io/v/nutz/wakershome/controller/info/WakesHomeSchoolAuditController.java new file mode 100644 index 0000000..d4c5a84 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/controller/info/WakesHomeSchoolAuditController.java @@ -0,0 +1,97 @@ +package io.v.nutz.wakershome.controller.info; + + +import io.v.nutz.annontation.ViReturn; +import io.v.nutz.base.utils.Vi; +import io.v.nutz.dao.CndPlus; +import io.v.nutz.modules.models.Audit; +import io.v.nutz.modules.models.PageForm; +import io.v.nutz.util.ShiroUtil; +import io.v.nutz.wakershome.model.WakesHome; +import io.v.nutz.wakershome.service.WakesHomeInfoService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Chain; +import org.nutz.dao.Cnd; +import org.nutz.dao.Sqls; +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.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +@At("/platform/wakeshome/info/schoolaudit") +@Ok("json:full") +@IocBean +public class WakesHomeSchoolAuditController { + + @Inject + private WakesHomeInfoService wakesHomeInfoService; + + @At("") + @Ok("beetl:/platform/wakeshome/info/schoolAudit.html") + @RequiresPermissions("wakeshome.info.schoolaudit") + public void index() {} + + + @At + @ViReturn + @RequiresPermissions("wakeshome.info.schoolaudit") + public Object pageData(PageForm pageForm, + @Param(value = "year",required = false) Integer year, + @Param(value = "unionId",required = false)String unionId, + @Param(value = "isAudit", required = false) String isAudit){ + Sql sql = Sqls.create(""" + SELECT + wh.*, + audit.stateName + FROM + `wakes_home` wh + LEFT JOIN audit_state audit ON wh.state = audit.stateId + AND audit.module = 'WakesHome' + $condition + """); + + CndPlus cnd = CndPlus.create(); + if (!ShiroUtil.hasAnyRoles("sysadmin,A06")){ + cnd.and("unionId","=", Vi.getUnionId()); + } else { + if ("校工会".equals(unionId)){ + cnd.and("wh.category","=","校工会"); + } else { + cnd.andEX("unionId", "=", unionId); + } + } + cnd.andEX("YEAR(applyTime)","=",year); + cnd.and("wh.state", "true".equals(isAudit) ? ">" : "false".equals(isAudit) ? "=" : ">=", 8120); + sql.setCondition(cnd); + return wakesHomeInfoService.listPageMap(pageForm.getPageNumber(),pageForm.getPageSize(),sql); + } + + + @At + @ViReturn + @RequiresPermissions("wakeshome.info.schoolaudit") + @Aop(TransAop.READ_COMMITTED) + public Object doAudit(@Param("audit") Audit audit, String id, String isPass){ + wakesHomeInfoService.dao().insert(audit); + wakesHomeInfoService.update(Chain.make("state","1".equals(isPass) ? 8130 : 8125) + .add("schoolAuditId",audit.getId()), Cnd.where("id","=",id)); + return null; + } + + + @At + @ViReturn + @RequiresPermissions("wakeshome.info.schoolaudit") + @Aop(TransAop.READ_COMMITTED) + public Object doRollBack(String id){ + WakesHome wakesHome = wakesHomeInfoService.fetch(id); + wakesHomeInfoService.dao().clear(Audit.class,Cnd.where("id","=",wakesHome.getSchoolAuditId())); + wakesHomeInfoService.update(Chain.make("state",8120).add("schoolAuditId",null),Cnd.where("id","=",id)); + return null; + } + +} diff --git a/src/main/java/io/v/nutz/wakershome/controller/review/AddZbController.java b/src/main/java/io/v/nutz/wakershome/controller/review/AddZbController.java new file mode 100644 index 0000000..7d5b13a --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/controller/review/AddZbController.java @@ -0,0 +1,58 @@ +package io.v.nutz.wakershome.controller.review; + +import io.v.nutz.annontation.ViReturn; +import io.v.nutz.wakershome.model.review.CommentNr; +import io.v.nutz.wakershome.model.review.CommentZb; +import io.v.nutz.wakershome.service.review.CommentZbService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.dao.Cnd; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; +import org.nutz.trans.Trans; + +/** + * @ClassName addZbController + * @Description TODO + * @Author zhf + * @Date 2023/9/4 15:42 + */ +@At("/platform/wakeshome/review/Xjkhzb") +@Ok("json:full") +@IocBean +public class AddZbController { + @At("") + @Ok("beetl:/platform/wakeshome/review/xjkhzb.html") + @RequiresPermissions("wakeshome.review.xjkhzb") + public void index() { + } + + + @Inject + private CommentZbService commentZbService; + + @At + @ViReturn + @RequiresPermissions("wakeshome.review.Xjkhzb") + public Object doAdd(@Param(value = "kh_zb") CommentZb commentZb) { + Trans.exec(() -> { + CommentZb zb = commentZbService.insert(commentZb); + for (CommentNr nr : commentZb.getNrs()) { + nr.setZb_id(zb.getId()); + commentZbService.insertWith(nr, "bzs"); + } + }); + return null; + + } + + @At + @ViReturn + public Object getZbList(Integer year) { + return commentZbService.query(Cnd.NEW().andEX("annual", "=", year)); + } + + +} diff --git a/src/main/java/io/v/nutz/wakershome/controller/review/ExportZpController.java b/src/main/java/io/v/nutz/wakershome/controller/review/ExportZpController.java new file mode 100644 index 0000000..0a5f4b6 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/controller/review/ExportZpController.java @@ -0,0 +1,259 @@ +package io.v.nutz.wakershome.controller.review; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.core.util.ZipUtil; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; +import com.deepoove.poi.policy.HackLoopTableRenderPolicy; +import io.v.nutz.annontation.ViReturn; +import io.v.nutz.sys.models.User; +import io.v.nutz.wakershome.model.review.CommentExport; +import io.v.nutz.wakershome.model.review.CommentZb; +import io.v.nutz.wakershome.service.review.CommentZbService; +import org.apache.commons.io.IOUtils; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.ddr.poi.html.HtmlRenderPolicy; +import org.nutz.dao.Cnd; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.Strings; +import org.nutz.lang.util.NutMap; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.net.URLEncoder; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @ClassName exportZpController + * @Description TODO + * @Author zhf + * @Date 2023/9/6 17:09 + */ +@At("/platform/unionComment/exportZp") +@Ok("json:full") +@IocBean +public class ExportZpController { + + +// @Inject +// private OfficeTemplateUtil officeTemplateUtil; + + @Inject + private CommentZbService zbService; + + @At("") + @Ok("beetl:/platform/unionComment/exportZp.html") + @RequiresPermissions("unionComment.exportZp") + public void index() { + + } + + + @At + @ViReturn + @RequiresPermissions("unionComment.exportZp") + public Object pageData(@Param(value = "annual", required = false) Integer annual, + int pageNumber, int pageSize) { + Sql sql = Sqls.create("SELECT YEAR(e.createTime) annual,e.* FROM `comment_export` e $condition"); + Cnd cnd = Cnd.NEW(); + cnd.andEX("YEAR(e.createTime)", "=", annual); + sql.setCondition(cnd); + return zbService.listPageMap(pageNumber, pageSize, sql); + } + + + @At + @ViReturn + @RequiresPermissions("unionComment.exportZp") + public Object getZbData(@Param(value = "annual", required = false) String annual, + @Param(value = "assessment", required = false) String assessment) { + Sql sql = Sqls.create("SELECT * FROM `comment_zb` $condition"); + Cnd cnd = Cnd.NEW(); + if (Strings.isNotBlank(annual) && Strings.isNotBlank(annual)) { + cnd.and("annual", "=", annual); + } + if (Strings.isNotBlank(assessment) && Strings.isNotBlank(assessment)) { + cnd.where().andLike("assessment", assessment); + } else { + cnd.desc("annual"); + } + sql.setCondition(cnd); + return zbService.listMap(sql); + } + + @At + @ViReturn + @RequiresPermissions("unionComment.exportZp") + public Object doAddExport(@Param("export") CommentExport export) { + export.setCreateTime(DateUtil.now()); + if (StrUtil.isNotBlank(export.getId())) { + zbService.updateIgnoreNull(export); + } else { + zbService.insert(export); + } + + + return null; + } + + @At + @ViReturn + @RequiresPermissions("unionComment.exportZp") + public Object doDelete(String id) { + zbService.dao().delete(CommentExport.class, id); + return null; + } + + @At + @ViReturn + @RequiresPermissions("unionComment.exportZp") + public Object findOne(String id) { + CommentExport export = zbService.dao().fetch(CommentExport.class, id); + List zbList = zbService.query(Cnd.NEW().and("id", "in", export.getZbIds()).asc("assessmentMode")); + return Map.of("export", export, "zbList", zbList); + } + + + @At + @Ok("void") + @RequiresPermissions("unionComment.exportZp") + public void doExport(String id, HttpServletResponse response) throws Exception { + CommentExport export = zbService.dao().fetch(CommentExport.class, id); +//查询测评有那几个工会测评过 + Sql sql = Sqls.create(""" + SELECT + un.id, + un.unionname unionName, + count( peo.id ) num + FROM + sys_union un + LEFT JOIN `user` u ON u.unionId = un.id + LEFT JOIN comment_peo peo ON peo.userId = u.id + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.andEX("peo.zbId", "in", export.getZbIds()); + cnd.groupBy("un.id"); + cnd.desc("count( peo.id )"); + sql.setCondition(cnd); + List unionMap = zbService.listMap(sql); + + + List zbs = zbService.query(Cnd.NEW().and("id", "in", export.getZbIds()).asc("assessmentMode")); + + //创建临时文件夹 + Path templateDir = Files.createTempDirectory("评测结果文件夹"); + + //循环分工会 + for (NutMap un : unionMap) { + List users = zbService.dao().query(User.class, Cnd.where("unionId", "=", un.getString("id"))); + + FileOutputStream outputStream = new FileOutputStream(templateDir.toString() + "/" + un.getString("unionName") + "基层工会会员评家民主测评结果报告表.docx"); + + List zpxxList = new ArrayList<>(); + for (CommentZb zb : zbs) { + + Sql sqlps = Sqls.create(""" + SELECT + SUM( CASE WHEN cp.reviewResult = '不满意' THEN 1 ELSE 0 END ) AS bmy, + SUM( CASE WHEN cp.reviewResult = '基本满意' THEN 1 ELSE 0 END ) AS jbmy, + SUM( CASE WHEN cp.reviewResult = '满意' THEN 1 ELSE 0 END ) AS my + FROM + comment_peo cp + LEFT JOIN `user` u ON u.id = cp.userId + $condition + """); + Cnd cndPs = Cnd.NEW(); + cndPs.and("u.unionId", "=", un.getString("id")); + cndPs.and("cp.zbId", "=", zb.getId()); + + sqlps.setCondition(cndPs); + if (zb.getAssessmentMode() == 1) { + NutMap zpxx = new NutMap(); + NutMap psMap = zbService.fetch(sqlps); + zpxx.setv("pcdx", "工会工作及职工之家建设情况测评"); + zpxx.setv("my", psMap.getInt("my")); + zpxx.setv("jbmy", psMap.getInt("jbmy")); + zpxx.setv("bmy", psMap.getInt("bmy")); + zpxxList.add(zpxx); + } else { + NutMap zpxxZx = new NutMap(); + Cnd clone = cndPs.clone(); + sqlps.setCondition(clone); + clone.and("cp.evaluatedPersonType", "=", "分工会主席"); + NutMap psMap = zbService.fetch(sqlps); + zpxxZx.setv("pcdx", "工会主席履职情况测评"); + zpxxZx.setv("my", psMap.getInt("my")); + zpxxZx.setv("jbmy", psMap.getInt("jbmy")); + zpxxZx.setv("bmy", psMap.getInt("bmy")); + zpxxList.add(zpxxZx); + + + NutMap zpxxFzx = new NutMap(); + Cnd clone2 = cndPs.clone(); + clone2.and("cp.evaluatedPersonType", "=", "分工会副主席"); + sqlps.setCondition(clone2); + NutMap psMap2 = zbService.fetch(sqlps); + zpxxFzx.setv("pcdx", "工会副主席履职情况测评"); + zpxxFzx.setv("my", psMap2.getInt("my")); + zpxxFzx.setv("jbmy", psMap2.getInt("jbmy")); + zpxxFzx.setv("bmy", psMap2.getInt("bmy")); + zpxxList.add(zpxxFzx); + } + + + } + HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy(); + HtmlRenderPolicy htmlRenderPolicy = new HtmlRenderPolicy(); + htmlRenderPolicy.getConfig().setShowDefaultTableBorderInTableCell(true); + + Configure config = Configure.newBuilder().bind("zpxxList", policy).build(); + HashMap map = new HashMap<>(); + + map.put("zpxxList", zpxxList); + map.put("unionName", un.getString("unionName")); + map.put("num", users.size()); + map.put("memberNum", users.stream().filter(v -> v.getMember() == 1).collect(Collectors.toList()).size()); +// XWPFTemplate.compile(officeTemplateUtil.getPath("unionComment"), config).render(map).writeAndClose(outputStream); + + outputStream.close(); + + } + + + //压缩 + File zipFile = ZipUtil.zip(templateDir.toString()); + response.setHeader("content-disposition", "attachment;filename=" + + URLEncoder.encode(zipFile.getName(), "UTF-8")); + try (ServletOutputStream outputStream = response.getOutputStream(); + FileInputStream zipFis = new FileInputStream(zipFile);) { + IOUtils.copy(zipFis, outputStream); + } catch (Exception e) { + e.printStackTrace(); + } finally { + FileUtil.del(templateDir); + FileUtil.del(zipFile); + } + + + } + + +} diff --git a/src/main/java/io/v/nutz/wakershome/controller/review/StatisticsZpController.java b/src/main/java/io/v/nutz/wakershome/controller/review/StatisticsZpController.java new file mode 100644 index 0000000..3da5c7e --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/controller/review/StatisticsZpController.java @@ -0,0 +1,131 @@ +package io.v.nutz.wakershome.controller.review; + +import cn.hutool.core.util.StrUtil; +import io.v.nutz.annontation.ViReturn; +import io.v.nutz.modules.models.PageForm; +import io.v.nutz.wakershome.service.review.CommentPeoService; +import io.v.nutz.wakershome.service.review.CommentZbService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.dao.Cnd; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.dao.util.cri.SqlExpressionGroup; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.util.NutMap; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +/** + * @ClassName statisticsController + * @Description TODO + * @Author zhf + * @Date 2023/9/5 15:58 + */ +@At("/platform/wakeshome/review/statistics") +@Ok("json:full") +@IocBean +public class StatisticsZpController { + + @Inject + private CommentZbService commentZbService; + + @Inject + private CommentPeoService commentPeoService; + + + @At("") + @Ok("beetl:/platform/wakeshome/review/statistics.html") + @RequiresPermissions("wakeshome.review.statistics") + public void index() { + + } + + @At + @ViReturn + @RequiresPermissions("wakeshome.review.statistics") + public Object pageData(PageForm page, + @Param(value = "zbId", required = false) String zbId, + @Param(value = "unionId", required = false) String unionId) { + Sql sql = Sqls.create(""" + SELECT + un.id, + un.unionname unionName, + count( peo.id ) num + FROM + sys_union un + LEFT JOIN `user` u ON u.unionId = un.id + LEFT JOIN comment_peo peo ON peo.userId = u.id AND peo.zbId = @zbId + $condition + """).setParam("zbId", zbId); + Cnd cnd = Cnd.NEW(); + cnd.andEX("un.id", "=", unionId); + + cnd.groupBy("un.id"); + cnd.desc("count( peo.id )"); + sql.setCondition(cnd); + return commentZbService.listPageMap(page.getPageNumber(), page.getPageSize(), sql); + } + + + @At + @ViReturn + public Object getUserPeoByZbIdOrUnionId(PageForm page, + @Param(value = "zbId", required = false) String zbId, + @Param(value = "unionId", required = false) String unionId, + @Param(value = "reviewResult", required = false) String reviewResult) { + Sql sql = Sqls.create(""" + SELECT + peo.*, + u.username userName, + u.loginname loginName, + unitname unitName + FROM + comment_peo peo + LEFT JOIN `user` u ON u.id = peo.userId + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and("peo.zbId", "=", zbId); + cnd.andEX("u.unionId", "=", unionId); + cnd.andEX("peo.reviewResult", "=", reviewResult); + if (StrUtil.isNotBlank(page.getSearchKeyword())) { + SqlExpressionGroup sqlExpressionGroup = new SqlExpressionGroup(); + sqlExpressionGroup.orLike("u.loginname", page.getSearchKeyword()); + sqlExpressionGroup.orLike("u.username", page.getSearchKeyword()); + cnd.and(sqlExpressionGroup); + } + sql.setCondition(cnd); + return commentZbService.listPageMap(page.getPageNumber(), page.getPageSize(), sql); + } + + @At + @ViReturn + public Object getBzById(String peoId) { + return commentPeoService.getBzById(peoId); + + } + + @At + @ViReturn + public Object getReviewResultNum(@Param(value = "zbId", required = false) String zbId, + @Param(value = "unionId", required = false) String unionId) { + NutMap mapList = commentPeoService.fetch(Sqls.create(""" + SELECT + SUM( CASE WHEN cp.reviewResult = '不满意' THEN 1 ELSE 0 END ) AS bmy, + SUM( CASE WHEN cp.reviewResult = '基本满意' THEN 1 ELSE 0 END ) AS jbmy, + SUM( CASE WHEN cp.reviewResult = '满意' THEN 1 ELSE 0 END ) AS my + FROM + comment_peo cp + LEFT JOIN `user` u ON u.id = cp.userId + WHERE + cp.zbId = @zbId + AND u.unionId = @unionId + """).setParam("zbId", zbId).setParam("unionId", unionId)); + + return mapList; + + } + +} diff --git a/src/main/java/io/v/nutz/wakershome/controller/review/ViewZbController.java b/src/main/java/io/v/nutz/wakershome/controller/review/ViewZbController.java new file mode 100644 index 0000000..1dafb49 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/controller/review/ViewZbController.java @@ -0,0 +1,125 @@ +package io.v.nutz.wakershome.controller.review; + +import io.v.nutz.annontation.ViReturn; +import io.v.nutz.wakershome.model.review.CommentNr; +import io.v.nutz.wakershome.model.review.CommentZb; +import io.v.nutz.wakershome.service.review.CommentBzService; +import io.v.nutz.wakershome.service.review.CommentNrService; +import io.v.nutz.wakershome.service.review.CommentZbService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Cnd; +import org.nutz.dao.Sqls; +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.Strings; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +import java.util.List; + +/** + * @ClassName viewZbController + * @Description TODO + * @Author zhf + * @Date 2023/9/4 16:00 + */ +@At("/platform/wakeshome/review/khzb") +@Ok("json:full") +@IocBean +public class ViewZbController { + + + @Inject + private CommentZbService commentZbService; + + @Inject + private CommentNrService commentNrService; + + @Inject + private CommentBzService commentBzService; + + + @At("") + @Ok("beetl:/platform/wakeshome/review/khzb.html") + @RequiresPermissions("wakeshome.review.khzb") + public void index() { + + } + + @At + @ViReturn + @RequiresPermissions("wakeshome.review.khzb") + public Object pageData(@Param(value = "annual", required = false) String annual, + @Param(value = "assessment", required = false) String assessment, + int pageNumber, int pageSize) { + Sql sql = Sqls.create("SELECT * FROM `comment_zb` $condition"); + Cnd cnd = Cnd.NEW(); + if (Strings.isNotBlank(annual) && Strings.isNotBlank(annual)) { + cnd.and("annual", "=", annual); + } + if (Strings.isNotBlank(assessment) && Strings.isNotBlank(assessment)) { + cnd.where().andLike("assessment", assessment); + } else { + cnd.desc("annual"); + } + sql.setCondition(cnd); + return commentZbService.listPageMap(pageNumber, pageSize, sql); + } + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions("wakeshome.review.khzb") + public Object delete(String id) { + + commentZbService.delete(id); + + List query = commentNrService.query(Cnd.where("zb_id", "=", id)); + + for (CommentNr kh_nr : query) { + commentBzService.clear(Cnd.where("nr_id", "=", kh_nr.getId())); + } + + commentNrService.clear(Cnd.where("zb_id", "=", id)); + + return null; + } + + + @At + @ViReturn + public Object edit(String id) { + return commentZbService.khzb(id); + } + + + @At + @ViReturn + @RequiresPermissions("wakeshome.review.khzb") + @Aop(TransAop.READ_COMMITTED) + public Object doEdit(@Param(value = "kh_zb") CommentZb commentZb) { + commentZbService.updateIgnoreNull(commentZb); + + List query = commentNrService.query(Cnd.where("zb_id", "=", commentZb.getId())); + + for (CommentNr kh_nr : query) { + commentBzService.clear(Cnd.where("nr_id", "=", kh_nr.getId())); + } + + commentNrService.clear(Cnd.where("zb_id", "=", commentZb.getId())); + + for (CommentNr nr : commentZb.getNrs()) { + nr.setZb_id(commentZb.getId()); + commentNrService.insertWith(nr, "bzs"); + } + return null; + + } + + +} diff --git a/src/main/java/io/v/nutz/wakershome/controller/review/WakesHomeReviewController.java b/src/main/java/io/v/nutz/wakershome/controller/review/WakesHomeReviewController.java new file mode 100644 index 0000000..ddd3d43 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/controller/review/WakesHomeReviewController.java @@ -0,0 +1,57 @@ +package io.v.nutz.wakershome.controller.review; + +import io.v.nutz.annontation.ViReturn; +import io.v.nutz.modules.models.PageForm; +import io.v.nutz.wakershome.service.review.CommentZbService; +import org.nutz.dao.Cnd; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.Strings; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +/** + * @version 1.0 + * @Author zzr + * @name:WakesHomeReviewController + * @Date 2024/8/1 16:47 + * @注释 pc端职工评议 + */ +@IocBean +@Ok("json:full") +@At("/platform/wakeshome/review/doReview") +public class WakesHomeReviewController { + + @Inject + private CommentZbService commentZbService; + + @At("") + @Ok("beetl:/platform/wakeshome/review/doReview.html") + public void index() { + } + + @At + @ViReturn + public Object pageData(PageForm pageForm, + @Param(value = "annual", required = false) String annual, + @Param(value = "assessment", required = false) String assessment){ + Sql sql = Sqls.create("SELECT * FROM `comment_zb` $condition"); + Cnd cnd = Cnd.NEW(); + if (Strings.isNotBlank(annual) && Strings.isNotBlank(annual)) { + cnd.and("annual", "=", annual); + } + if (Strings.isNotBlank(assessment) && Strings.isNotBlank(assessment)) { + cnd.where().andLike("assessment", assessment); + } else { + cnd.desc("annual"); + } + sql.setCondition(cnd); + return commentZbService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + } + + + +} diff --git a/src/main/java/io/v/nutz/wakershome/mobile/MWakesHomeReviewController.java b/src/main/java/io/v/nutz/wakershome/mobile/MWakesHomeReviewController.java new file mode 100644 index 0000000..dd45242 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/mobile/MWakesHomeReviewController.java @@ -0,0 +1,304 @@ +package io.v.nutz.wakershome.mobile; + + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; +import cn.wizzer.framework.page.Pagination; +import io.v.nutz.annontation.ViReturn; +import io.v.nutz.base.result.Result; +import io.v.nutz.base.service.BaseService; +import io.v.nutz.base.utils.Vi; +import io.v.nutz.dao.CndPlus; +import io.v.nutz.modules.models.PageForm; +import io.v.nutz.sys.models.Sys_union; +import io.v.nutz.wakershome.model.review.CommentBz; +import io.v.nutz.wakershome.model.review.CommentPeo; +import io.v.nutz.wakershome.model.review.CommentResult; +import io.v.nutz.wakershome.service.review.CommentPeoService; +import io.v.nutz.wakershome.service.review.CommentZbService; +import io.v.nutz.wakershome.vo.WakesHomeVo; +import io.v.nutz.web.commons.utils.ShiroUtil; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Cnd; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.dao.util.cri.Static; +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.lang.util.NutMap; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +@IocBean +@At("/mobile/wakeshome/review/appraisal") +@Ok("json:full") +public class MWakesHomeReviewController { + + @Inject + private CommentZbService commentZbService; + + @Inject + private BaseService baseService; + + @Inject + private CommentPeoService commentPeoService; + + @At + @Ok("beetl:/mobile/wakeshome/review/appraisal.html") + @RequiresAuthentication + public void index() { + } + + @At + @Ok("beetl:/mobile/wakeshome/review/commentator.html") + @RequiresAuthentication + public void commentator() { + } + + + @At + @Ok("beetl:/mobile/wakeshome/review/mine.html") + @RequiresAuthentication + public void mine() { + } + + + /** + * 民主测评首页展示 + * + * @param pageForm + * @param annual + * @return + */ + @At + @ViReturn + public Object pageData(PageForm pageForm, + @Param(value = "annual", required = false) String annual, + @Param(value = "type", required = false) Integer type) { + Sql sql = Sqls.create("SELECT * FROM `comment_zb` $condition"); + Cnd cnd = Cnd.NEW(); + if (Strings.isNotBlank(annual) && Strings.isNotBlank(annual)) { + cnd.and("annual", "=", annual); + } + switch (type) { + //进行中 + case 2 -> cnd.and(new Static("now() >= startTime and now() <= endTime")); + //已结束 + case 3 -> cnd.and(new Static("now() > endTime")); + //未开始 + case 4 -> cnd.and(new Static("now() < startTime")); + } + sql.setCondition(cnd); + Pagination pagination = commentZbService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + List list = pagination.getList(); + List unionList = commentZbService.dao().query(Sys_union.class, Cnd.NEW()); + list.forEach(v -> { + //自评模式 + boolean reviewMode = v.getInt("reviewMode") == 1; + if (reviewMode && v.getInt("commentTarget") == 1) { + //校工会自评,判断有没有校工会管理员的权限 + v.put("canJoin", ShiroUtil.hasRole("A06")); + } else if (reviewMode && v.getInt("commentTarget") == 2){ + //分工会自评,判断有没有分工会管理员 + v.put("canJoin", ShiroUtil.hasRole("H04")); + } + + //自选分工会的模式 + if (StrUtil.isNotBlank(v.getString("unionIds"))) { + List unionIdList = JSONUtil.parseArray(v.getString("unionIds")).toList(String.class); + String string = unionList.stream().filter(item -> unionIdList.contains(item.getId())) + .map(Sys_union::getUnionname).collect(Collectors.joining(",")); + v.put("unionNames", string); + //如果是自评,只有分工会主席才能自评 + if (reviewMode) { + v.put("canJoin", (unionIdList.contains(Vi.getUnionId()) && ShiroUtil.hasRole("H04"))); + } else { + v.put("canJoin", unionIdList.contains(Vi.getUnionId())); + } + } + }); + return pagination; + } + + + /** + * 根据id获取测评内容 + * + * @param id + * @return + */ + @At + @ViReturn + public Object getById(String id) { + return commentZbService.khzb(id); + } + + + @At + @Aop(TransAop.READ_COMMITTED) + public Object doSubmit(WakesHomeVo wakesHomeVo) { + try { + System.out.println(wakesHomeVo); + CommentPeo peo = new CommentPeo(); + if (Strings.isNotBlank(wakesHomeVo.getEvaluatedPersonId())) { + peo.setEvaluatedPersonId(wakesHomeVo.getEvaluatedPersonId()); + peo.setEvaluatedPersonName(wakesHomeVo.getEvaluatedPersonName()); + peo.setEvaluatedPersonType(wakesHomeVo.getEvaluatedPersonType()); + } + peo.setReviewResult(wakesHomeVo.getReviewResult()); + peo.setZbId(wakesHomeVo.getId()); + peo.setReviewTime(DateUtil.now()); + peo.setFiles(wakesHomeVo.getFiles()); + peo.setUserId((String) ShiroUtil.getPrincipalProperty("id")); + if (Strings.isNotBlank(wakesHomeVo.getPresidentOpinions())) { + peo.setPresidentOpinions(wakesHomeVo.getPresidentOpinions()); + } + baseService.dao().insert(peo); + List commentResults = new ArrayList<>(); + for (CommentBz v : wakesHomeVo.getBzList()) { + CommentResult result = new CommentResult(); + result.setBz_id(v.getId()); + result.setAssessResult(v.getResultScore()); + result.setRecommendation(v.getOptions() != null ? v.getOptions() : null); + result.setPeo_id(peo.getId()); + commentResults.add(result); + } + baseService.dao().insert(commentResults); + return Result.success(); + } catch (Exception e) { + e.printStackTrace(); + return Result.error(); + } + } + + + /** + * 判断是否测评过 + * + * @param id 指标id + * @param evaluatedPersonId 被测评人id + * @return + */ + @At + public Object isAssess(@Param("id") String id, + @Param(value = "evaluatedPersonId", required = false) String evaluatedPersonId) { + //主席测评 + if (Strings.isNotBlank(evaluatedPersonId)) { + CndPlus cnd = CndPlus.create(); + cnd.and("evaluatedPersonId", "=", evaluatedPersonId); + cnd.and("userId", "=", ShiroUtil.getPrincipalProperty("id")); + cnd.and("zbId", "=", id); + return Result.success().addData(baseService.dao().count(CommentPeo.class, cnd)); + } else {//会员评家测评 + Sql sql = Sqls.create(""" + SELECT + cp.*, + cz.annual, + cz.assessment, + cz.assessmentMode, + cz.scoringMode, + cz.commentTarget + FROM + `comment_peo` cp + LEFT JOIN `comment_zb` cz ON cz.id = cp.zbId + where cp.zbId=@zbId and cp.userId=@userId + """).setParam("zbId", id).setParam("userId", ShiroUtil.getPrincipalProperty("id")); + List list = baseService.listMap(sql); + NutMap nutMap = list.stream().findFirst().orElse(null); + if (Strings.isNotBlank(nutMap.getString("commentTarget")) && "1".equals(nutMap.getString("assessmentMode"))) { + return Result.success().addData(1); + } else { + return Result.success().addData(0); + } + } + } + + + /** + * 我的测评页面展示 + * + * @param pageForm + * @param annual + * @return + */ + @At + @ViReturn + public Object onLoad(PageForm pageForm, + @Param(value = "annual", required = false) String annual) { + Sql sql = Sqls.create(""" + SELECT + cp.*, + cz.annual, + cz.assessment, + cz.assessmentMode, + cz.scoringMode, + cz.commentTarget + FROM + `comment_peo` cp + LEFT JOIN `comment_zb` cz ON cz.id = cp.zbId + $condition + """); + CndPlus cnd = CndPlus.create(); + cnd.andEX("cz.annual", "=", annual); + cnd.and("cp.userId", "=", ShiroUtil.getPrincipalProperty("id")); + cnd.desc("cp.reviewTime"); + sql.setCondition(cnd); + return baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + } + + + /** + * 获取测评结果信息 + * + * @param peoId + * @return + */ + @At + @ViReturn + public Object getBzById(@Param("peoId") String peoId) { + return commentPeoService.getBzById(peoId); + } + + private static final String GH01 = "9c1f19e385914fef82bc35da7c9ded36"; + private static final String GH02 = "672b47cfc79c4a77878c0f2cfd5734be"; + + /** + * 获取分工会主席和副主席 + * + * @return + */ + @At + @ViReturn + public Object getPresidents() { + Sql sql = Sqls.create(""" + SELECT + u.id, + u.loginname, + u.username, + sr.`name` evaluatedPersonType, + GROUP_CONCAT( DISTINCT u.username, '(', sr.`name`, ')' ) presidents + FROM + `user` u + LEFT JOIN `sys_user_role` sur ON u.id = sur.userId + LEFT JOIN `sys_role` sr ON sur.roleId = sr.id + $condition + """); + CndPlus cnd = CndPlus.create(); + cnd.and("sr.`id`", "in", Lang.array(GH01, GH02)); + cnd.and("u.unionid", "=", Vi.getUnionId()); + cnd.groupBy("u.id"); + cnd.asc("u.loginname"); + sql.setCondition(cnd); + return baseService.listMap(sql); + } +} diff --git a/src/main/java/io/v/nutz/wakershome/model/WakesHome.java b/src/main/java/io/v/nutz/wakershome/model/WakesHome.java new file mode 100644 index 0000000..1625b6b --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/model/WakesHome.java @@ -0,0 +1,123 @@ +package io.v.nutz.wakershome.model; + +import io.v.nutz.sys.models.Sys_file; +import lombok.Data; +import org.nutz.dao.entity.annotation.*; +import org.nutz.dao.interceptor.annotation.PrevInsert; + +import java.io.Serializable; +import java.util.List; + +@Data +@Table +public class WakesHome { + + @Name + @Column + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) + private String id; + + @Column + @Comment("填报人") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String username; + + @Column + @Comment("联系方式") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String mobile; + + @Column + @Comment("所属工会id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String unionId; + + @Column + @Comment("工会名称") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String unionName; + + @Column + @Comment("填报时间") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String applyTime; + + @Column + @Comment("填报类别(校工会/分工会)") + @ColDefine(type = ColType.VARCHAR, width = 10) + private String category; + + @Column + @Comment("创办时间") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String foundTime; + + @Column + @Comment("单位位置") + @ColDefine(type = ColType.VARCHAR, width = 100) + private String position; + + @Column + @Comment("单位面积") + @ColDefine(type = ColType.VARCHAR, width = 10) + private String area; + + @Column + @Comment("单位信息") + @ColDefine(type = ColType.TEXT) + private String details; + + @Column + @Comment("获奖情况") + @ColDefine(type = ColType.MYSQL_JSON) + private List awardInfo; + + @Column + @Comment("图片文件") + @ColDefine(type = ColType.MYSQL_JSON) + private List picFiles; + + @Column + @Comment("附件") + @ColDefine(type = ColType.MYSQL_JSON) + private List files; + + @Column + @Comment("分工会审核id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String unionAuditId; + + @Column + @Comment("校工会审核id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String schoolAuditId; + + @Column + @Comment("状态") + @ColDefine(type = ColType.INT) + private Integer state; + + + @Data + public static class awardInfo implements Serializable { + /** + * 获奖日期 + */ + private String awardTime; + /** + * 获奖单位 + */ + private String awardUnit; + /** + * 奖项名称 + */ + private String awardName; + /** + * 奖项照片 + */ + private String awardPic; + } + +} diff --git a/src/main/java/io/v/nutz/wakershome/model/WakesHomeApply.java b/src/main/java/io/v/nutz/wakershome/model/WakesHomeApply.java new file mode 100644 index 0000000..543e720 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/model/WakesHomeApply.java @@ -0,0 +1,103 @@ +package io.v.nutz.wakershome.model; + +import io.v.nutz.base.model.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.nutz.dao.entity.annotation.*; +import org.nutz.dao.interceptor.annotation.PrevInsert; + +import java.io.Serializable; + +/** + * @version 1.0 + * @Author zzr + * @name:WakesHomeApply + * @Date 2024/7/31 10:47 + * @注释 职工之家申报 + */ +@Data +@Table +@Comment("职工之家申报") +@EqualsAndHashCode(callSuper = true) +public class WakesHomeApply extends BaseModel implements Serializable { + + private static final long serialVersionUID = 1L; + + @Column + @Name + @Comment("id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) + private String id; + + @Column + @Comment("申报人id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String userId; + + @Column + @Comment("申报人工号") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String loginName; + + @Column + @Comment("申报人姓名") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String username; + + @Column + @Comment("申报人单位id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String unitId; + + @Column + @Comment("申报人单位名称") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String unitName; + + @Column + @Comment("申报人工会Id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String unionId; + + @Column + @Comment("申报人工会名称") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String unionName; + + @Column + @Comment("联系电话") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String mobile; + + @Column + @Comment("基本情况简介(500字内)") + @ColDefine(type = ColType.TEXT) + private String basicInformation; + + @Column + @Comment("建设方案") + @ColDefine(type = ColType.TEXT) + private String constructionPlan; + + @Column + @Comment("基层党组织审核Id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String organizationAuditId; + + @Column + @Comment("校工会审核Id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String schoolAuditId; + + //10000待提交;10010待基层党组织审核;10020待校工会审核;10030审核通过 + @Column + @Comment("当前状态") + @ColDefine(type = ColType.VARCHAR, width = 10) + private String state; + + @Column + @Comment("申报时间") + @ColDefine(type = ColType.DATE) + private String applyDate; +} diff --git a/src/main/java/io/v/nutz/wakershome/model/WakesHomeDataRevel.java b/src/main/java/io/v/nutz/wakershome/model/WakesHomeDataRevel.java new file mode 100644 index 0000000..6b2e6ed --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/model/WakesHomeDataRevel.java @@ -0,0 +1,85 @@ +package io.v.nutz.wakershome.model; + +import io.v.nutz.base.model.BaseModel; +import io.v.nutz.sys.models.Sys_file; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.nutz.dao.entity.annotation.*; +import org.nutz.dao.interceptor.annotation.PrevInsert; + +import java.util.List; + +/** + * @version 1.0 + * @Author zzr + * @name:WakesHomeDataRevel + * @Date 2024/7/30 15:29 + * @注释 职工建家资料管理 + */ +@Data +@Table +@Comment("职工建家资料管理") +@EqualsAndHashCode(callSuper = true) +public class WakesHomeDataRevel extends BaseModel { + + @Name + @Comment("id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) + private String id; + + @Column + @Comment("资料名称") + @ColDefine(type = ColType.VARCHAR, width = 100) + private String revelName; + + @Column + @Comment("上传人id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String userId; + + @Column + @Comment("上传人工号") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String loginName; + + @Column + @Comment("上传人姓名") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String username; + + @Column + @Comment("上传人单位id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String unitId; + + @Column + @Comment("上传人单位名称") + @ColDefine(type = ColType.VARCHAR, width = 100) + private String unitName; + + @Column + @Comment("上传人工会id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String unionId; + + @Column + @Comment("上传人工会名称") + @ColDefine(type = ColType.VARCHAR, width = 100) + private String unionName; + + @Column + @Comment("上传时间") + @ColDefine(type = ColType.VARCHAR, width = 20) + private String time; + + @Column + @Comment("类型Id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String typeId; + + @Column + @Comment("附件") + @ColDefine(type = ColType.MYSQL_JSON) + private List files; +} diff --git a/src/main/java/io/v/nutz/wakershome/model/WakesHomeDataType.java b/src/main/java/io/v/nutz/wakershome/model/WakesHomeDataType.java new file mode 100644 index 0000000..f5da393 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/model/WakesHomeDataType.java @@ -0,0 +1,43 @@ +package io.v.nutz.wakershome.model; + +import io.v.nutz.base.model.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.nutz.dao.entity.annotation.*; +import org.nutz.dao.interceptor.annotation.PrevInsert; + +/** + * @version 1.0 + * @Author zzr + * @name:WakesHomeDataType + * @Date 2024/7/30 15:29 + * @注释 职工建家资料类型管理 + */ +@Data +@Table +@Comment("职工建家资料类型管理") +@EqualsAndHashCode(callSuper = true) +public class WakesHomeDataType extends BaseModel { + + @Name + @Comment("id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) + private String id; + + @Column + @Comment("类型编码") + @ColDefine(type = ColType.VARCHAR, width = 10) + private String code; + + @Column + @Comment("工作资料类型名称") + @ColDefine(type = ColType.VARCHAR, width = 80) + private String typeName; + + @Column + @Comment("序号") + @ColDefine(type = ColType.INT) + private Integer serialNum; + +} diff --git a/src/main/java/io/v/nutz/wakershome/model/review/CommentBz.java b/src/main/java/io/v/nutz/wakershome/model/review/CommentBz.java new file mode 100644 index 0000000..f8add2a --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/model/review/CommentBz.java @@ -0,0 +1,97 @@ +package io.v.nutz.wakershome.model.review; + +import cn.wizzer.framework.base.model.BaseModel; +import lombok.Data; +import org.nutz.dao.DB; +import org.nutz.dao.entity.annotation.*; + +/** + * @ClassName CommentBz + * @Description TODO + * @Author zhf + * @Date 2023/9/4 16:24 + */ +@Data +@Table +public class CommentBz extends BaseModel { + + @Column + @Name + @Comment("id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @Prev(els = {@EL("uuid()")}) + private String id; + + + @Column + @Comment("CommentNr表的id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String nr_id; + + + @Column + @Comment("考核标准") + @ColDefine(type = ColType.VARCHAR, width = 500) + private String inspection; + + + @Column + @Comment("是否启用佐证材料") + @ColDefine(type = ColType.BOOLEAN) + private boolean isEvidence; + + @Column + @Comment("标准分") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String score; + + @Column + @Comment("单项得分") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String single_score; + + @Column + @Comment("自评能否超过最高分") + @ColDefine(type = ColType.BOOLEAN) + private boolean beyondHighestScore; + + @Column + @Comment("关联模块") + @ColDefine(type = ColType.VARCHAR,width = 100) + private String associatedModule; + + @Column + @Comment("标准标识") + @ColDefine(type = ColType.VARCHAR,width = 100) + private String bz_relation_id; + + @Column + @Comment("CommentZb表的id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String zb_id; + + + @Column + @Comment("题号") + @ColDefine(type = ColType.VARCHAR, width = 100) + private String contentNumber; + + @Column + @Comment("排序字段") + @Prev({ + @SQL(db = DB.MYSQL, value = "SELECT IFNULL(MAX(location),0)+1 FROM comment_bz"), + }) + private Integer location; + + @Column + @Comment("能否删除该项") + @ColDefine(type = ColType.BOOLEAN) + private boolean canDelete; + + @One(field = "nr_id",key = "id") + private CommentNr nr; + + private String resultScore; + + private String options; +} diff --git a/src/main/java/io/v/nutz/wakershome/model/review/CommentExport.java b/src/main/java/io/v/nutz/wakershome/model/review/CommentExport.java new file mode 100644 index 0000000..c181b91 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/model/review/CommentExport.java @@ -0,0 +1,44 @@ +package io.v.nutz.wakershome.model.review; + +import lombok.Data; +import org.nutz.dao.entity.annotation.*; + +import java.util.List; + +/** + * @ClassName CommentExport + * @Description TODO + * @Author zhf + * @Date 2023/9/7 15:19 + */ +@Data +@Table +public class CommentExport { + + + @Column + @Name + @Comment("id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @Prev(els = {@EL("uuid()")}) + private String id; + + + @Column + @Comment("导出的名称") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String exportName; + + @Column + @Comment("zbids") + @ColDefine(type = ColType.MYSQL_JSON) + private List zbIds; + + + @Column + @Comment("创建时间") + @ColDefine(type = ColType.VARCHAR, width = 20) + private String createTime; + + +} diff --git a/src/main/java/io/v/nutz/wakershome/model/review/CommentNr.java b/src/main/java/io/v/nutz/wakershome/model/review/CommentNr.java new file mode 100644 index 0000000..395f1a9 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/model/review/CommentNr.java @@ -0,0 +1,61 @@ +package io.v.nutz.wakershome.model.review; + +import cn.wizzer.framework.base.model.BaseModel; +import lombok.Data; +import org.nutz.dao.DB; +import org.nutz.dao.entity.annotation.*; + +import java.util.List; + +/** + * @ClassName CommentNr + * @Description TODO + * @Author zhf + * @Date 2023/9/4 16:13 + */ +@Data +@Table +public class CommentNr extends BaseModel { + + + @Column + @Name + @Comment("id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @Prev(els = {@EL("uuid()")}) + private String id; + + @Column + @Comment("考核内容") + @ColDefine(type = ColType.VARCHAR, width = 100) + private String content; + + @Column + @Comment("题号") + @ColDefine(type = ColType.VARCHAR, width = 100) + private String contentNumber; + + + @Column + @Comment("CommentZb表的id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String zb_id; + + @One(field = "zb_id",key = "id") + private CommentZb zb; + + @Many(field = "nr_id") + private List bzs; + + @Column + @Comment("排序字段") + @Prev({ + @SQL(db= DB.MYSQL,value = "SELECT IFNULL(MAX(location),0)+1 FROM comment_nr"), + }) + private Integer location; + + @Column + @Comment("备注") + @ColDefine(type = ColType.TEXT) + private String remark; +} diff --git a/src/main/java/io/v/nutz/wakershome/model/review/CommentPeo.java b/src/main/java/io/v/nutz/wakershome/model/review/CommentPeo.java new file mode 100644 index 0000000..ac2f084 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/model/review/CommentPeo.java @@ -0,0 +1,73 @@ +package io.v.nutz.wakershome.model.review; + + +import io.v.nutz.sys.models.Sys_file; +import lombok.Data; +import org.nutz.dao.entity.annotation.*; + +import java.util.List; + +@Data +@Table +public class CommentPeo { + + @Column + @Name + @Comment("id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @Prev(els = {@EL("uuid()")}) + private String id; + + + @Column + @Comment("测评人") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String userId; + + + @Column + @Comment("被测评人id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String evaluatedPersonId; + + @Column + @Comment("被测评人姓名") + @ColDefine(type = ColType.VARCHAR, width = 20) + private String evaluatedPersonName; + + @Column + @Comment("被测评人职务(主席/副主席)") + @ColDefine(type = ColType.VARCHAR, width = 10) + private String evaluatedPersonType; + + + @Column + @Comment("指标id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String zbId; + + @Column + @Comment("主席测评意见") + @ColDefine(type = ColType.TEXT) + private String presidentOpinions; + + @Column + @Comment("评测结果") + @ColDefine(type = ColType.VARCHAR,width = 10) + private String reviewResult; + + @Column + @Comment("测评时间") + @ColDefine(type = ColType.VARCHAR,width = 20) + private String reviewTime; + + + @Many(field = "peo_id") + private List resultList; + + + @Column + @Comment("自我测评的附件") + @ColDefine(type = ColType.MYSQL_JSON) + private List files; +} diff --git a/src/main/java/io/v/nutz/wakershome/model/review/CommentResult.java b/src/main/java/io/v/nutz/wakershome/model/review/CommentResult.java new file mode 100644 index 0000000..1f9aad4 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/model/review/CommentResult.java @@ -0,0 +1,45 @@ +package io.v.nutz.wakershome.model.review; + + +import lombok.Data; +import org.nutz.dao.entity.annotation.*; + +@Data +@Table +public class CommentResult { + + @Column + @Name + @Comment("id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @Prev(els = {@EL("uuid()")}) + private String id; + + + @Column + @Comment("CommentPeo表的id(测评人表id)") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String peo_id; + + + @Column + @Comment("CommentBz表的id(测评标准id)") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String bz_id; + + + @Column + @Comment("测评分数/满意度") + @ColDefine(type = ColType.VARCHAR, width = 10) + private String assessResult; + + + @Column + @Comment("会员评家意见或建议") + @ColDefine(type = ColType.TEXT) + private String recommendation; + + + @One(field = "peo_id",key = "id") + private CommentPeo peo; +} diff --git a/src/main/java/io/v/nutz/wakershome/model/review/CommentZb.java b/src/main/java/io/v/nutz/wakershome/model/review/CommentZb.java new file mode 100644 index 0000000..74e08e5 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/model/review/CommentZb.java @@ -0,0 +1,96 @@ +package io.v.nutz.wakershome.model.review; + +import cn.wizzer.framework.base.model.BaseModel; +import lombok.Data; +import org.nutz.dao.DB; +import org.nutz.dao.entity.annotation.*; + +import java.util.Date; +import java.util.List; + +/** + * @ClassName CommentZb + * @Description TODO + * @Author zhf + * @Date 2023/9/4 15:39 + */ +@Data +@Table +public class CommentZb extends BaseModel { + + @Column + @Name + @Comment("id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @Prev(els = {@EL("uuid()")}) + private String id; + + @Column + @Comment("年度") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String annual; + + @Column + @Comment("考核名称") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String assessment; + + @Column + @Comment("添加时间") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String addTime; + + @Column + @Comment("评议选项(1.工会评家2.主席评家)") + @ColDefine(type = ColType.INT) + private Integer assessmentMode; + + @Column + @Comment("可报名范围组别") + @ColDefine(type = ColType.VARCHAR, width = 32) + private Integer activityGroupId; + + @Column + @Comment("评议范围(1.校工会 2.全部分工会 3.自选分工会)") + @ColDefine(type = ColType.INT) + private Integer commentTarget; + + @Column + @Comment("打分模式(1.评分模式2.选择满意不满意模式)") + @ColDefine(type = ColType.INT) + private Integer scoringMode; + + + @Many(field = "zb_id") + private List nrs; + + @Column + @Comment("排序字段") + @Prev({ + @SQL(db= DB.MYSQL,value = "SELECT IFNULL(MAX(location),0)+1 FROM comment_zb"), + }) + private Integer location; + + + @Column + @Comment("自选分工会Id") + @ColDefine(type = ColType.MYSQL_JSON) + private List unionIds; + + @Column + @Comment("评议开始时间") + @ColDefine(type = ColType.DATETIME) + private Date startTime; + + + @Column + @Comment("评议结束时间") + @ColDefine(type = ColType.DATETIME) + private Date endTime; + + + @Column + @Comment("评议模式(1.自评模式 2.教职工评议)") + @ColDefine(type = ColType.INT) + private Integer reviewMode; +} diff --git a/src/main/java/io/v/nutz/wakershome/service/IWakesHomeApplyService.java b/src/main/java/io/v/nutz/wakershome/service/IWakesHomeApplyService.java new file mode 100644 index 0000000..4ad343f --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/service/IWakesHomeApplyService.java @@ -0,0 +1,19 @@ +package io.v.nutz.wakershome.service; + +import io.v.nutz.base.service.BaseService; +import io.v.nutz.wakershome.model.WakesHomeApply; +import org.nutz.lang.util.NutMap; + +/** + * @version 1.0 + * @Author zzr + * @name:IWakesHomeApplyService + * @Date 2024/7/31 11:09 + * @注释 + */ +public interface IWakesHomeApplyService extends BaseService { + + NutMap findById(String id); + + void setParams(WakesHomeApply wakesHomeApply); +} diff --git a/src/main/java/io/v/nutz/wakershome/service/WakesHomeInfoService.java b/src/main/java/io/v/nutz/wakershome/service/WakesHomeInfoService.java new file mode 100644 index 0000000..faef584 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/service/WakesHomeInfoService.java @@ -0,0 +1,7 @@ +package io.v.nutz.wakershome.service; + +import io.v.nutz.service.ViService; +import io.v.nutz.wakershome.model.WakesHome; + +public interface WakesHomeInfoService extends ViService { +} diff --git a/src/main/java/io/v/nutz/wakershome/service/impl/WakesHomeApplyServiceImpl.java b/src/main/java/io/v/nutz/wakershome/service/impl/WakesHomeApplyServiceImpl.java new file mode 100644 index 0000000..9c9d4d0 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/service/impl/WakesHomeApplyServiceImpl.java @@ -0,0 +1,58 @@ +package io.v.nutz.wakershome.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import io.v.nutz.base.service.impl.BaseServiceImpl; +import io.v.nutz.modules.models.Audit; +import io.v.nutz.sys.models.User; +import io.v.nutz.util.ShiroUtil; +import io.v.nutz.wakershome.model.WakesHomeApply; +import io.v.nutz.wakershome.service.IWakesHomeApplyService; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.Lang; +import org.nutz.lang.random.R; +import org.nutz.lang.util.NutMap; + +/** + * @version 1.0 + * @Author zzr + * @name:WakesHomeApplyServiceImpl + * @Date 2024/7/31 11:10 + * @注释 + */ +@IocBean(args = {"refer:dao"}) +public class WakesHomeApplyServiceImpl extends BaseServiceImpl implements IWakesHomeApplyService { + public WakesHomeApplyServiceImpl(Dao dao) { + super(dao); + } + + + @Override + public NutMap findById(String id) { + WakesHomeApply apply = fetch(id); + NutMap nutMap = Lang.obj2nutmap(apply); + if (StrUtil.isNotBlank(apply.getOrganizationAuditId())) { + Audit audit = dao().fetch(Audit.class, Cnd.where("id", "=", apply.getOrganizationAuditId())); + nutMap.put("organizationAudit", Lang.obj2nutmap(audit)); + } + if (StrUtil.isNotBlank(apply.getSchoolAuditId())) { + Audit audit = dao().fetch(Audit.class, Cnd.where("id", "=", apply.getSchoolAuditId())); + nutMap.put("schoolAudit", Lang.obj2nutmap(audit)); + } + return nutMap; + } + + + @Override + public void setParams(WakesHomeApply wakesHomeApply) { + User user = dao().fetch(User.class, Cnd.where("id", "=", ShiroUtil.getUserId())); + wakesHomeApply.setId(R.UU32()); + wakesHomeApply.setApplyDate(DateUtil.today()); + wakesHomeApply.setUnitId(user.getUnitid()); + wakesHomeApply.setUnitName(user.getUnitname()); + wakesHomeApply.setUnionId(user.getUnionid()); + wakesHomeApply.setUnionName(user.getUnionname()); + } +} diff --git a/src/main/java/io/v/nutz/wakershome/service/impl/WakesHomeInfoServiceImpl.java b/src/main/java/io/v/nutz/wakershome/service/impl/WakesHomeInfoServiceImpl.java new file mode 100644 index 0000000..d82f9c3 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/service/impl/WakesHomeInfoServiceImpl.java @@ -0,0 +1,14 @@ +package io.v.nutz.wakershome.service.impl; + +import io.v.nutz.service.impl.ViServiceImpl; +import io.v.nutz.wakershome.model.WakesHome; +import io.v.nutz.wakershome.service.WakesHomeInfoService; +import org.nutz.dao.Dao; +import org.nutz.ioc.loader.annotation.IocBean; + +@IocBean(args = {"refer:dao"}) +public class WakesHomeInfoServiceImpl extends ViServiceImpl implements WakesHomeInfoService { + public WakesHomeInfoServiceImpl(Dao dao) { + super(dao); + } +} diff --git a/src/main/java/io/v/nutz/wakershome/service/impl/review/CommentBzServiceImpl.java b/src/main/java/io/v/nutz/wakershome/service/impl/review/CommentBzServiceImpl.java new file mode 100644 index 0000000..e9c899a --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/service/impl/review/CommentBzServiceImpl.java @@ -0,0 +1,20 @@ +package io.v.nutz.wakershome.service.impl.review; + +import io.v.nutz.service.impl.ViServiceImpl; +import io.v.nutz.wakershome.model.review.CommentBz; +import io.v.nutz.wakershome.service.review.CommentBzService; +import org.nutz.dao.Dao; +import org.nutz.ioc.loader.annotation.IocBean; + +/** + * @ClassName CommentBzServiceImpl + * @Description TODO + * @Author zhf + * @Date 2023/9/4 16:30 + */ +@IocBean(args = {"refer:dao"}) +public class CommentBzServiceImpl extends ViServiceImpl implements CommentBzService { + public CommentBzServiceImpl(Dao dao) { + super(dao); + } +} diff --git a/src/main/java/io/v/nutz/wakershome/service/impl/review/CommentNrServiceImpl.java b/src/main/java/io/v/nutz/wakershome/service/impl/review/CommentNrServiceImpl.java new file mode 100644 index 0000000..b2c0556 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/service/impl/review/CommentNrServiceImpl.java @@ -0,0 +1,20 @@ +package io.v.nutz.wakershome.service.impl.review; + +import io.v.nutz.service.impl.ViServiceImpl; +import io.v.nutz.wakershome.model.review.CommentNr; +import io.v.nutz.wakershome.service.review.CommentNrService; +import org.nutz.dao.Dao; +import org.nutz.ioc.loader.annotation.IocBean; + +/** + * @ClassName CommentNrServiceImpl + * @Description TODO + * @Author zhf + * @Date 2023/9/4 16:28 + */ +@IocBean(args = {"refer:dao"}) +public class CommentNrServiceImpl extends ViServiceImpl implements CommentNrService { + public CommentNrServiceImpl(Dao dao) { + super(dao); + } +} diff --git a/src/main/java/io/v/nutz/wakershome/service/impl/review/CommentPeoServiceImpl.java b/src/main/java/io/v/nutz/wakershome/service/impl/review/CommentPeoServiceImpl.java new file mode 100644 index 0000000..ce84dd2 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/service/impl/review/CommentPeoServiceImpl.java @@ -0,0 +1,60 @@ +package io.v.nutz.wakershome.service.impl.review; + + +import cn.wizzer.framework.base.service.BaseService; +import io.v.nutz.service.impl.ViServiceImpl; +import io.v.nutz.wakershome.model.review.CommentNr; +import io.v.nutz.wakershome.model.review.CommentPeo; +import io.v.nutz.wakershome.model.review.CommentResult; +import io.v.nutz.wakershome.model.review.CommentZb; +import io.v.nutz.wakershome.service.review.CommentPeoService; +import io.v.nutz.wakershome.service.review.CommentZbService; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.util.NutMap; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@IocBean(args = {"refer:dao"}) +public class CommentPeoServiceImpl extends ViServiceImpl implements CommentPeoService { + + public CommentPeoServiceImpl(Dao dao) {super(dao);} + + @Inject + private BaseService baseService; + + @Inject + private CommentZbService commentZbService; + + /** + * 获取测评结果信息 + * @param peoId 指标id + * @return + */ + @Override + public NutMap getBzById(String peoId) { + CommentPeo commentPeo = fetch(peoId); + List query = baseService.dao().query(CommentResult.class, Cnd.where("peo_id","=",peoId)); + //对测评标准分组 + Map commentResultMap = query.stream().collect(Collectors.toMap(v -> v.getBz_id(), v -> v)); + //获取指标 + CommentZb khzb = commentZbService.khzb(commentPeo.getZbId()); + List nrs = khzb.getNrs(); + nrs.forEach(v->{ + v.getBzs().forEach(o->{ + //赋值测评结果 + CommentResult result = commentResultMap.get(o.getId()); + o.setOptions(result.getRecommendation()); + o.setResultScore(result.getAssessResult()); + }); + }); + NutMap nutMap = new NutMap(); + nutMap.setv("zbxx",khzb); + nutMap.setv("commentPeo",commentPeo); + return nutMap; + } +} diff --git a/src/main/java/io/v/nutz/wakershome/service/impl/review/CommentZbServiceImpl.java b/src/main/java/io/v/nutz/wakershome/service/impl/review/CommentZbServiceImpl.java new file mode 100644 index 0000000..240b592 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/service/impl/review/CommentZbServiceImpl.java @@ -0,0 +1,48 @@ +package io.v.nutz.wakershome.service.impl.review; + +import cn.hutool.core.util.StrUtil; +import io.v.nutz.service.impl.ViServiceImpl; +import io.v.nutz.wakershome.model.review.CommentNr; +import io.v.nutz.wakershome.model.review.CommentZb; +import io.v.nutz.wakershome.service.review.CommentNrService; +import io.v.nutz.wakershome.service.review.CommentZbService; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; + +import java.util.List; + +/** + * @ClassName CommentZbServiceImpl + * @Description TODO + * @Author zhf + * @Date 2023/9/4 15:54 + */ +@IocBean(args = {"refer:dao"}) +public class CommentZbServiceImpl extends ViServiceImpl implements CommentZbService { + public CommentZbServiceImpl(Dao dao) { + super(dao); + } + + @Inject + private CommentNrService commentNrService; + + + private void setNrBz(List nrs) { + for (CommentNr nr : nrs) { + nr = commentNrService.fetchLinks(nr, "bzs", Cnd.NEW().asc("location")); + } + } + + @Override + public CommentZb khzb(String zbid) { + if (StrUtil.isBlank(zbid)) { + return null; + } + CommentZb zb = fetchLinks(fetch(zbid), "nrs", Cnd.NEW().asc("location")); + setNrBz(zb.getNrs()); + return zb; + } + +} diff --git a/src/main/java/io/v/nutz/wakershome/service/review/CommentBzService.java b/src/main/java/io/v/nutz/wakershome/service/review/CommentBzService.java new file mode 100644 index 0000000..dc9e7c7 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/service/review/CommentBzService.java @@ -0,0 +1,7 @@ +package io.v.nutz.wakershome.service.review; + +import io.v.nutz.service.ViService; +import io.v.nutz.wakershome.model.review.CommentBz; + +public interface CommentBzService extends ViService { +} diff --git a/src/main/java/io/v/nutz/wakershome/service/review/CommentNrService.java b/src/main/java/io/v/nutz/wakershome/service/review/CommentNrService.java new file mode 100644 index 0000000..ec38a6e --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/service/review/CommentNrService.java @@ -0,0 +1,7 @@ +package io.v.nutz.wakershome.service.review; + +import io.v.nutz.service.ViService; +import io.v.nutz.wakershome.model.review.CommentNr; + +public interface CommentNrService extends ViService { +} diff --git a/src/main/java/io/v/nutz/wakershome/service/review/CommentPeoService.java b/src/main/java/io/v/nutz/wakershome/service/review/CommentPeoService.java new file mode 100644 index 0000000..e98b392 --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/service/review/CommentPeoService.java @@ -0,0 +1,15 @@ +package io.v.nutz.wakershome.service.review; + +import io.v.nutz.service.ViService; +import io.v.nutz.wakershome.model.review.CommentPeo; +import org.nutz.lang.util.NutMap; + +public interface CommentPeoService extends ViService { + + /** + * 根据指标id和被测评人id查测评结果 + * @param peoId 指标id + * @return + */ + NutMap getBzById(String peoId); +} diff --git a/src/main/java/io/v/nutz/wakershome/service/review/CommentZbService.java b/src/main/java/io/v/nutz/wakershome/service/review/CommentZbService.java new file mode 100644 index 0000000..0c8619b --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/service/review/CommentZbService.java @@ -0,0 +1,13 @@ +package io.v.nutz.wakershome.service.review; + +import io.v.nutz.service.ViService; +import io.v.nutz.wakershome.model.review.CommentZb; + +public interface CommentZbService extends ViService { + + + CommentZb khzb(String zbid); + + + +} diff --git a/src/main/java/io/v/nutz/wakershome/vo/WakesHomeVo.java b/src/main/java/io/v/nutz/wakershome/vo/WakesHomeVo.java new file mode 100644 index 0000000..a7ac2cc --- /dev/null +++ b/src/main/java/io/v/nutz/wakershome/vo/WakesHomeVo.java @@ -0,0 +1,34 @@ +package io.v.nutz.wakershome.vo; + +import io.v.nutz.sys.models.Sys_file; +import io.v.nutz.wakershome.model.review.CommentBz; +import lombok.Data; + +import java.util.List; + +/** + * @version 1.0 + * @Author zzr + * @name:WakesHomeVo + * @Date 2024/8/1 16:06 + * @注释 职工建家vo + */ +@Data +public class WakesHomeVo { + + private String id; + + private List bzList; + + private String reviewResult; + + private String evaluatedPersonId; + + private String evaluatedPersonName; + + private String evaluatedPersonType; + + private String presidentOpinions; + + private List files; +} diff --git a/src/main/java/io/v/nutz/web/commons/controller/ViCommonCon.java b/src/main/java/io/v/nutz/web/commons/controller/ViCommonCon.java index 9bde240..e63c7cb 100644 --- a/src/main/java/io/v/nutz/web/commons/controller/ViCommonCon.java +++ b/src/main/java/io/v/nutz/web/commons/controller/ViCommonCon.java @@ -18,6 +18,7 @@ import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.Strings; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; import java.util.ArrayList; @@ -284,9 +285,14 @@ public class ViCommonCon { */ @At @ViReturn - public Object unions(String delegationId) { + public Object unions(@Param(value = "delegationId", required = false) String delegationId, boolean isPermission) { if (Strings.isBlank(delegationId)) { - return sysUnionService.query(Cnd.where("isEnable", "=", true).orderBy().asc("unioncode")); + Cnd cndX = Cnd.NEW(); + if (isPermission) { + cndX.and("id", "=", Vi.getUnionId()); + } + cndX.asc("unioncode"); + return sysUnionService.query(cndX); } Cnd cnd = Cnd.NEW(); Sql sql = Sqls.create(""" @@ -300,7 +306,7 @@ public class ViCommonCon { LEFT JOIN jdh_dbt dbt ON zc.dbtid = dbt.id $condition """); - cnd.and("zc.dbtid", "=", delegationId).and("uni.isEnable", "=", true) + cnd.and("zc.dbtid", "=", delegationId) .groupBy("uni.id") .asc("uni.unioncode"); diff --git a/src/main/resources/static/assets/platform/js/v.js b/src/main/resources/static/assets/platform/js/v.js index ca75c79..c7bbb43 100644 --- a/src/main/resources/static/assets/platform/js/v.js +++ b/src/main/resources/static/assets/platform/js/v.js @@ -48,8 +48,8 @@ const getDbt = async (jdhId) => { * 获取院级工会 * @returns {Promise<*>} */ -const getUnions = async (delegationId) => { - const {data} = await $.get("/platform/vi/common/unions", {delegationId}) +const getUnions = async (delegationId = null, isPermission = false) => { + const {data} = await $.get("/platform/vi/common/unions", {delegationId, isPermission}) return data } diff --git a/src/main/resources/static/components/plugins/BorderTable.vue b/src/main/resources/static/components/plugins/BorderTable.vue new file mode 100644 index 0000000..142213c --- /dev/null +++ b/src/main/resources/static/components/plugins/BorderTable.vue @@ -0,0 +1,81 @@ +/** +*Desc: +*Create by: jug +*Create time:2023/11/10/11:07 +*/ + + + + + diff --git a/src/main/resources/static/components/wakeshome/declaration/WakesHomeInfoApply.vue b/src/main/resources/static/components/wakeshome/declaration/WakesHomeInfoApply.vue new file mode 100644 index 0000000..cf48700 --- /dev/null +++ b/src/main/resources/static/components/wakeshome/declaration/WakesHomeInfoApply.vue @@ -0,0 +1,132 @@ + + + + diff --git a/src/main/resources/static/components/wakeshome/info/WakesHomeInfo.vue b/src/main/resources/static/components/wakeshome/info/WakesHomeInfo.vue new file mode 100644 index 0000000..2c2a3f9 --- /dev/null +++ b/src/main/resources/static/components/wakeshome/info/WakesHomeInfo.vue @@ -0,0 +1,151 @@ + + + + + diff --git a/src/main/resources/static/components/wakeshome/review/UnionCommentZb.vue b/src/main/resources/static/components/wakeshome/review/UnionCommentZb.vue new file mode 100644 index 0000000..5e0f686 --- /dev/null +++ b/src/main/resources/static/components/wakeshome/review/UnionCommentZb.vue @@ -0,0 +1,506 @@ + + + + + + diff --git a/src/main/resources/views/layouts/platform.html b/src/main/resources/views/layouts/platform.html index 9c55514..8c256c0 100644 --- a/src/main/resources/views/layouts/platform.html +++ b/src/main/resources/views/layouts/platform.html @@ -131,6 +131,7 @@ Vue.component('sign', httpVueLoader('/components/sign/sign.vue?v=2.0.0')) Vue.component('file-upload', httpVueLoader('/components/plugins/FileUpload.vue')) Vue.component('text-editor', httpVueLoader('/components/plugins/textEditor.vue')) + Vue.component('border-table', httpVueLoader('/components/plugins/BorderTable.vue')) diff --git a/src/main/resources/views/mobile/home.html b/src/main/resources/views/mobile/home.html index f339028..daf3376 100644 --- a/src/main/resources/views/mobile/home.html +++ b/src/main/resources/views/mobile/home.html @@ -337,6 +337,22 @@ layout("/mobile/platform.html"){ 我的疗休养 + + +
+ 职工评议 +
+ + + + 职工评议 + + + + + 我的评议 + +
diff --git a/src/main/resources/views/mobile/wakeshome/review/appraisal.html b/src/main/resources/views/mobile/wakeshome/review/appraisal.html new file mode 100644 index 0000000..9d19888 --- /dev/null +++ b/src/main/resources/views/mobile/wakeshome/review/appraisal.html @@ -0,0 +1,182 @@ + + +
+ + +
+ + + + +
+ +
+ + +
+ +
+ + 职工评议 + 我的评议 + +
+ +
+ + diff --git a/src/main/resources/views/mobile/wakeshome/review/commentator.html b/src/main/resources/views/mobile/wakeshome/review/commentator.html new file mode 100644 index 0000000..9a0e7f1 --- /dev/null +++ b/src/main/resources/views/mobile/wakeshome/review/commentator.html @@ -0,0 +1,373 @@ + + +
+ + +
+ + + +
+
+ + +
+
+
+ {{item.contentNumber}}、{{item.inspection}} +
+ +
标准分:{{item.score}}
+
+ +
+
+
+ +
+
+
+
+ + + + +
+
+ +
+ +
+ + + +
+ +
+
+
+
{{item.contentNumber}}、{{item.inspection}} +
+ + + +
+
+
+
+ +
+
+
+ +
+ +
+ +
+ + 查看测评结果 + 提交 + +
+ +
+ + diff --git a/src/main/resources/views/mobile/wakeshome/review/mine.html b/src/main/resources/views/mobile/wakeshome/review/mine.html new file mode 100644 index 0000000..8546824 --- /dev/null +++ b/src/main/resources/views/mobile/wakeshome/review/mine.html @@ -0,0 +1,271 @@ + + +
+ +
+ +
+ + + +
+ +
+ +
+
+ + + + + +
+ + + +
+
+ + +
+
+
+ {{item.contentNumber}}、{{item.inspection}} +
+ +
标准分:{{item.score}}
+
+ + + +
+
+
+
+
+ +
+
+ +
+
+
+
+
+ {{item.contentNumber}}、{{item.inspection}} +
+ + + +
+
+
+
+ + +
+
+
+ +
+
+
+ +
+ + 民主测评 + 我的测评 + +
+ +
+ + diff --git a/src/main/resources/views/platform/sys/menu/index.html b/src/main/resources/views/platform/sys/menu/index.html index ca5b150..57047cc 100644 --- a/src/main/resources/views/platform/sys/menu/index.html +++ b/src/main/resources/views/platform/sys/menu/index.html @@ -35,6 +35,9 @@ layout("/layouts/platform.html"){ :highlight-current-row="true" :key="tableKey" :load="loadChild" + :expand-row-keys="expandedRowKeysRenew" + @expand-change="handleExpandChange" + ref="tableData" lazy row-key="id" style="width: 100%"> @@ -159,10 +162,10 @@ layout("/layouts/platform.html"){ tabindex="7" type="text" v-model="formData.icon"> - + v === row.id) + this.expandedRowKeysRenew.splice(index, 1) + } + }, + loadChildByExpandedKeys() { + if (this.expandedRowKeysRenew && this.expandedRowKeysRenew.length > 0) { + this.expandedRowKeysRenew.forEach((v) => { + const curr = this.tableTreeRefreshTool[v] + // api请求 + $.get('/platform/sys/menu/child', {pid: v}).then(res => { + curr.resolve(res.data) + }) + }) + } else { + this.initTreeTable() + } } - }, created: function () { this.initTreeTable(); diff --git a/src/main/resources/views/platform/wakeshome/data/revel.html b/src/main/resources/views/platform/wakeshome/data/revel.html new file mode 100644 index 0000000..ce89a62 --- /dev/null +++ b/src/main/resources/views/platform/wakeshome/data/revel.html @@ -0,0 +1,432 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + 取 消 + 确 定 + + + + + + + + + + + + + + + + + + + + + + + 取 消 + 确 定 + + + + + + + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+ + 关 闭 + +
+ + +
+ + + diff --git a/src/main/resources/views/platform/wakeshome/data/type.html b/src/main/resources/views/platform/wakeshome/data/type.html new file mode 100644 index 0000000..0cfd733 --- /dev/null +++ b/src/main/resources/views/platform/wakeshome/data/type.html @@ -0,0 +1,217 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 取 消 + 确 定 + + + + + + + + + + + + + + 取 消 + 确 定 + + +
+ + + + diff --git a/src/main/resources/views/platform/wakeshome/declaration/apply.html b/src/main/resources/views/platform/wakeshome/declaration/apply.html new file mode 100644 index 0000000..d12c38c --- /dev/null +++ b/src/main/resources/views/platform/wakeshome/declaration/apply.html @@ -0,0 +1,156 @@ + + +
+ + + +
+ + + diff --git a/src/main/resources/views/platform/wakeshome/declaration/mine.html b/src/main/resources/views/platform/wakeshome/declaration/mine.html new file mode 100644 index 0000000..ac26794 --- /dev/null +++ b/src/main/resources/views/platform/wakeshome/declaration/mine.html @@ -0,0 +1,170 @@ + + +
+ + + + + + +
+ + + diff --git a/src/main/resources/views/platform/wakeshome/declaration/organizationAudit.html b/src/main/resources/views/platform/wakeshome/declaration/organizationAudit.html new file mode 100644 index 0000000..98e2ffc --- /dev/null +++ b/src/main/resources/views/platform/wakeshome/declaration/organizationAudit.html @@ -0,0 +1,241 @@ + + +
+ + + + + + + +
+ + + diff --git a/src/main/resources/views/platform/wakeshome/declaration/schoolAudit.html b/src/main/resources/views/platform/wakeshome/declaration/schoolAudit.html new file mode 100644 index 0000000..768dd63 --- /dev/null +++ b/src/main/resources/views/platform/wakeshome/declaration/schoolAudit.html @@ -0,0 +1,240 @@ + + +
+ + + + + + + +
+ + + diff --git a/src/main/resources/views/platform/wakeshome/info/apply.html b/src/main/resources/views/platform/wakeshome/info/apply.html new file mode 100644 index 0000000..27ce00d --- /dev/null +++ b/src/main/resources/views/platform/wakeshome/info/apply.html @@ -0,0 +1,340 @@ + + + + +
+ + + +
+ + + + diff --git a/src/main/resources/views/platform/wakeshome/info/info.html b/src/main/resources/views/platform/wakeshome/info/info.html new file mode 100644 index 0000000..0984373 --- /dev/null +++ b/src/main/resources/views/platform/wakeshome/info/info.html @@ -0,0 +1,235 @@ + + + + +
+ + + + +
+ + + diff --git a/src/main/resources/views/platform/wakeshome/info/mine.html b/src/main/resources/views/platform/wakeshome/info/mine.html new file mode 100644 index 0000000..96eb385 --- /dev/null +++ b/src/main/resources/views/platform/wakeshome/info/mine.html @@ -0,0 +1,151 @@ + + +
+ + + + + + +
+ + + diff --git a/src/main/resources/views/platform/wakeshome/info/schoolAudit.html b/src/main/resources/views/platform/wakeshome/info/schoolAudit.html new file mode 100644 index 0000000..613c3db --- /dev/null +++ b/src/main/resources/views/platform/wakeshome/info/schoolAudit.html @@ -0,0 +1,242 @@ + + +
+ + + + + + + +
+ + + diff --git a/src/main/resources/views/platform/wakeshome/review/doReview.html b/src/main/resources/views/platform/wakeshome/review/doReview.html new file mode 100644 index 0000000..ce08e2d --- /dev/null +++ b/src/main/resources/views/platform/wakeshome/review/doReview.html @@ -0,0 +1,318 @@ + + +
+ + + + + + + + + + + +
+ + diff --git a/src/main/resources/views/platform/wakeshome/review/khzb.html b/src/main/resources/views/platform/wakeshome/review/khzb.html new file mode 100644 index 0000000..a6cecaf --- /dev/null +++ b/src/main/resources/views/platform/wakeshome/review/khzb.html @@ -0,0 +1,202 @@ + + +
+ + + + + + + + +
+ + diff --git a/src/main/resources/views/platform/wakeshome/review/statistics.html b/src/main/resources/views/platform/wakeshome/review/statistics.html new file mode 100644 index 0000000..f3e4497 --- /dev/null +++ b/src/main/resources/views/platform/wakeshome/review/statistics.html @@ -0,0 +1,413 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{zpxx.commentPeo.evaluatedPersonName}} + + + + + {{zpxx.commentPeo.evaluatedPersonName}} + + + + + {{zpxx.commentPeo.reviewResult}} + + + + + {{zpxx.commentPeo.presidentOpinions}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + diff --git a/src/main/resources/views/platform/wakeshome/review/xjkhzb.html b/src/main/resources/views/platform/wakeshome/review/xjkhzb.html new file mode 100644 index 0000000..f588153 --- /dev/null +++ b/src/main/resources/views/platform/wakeshome/review/xjkhzb.html @@ -0,0 +1,135 @@ + + +
+ + + + + + + + +
+ + +