This commit is contained in:
Paidax
2024-11-29 09:03:59 +08:00
commit 2ffadd89a7
3480 changed files with 879405 additions and 0 deletions
@@ -0,0 +1,83 @@
package io.v.nutz.zhgh.suggestion.controller;
import cn.wizzer.framework.base.service.BaseService;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.zhgh.suggestion.enums.suggestionState;
import io.v.nutz.zhgh.suggestion.models.Suggestion;
import io.v.nutz.web.commons.utils.ShiroUtil;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
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.Strings;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
@IocBean
@At("/platform/suggestions/delegatetwoadopt")
@Ok("json:full")
public class DelegateTwoAdopt {
@Inject
private BaseService baseService;
@At("")
@RequiresPermissions("suggestions.delegatetwo")
@Ok("beetl:/platform/suggestion/process/delegatetwoadopt.html")
public void index() {
}
@At
@ViReturn
@RequiresAuthentication
public Object pageData(Integer pageNumber, Integer pageSize, Boolean isAdopt, PageForm page, String suggestionName) {
Sql sql = Sqls.create("""
SELECT
su.*,
au.username as createUserName,
au.loginname as createUserLogin,
au.unionname as createUserUnionName,
type.typeName as typeName
FROM
`suggestion` su
LEFT JOIN `user` au ON au.id = su.applyUser
LEFT JOIN proposal_type type ON type.id = su.suggestionType
$condition
""");
Cnd cnd = Cnd.NEW();
cnd.and("su.levelTwoJdhUser", "is not", null);
cnd.and("su.state", isAdopt ? ">" : "=", suggestionState.DELEGATETWOING.getCode());
if (!ShiroUtil.hasRole("sysadmin")) {
cnd.and("su.levelTwoJdhUser", "=", ShiroUtil.getPrincipalProperty("id"));
}
if (Strings.isNotBlank(suggestionName)) {
cnd.and("su.suggestionName", "like", "%" + suggestionName + "%");
}
if (Strings.isNotBlank(page.getSearchName()) && Strings.isNotBlank(page.getSearchKeyword())) {
cnd.where().andLike(page.getSearchName(), page.getSearchKeyword());
}
if (Strings.isBlank(page.getPageOrderName()) && Strings.isBlank(page.getPageOrderBy())) {
cnd.desc("su.applyTime").asc("su.state").desc("su.proposalId");
} else {
cnd.orderBy(page.getPageOrderName(), page.getPageOrderBy());
}
sql.setCondition(cnd);
return baseService.listPageMap(pageNumber, pageSize, sql);
}
@At
@ViReturn
@RequiresAuthentication
public Object doSubmit(Suggestion suggestion) {
suggestion.setState(suggestionState.DEPARTMENTING.getCode());
baseService.dao().updateIgnoreNull(suggestion);
return null;
}
}
@@ -0,0 +1,116 @@
package io.v.nutz.zhgh.suggestion.controller;
import cn.wizzer.framework.base.service.BaseService;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.zhgh.suggestion.enums.suggestionState;
import io.v.nutz.zhgh.suggestion.models.Suggestion;
import io.v.nutz.web.commons.utils.ShiroUtil;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.dao.util.cri.Static;
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;
@IocBean
@At("/platform/suggestions/depExamine")
@Ok("json:full")
public class DepExamineController {
@Inject
private Vi vi;
@Inject
private Dao dao;
@Inject
private BaseService baseService;
@At("")
@RequiresPermissions("suggestions.depExamine")
@Ok("beetl:/platform/suggestion/process/depExamine.html")
public void index() {
}
@At
@ViReturn
@RequiresAuthentication
public Object pageData(Integer pageNumber, Integer pageSize, Boolean isAdopt, PageForm page, String suggestionName) {
Sql sql = Sqls.create("""
SELECT
su.*,
au.username as createUserName,
au.loginname as createUserLogin,
au.unionname as createUserUnionName,
type.typeName as typeName
FROM
`suggestion` su
LEFT JOIN `user` au ON au.id = su.applyUser
LEFT JOIN proposal_type type ON type.id = su.suggestionType
$condition
""");
Cnd cnd = Cnd.NEW();
cnd.and("su.levelTwoJdhUser", "is not", null);
cnd.and("su.state", isAdopt ? ">" : "=", suggestionState.DEPARTMENTING.getCode());
if (!ShiroUtil.hasRole("sysadmin")) {
cnd.and("au.unionid", "in", vi.getMangeUnionStr());
}
if (Strings.isNotBlank(suggestionName)) {
cnd.and("su.suggestionName", "like", "%" + suggestionName + "%");
}
if (Strings.isNotBlank(page.getSearchName()) && Strings.isNotBlank(page.getSearchKeyword())) {
cnd.where().andLike(page.getSearchName(), page.getSearchKeyword());
}
if (Strings.isBlank(page.getPageOrderName()) && Strings.isBlank(page.getPageOrderBy())) {
cnd.desc("su.applyTime").asc("su.state").desc("su.proposalId");
} else {
cnd.orderBy(page.getPageOrderName(), page.getPageOrderBy());
}
sql.setCondition(cnd);
return baseService.listPageMap(pageNumber, pageSize, sql);
}
@At
@ViReturn
@RequiresAuthentication
public Object doSubmit(Suggestion suggestion) {
suggestion.setState(suggestionState.FINSH.getCode());
dao.updateIgnoreNull(suggestion);
return null;
}
@At
@ViReturn
@RequiresAuthentication
public Object searchUser(String key) {
Sql sql = Sqls.create("""
SELECT
u.id,
u.loginname,
u.username
FROM
jdh_db db
LEFT JOIN `user` u ON u.id = db.dbid
$condition
""");
Cnd cnd = Cnd.NEW();
cnd.and(new Static("db.jdhid = ( SELECT id FROM jdh_jdhxx WHERE jdhkqzt = 1 ORDER BY jdhkqsj DESC )"));
if (!ShiroUtil.hasRole("sysadmin")) {
cnd.and("u.unionid", "=", vi.getUnionId());
}
cnd.and(Cnd.exps("u.username", "like", "%" + key + "%").or("u.loginname", "like", "%" + key + "%"));
sql.setCondition(cnd);
return baseService.listPageMap(1, 20, sql);
}
}
@@ -0,0 +1,213 @@
package io.v.nutz.zhgh.suggestion.controller;
import cn.wizzer.framework.base.service.BaseService;
import cn.wizzer.framework.page.Pagination;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.utils.DateUtil;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.zhgh.suggestion.enums.suggestionState;
import io.v.nutz.zhgh.suggestion.models.Suggestion;
import io.v.nutz.web.commons.utils.ShiroUtil;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.dao.util.cri.Static;
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 java.util.Calendar;
@IocBean
@At("/platform/suggestions/apply")
@Ok("json:full")
public class SuggestionApply {
@Inject
private Vi vi;
@Inject
private Dao dao;
@Inject
private BaseService baseService;
@At("")
@RequiresPermissions("suggestions.apply")
@Ok("beetl:/platform/suggestion/process/apply.html")
public void index() {
}
@At
@ViReturn
@RequiresAuthentication
public Object doSave(Suggestion suggestion, boolean isStartJdh) {
if (Strings.isNotBlank(suggestion.getId())) {
if (Strings.isNotBlank(suggestion.getLevelTwoJdhUser())) {
if (!isStartJdh) {
suggestion.setLevelJdhUser(suggestion.getLevelTwoJdhUser());
suggestion.setLevelTwoJdhUser(null);
}
suggestion.setState(isStartJdh ? suggestionState.DELEGATETWOING.getCode() : suggestionState.FINSH.getCode());
}
dao.updateIgnoreNull(suggestion);
return null;
}
suggestion.setApplyUser((String) ShiroUtil.getPrincipalProperty("id"));
suggestion.setApplyTime(DateUtil.getDate());
suggestion.setState(suggestionState.UNSUBMIT.getCode());
dao.insert(suggestion);
return null;
}
@At
@ViReturn
@RequiresAuthentication
public Object doEdit(Suggestion suggestion) {
dao.updateIgnoreNull(suggestion);
return null;
}
@At
@ViReturn
@RequiresAuthentication
public Object pageData(PageForm pageForm, String suggestionName, String year) {
Sql sql = Sqls.create("""
SELECT
su.*,
au.username as createUserName,
au.loginname as createUserLogin,
au.unionname as createUserUnionName,
type.typeName as typeName
FROM
`suggestion` su
LEFT JOIN `user` au ON au.id = su.applyUser
LEFT JOIN proposal_type type ON type.id = su.suggestionType
$condition
""");
Cnd cnd = Cnd.NEW();
if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) {
cnd.and("su.applyUser", "=", ShiroUtil.getPrincipalProperty("id"));
}
if (Strings.isNotBlank(suggestionName)) {
cnd.and("su.suggestionName", "like", "%" + suggestionName + "%");
}
if (Strings.isNotBlank(year)) {
cnd.and("YEAR(su.applyTime)", "=", year);
}
if (Strings.isBlank(pageForm.getPageOrderName()) && Strings.isBlank(pageForm.getPageOrderBy())) {
cnd.desc("su.applyTime").asc("su.state").desc("su.proposalId");
} else {
cnd.orderBy(pageForm.getPageOrderName(), pageForm.getPageOrderBy());
}
sql.setCondition(cnd);
return baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
}
@At
@ViReturn
@RequiresAuthentication
public Object doDelete(String id) {
dao.clear(Suggestion.class, Cnd.where("id", "=", id));
return null;
}
@At
@ViReturn
@RequiresAuthentication
public Object isStartJdh() {
String unionId = vi.getUnionId();
int currentYear = Calendar.getInstance().get(Calendar.YEAR);
int count = dao.count("jdh_jdhxx2", Cnd.where("jdhkqzt", "=", 1)
.and("unionid", "=", unionId)
.and("jdhnf", "=", currentYear));
return count;
}
@At
@ViReturn
@RequiresAuthentication
public Object searchUser(String key) {
String unionId = vi.getUnionId();
int currentYear = Calendar.getInstance().get(Calendar.YEAR);
int count = dao.count("jdh_jdhxx2", Cnd.where("jdhkqzt", "=", 1)
.and("unionid", "=", unionId)
.and("jdhnf", "=", currentYear));
Sql sql = null;
Cnd cnd = Cnd.NEW();
if (count == 0) {
sql = Sqls.create("""
SELECT
u.id,u.loginname,u.username
FROM
jdh_db db
LEFT JOIN sys_user u on u.id = db.dbid
$condition
""");
cnd.and("db.dbfghid", "=", unionId);
} else {
sql = Sqls.create("""
SELECT
u.id,u.loginname,u.username
FROM
jdh_db2 db
LEFT JOIN sys_user u on u.id = db.userid
$condition
""");
cnd.and("db.unionid", "=", unionId);
}
if (!ShiroUtil.hasAnyRoles("sysadmin")) {
cnd.and(new Static("db.jdhid = ( SELECT id FROM jdh_jdhxx2 WHERE jdhkqzt = 1 AND unionid='" + vi.getUnionId() + "' ORDER BY jdhcjsj DESC LIMIT 1 ) "));
}
cnd.and(Cnd.exps("u.username", "like", "%" + key + "%").or("u.loginname", "like", "%" + key + "%"));
sql.setCondition(cnd);
return baseService.listPageMap(1, 20, sql);
}
@At
@ViReturn
@RequiresAuthentication
public Object getSuggestionInfoById(String id) {
Sql sql = Sqls.create("""
SELECT
su.*,
au.username as createUserName,
au.unionname as createUserUnionName,
tu.username as twoLevelUserName,
tu.loginname as twoLevelLoginName,
tu.unionname as twoLevelUserUnionName,
ou.username as oneLevelUserName,
ou.loginname as oneLevelLoginName,
ou.unionname as oneLevelUserUnionName,
type.typeName as typeName,
info.proposalName taxx,
tar.username tarusername
FROM
`suggestion` su
LEFT JOIN `user` au ON au.id = su.applyUser
LEFT JOIN `user` tu ON tu.id = su.levelTwoJdhUser
LEFT JOIN `user` ou ON ou.id = su.levelJdhUser
LEFT JOIN proposal_type type ON type.id = su.suggestionType
LEFT JOIN proposal_info info ON info.id=su.proposalId
LEFT JOIN `user` tar ON tar.id=info.createUser
$condition
""");
Cnd cnd = Cnd.NEW();
cnd.and("su.id", "=", id);
sql.setCondition(cnd);
Pagination pagination = baseService.listPageMap(1, 1, sql);
return pagination.getList().get(0);
}
}
@@ -0,0 +1,76 @@
package io.v.nutz.zhgh.suggestion.controller;
import cn.wizzer.framework.base.service.BaseService;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.zhgh.suggestion.enums.suggestionState;
import io.v.nutz.web.commons.utils.ShiroUtil;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
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.Strings;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
/**
* @author zhf
* @date 2021/9/10 10:03
* @description
*/
@IocBean
@At("/platform/suggestions/list")
@Ok("json:full")
public class SuggestionList {
@At("")
@RequiresPermissions("suggestions.list")
@Ok("beetl:/platform/suggestion/process/list.html")
public void index() {
}
@Inject
private BaseService baseService;
@At
@ViReturn
@RequiresAuthentication
public Object pageData(PageForm page, String suggestionType, String taName, String year) {
Sql sql = Sqls.create("""
SELECT
su.*,
u.username,
u.unitname,
u.unionname,
type.typeName AS typeName
FROM
`suggestion` su
LEFT JOIN `user` u ON u.id = su.applyUser
LEFT JOIN proposal_type type ON type.id = su.suggestionType $condition
""");
Cnd cnd = Cnd.NEW();
if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) {
cnd.and("su.levelJdhUser", "=", ShiroUtil.getPrincipalProperty("id"));
}
if (Strings.isNotBlank(taName)) {
cnd.and("su.suggestionName", "like", "%" + taName + "%");
}
if (Strings.isNotBlank(suggestionType)) {
cnd.and("type.id", "=", suggestionType);
}
if (Strings.isNotBlank(year)) {
cnd.and("YEAR(su.applyTime)", "=", year);
}
cnd.and("su.state", "=", suggestionState.FINSH.getCode());
// cnd.and(Cnd.exps("su.depResult", "=", "采纳建议").or("su.depResult", "is", null));
sql.setCondition(cnd);
return baseService.listPageMap(page.getPageNumber(), page.getPageSize(), sql);
}
}
@@ -0,0 +1,17 @@
package io.v.nutz.zhgh.suggestion.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum suggestionState {
UNSUBMIT(1,"未提交"),
DELEGATETWOING(2,"二级教代会代表采纳中"),
DEPARTMENTING(3,"本部门协商处理中"),
FINSH(4,"已转交给本单位教代会代表");
private Integer code;
private String desc;
}
@@ -0,0 +1,82 @@
package io.v.nutz.zhgh.suggestion.models;
import io.v.nutz.zhgh.suggestion.enums.suggestionState;
import lombok.Data;
import org.nutz.dao.entity.annotation.*;
import org.nutz.dao.interceptor.annotation.PrevInsert;
@Table
@Data
public class Suggestion {
@Name
@Comment("ID")
@ColDefine(type = ColType.VARCHAR, width = 32)
@PrevInsert(uu32 = true)
private String id;
@Column
@Comment("申请人")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String applyUser;
@Column
@Comment("申请时间")
@ColDefine(type = ColType.VARCHAR, width = 20)
private String applyTime;
@Column
@Comment("意见名称")
@ColDefine(type = ColType.VARCHAR, width = 50)
private String suggestionName;
@Column
@Comment("意见类型")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String suggestionType;
@Column
@Comment("意见内容")
@ColDefine(type = ColType.TEXT)
private String suggestionContent;
@Column
@Comment("二级教代会代表")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String levelTwoJdhUser;
@Column
@Comment("二级教代会代表补充内容")
@ColDefine(type = ColType.TEXT)
private String levelTwoJdhUserContent;
@Column
@Comment("本部门讨论结果(1.已被采纳 2.自行处理)")
@ColDefine(type = ColType.VARCHAR, width = 10)
private String depResult;
@Column
@Comment("自行处理情况")
@ColDefine(type = ColType.TEXT)
private String handleDescript;
@Column
@Comment("一级教代会代表")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String levelJdhUser;
/**
* @see suggestionState
*/
@Column
@Comment("状态")
@ColDefine(type = ColType.INT)
private Integer state;
@Column
@Comment("关联的提案id")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String proposalId;
}