first commit

This commit is contained in:
2026-09-23 09:38:39 +08:00
commit 98a8b8cace
6257 changed files with 1266718 additions and 0 deletions
@@ -0,0 +1,66 @@
package io.v.nutz.honor.controller;
import io.v.nutz.annontation.ViReturn;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.honor.models.Honor;
import io.v.nutz.honor.models.HonorApply;
import io.v.nutz.sys.models.Sys_menu;
import io.v.nutz.sys.models.Sys_user;
import io.v.nutz.util.ShiroUtil;
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.Strings;
import org.nutz.lang.Tasks;
import org.nutz.lang.util.NutMap;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
@IocBean
@Ok("json:full")
@At("/platform/honor/agent")
public class HonorAgentController {
@Inject
private Vi vi;
@Inject
private Dao dao;
private static final String UNIT = "/platform/honor/unit/audit";
private static final String UNION = "/platform/honor/union/audit";
private static final String PARTY = "/platform/honor/party/audit";
private static final String SCHOOL = "/platform/honor/school/audit";
@At
@ViReturn
public Object getAgenda() {
final String title = "【荣誉管理系统】";
List<NutMap> result = new ArrayList<>();
result.add(new NutMap().setv("title", title).setv("url", UNIT).setv("iconClass", vi.getIconByPath(UNIT)).setv("label", "待单位审核").setv("number", getCount(1500)));
result.add(new NutMap().setv("title", title).setv("url", UNION).setv("iconClass", vi.getIconByPath(UNION)).setv("label", "待部门工会审核").setv("number", getCount(1600)));
result.add(new NutMap().setv("title", title).setv("url", PARTY).setv("iconClass", vi.getIconByPath(PARTY)).setv("label", "待院级党组织审核").setv("number", getCount(1700)));
result.add(new NutMap().setv("title", title).setv("url", SCHOOL).setv("iconClass", vi.getIconByPath(SCHOOL)).setv("label", "待校工会审核").setv("number", getCount(1800)));
Sys_user user = (Sys_user) ShiroUtil.getPrincipal();
List<Sys_menu> menus = Optional.ofNullable(user).orElse(new Sys_user()).getMenus();
return result.stream().filter(v -> Strings.isNotBlank(v.getString("url")) && menus.stream().anyMatch(x -> Strings.isNotBlank(x.getHref()) && v.getString("url").contains(x.getHref()))).distinct().collect(Collectors.toList());
}
private Integer getCount(Integer stateCode) {
return dao.count(HonorApply.class, Cnd.where("stateId", "=", stateCode));
}
}
@@ -0,0 +1,139 @@
package io.v.nutz.honor.controller;
import io.v.nutz.annontation.ViReturn;
import io.v.nutz.base.utils.DateUtil;
import io.v.nutz.dao.CndPlus;
import io.v.nutz.honor.models.HonorApply;
import io.v.nutz.modules.models.Audit;
import io.v.nutz.modules.models.PageForm;
import io.v.nutz.service.ViService;
import io.v.nutz.util.ShiroUtil;
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.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;
/**
* @author zhf
* @date 2021/11/18 11:36
* @description
*/
@At("/platform/honor/apply")
@IocBean
@Ok("json:full")
public class HonorApplyController {
@Inject("HonorApply")
private ViService<HonorApply> honorApplyViService;
@Inject
private Dao dao;
@At("")
@RequiresPermissions("honor.apply")
@Ok("beetl:/platform/honor/apply.html")
public void index() {
}
@At
@ViReturn
public Object doSubmit(HonorApply honorApply) {
if (Strings.isNotBlank(honorApply.getId())) {
honorApplyViService.updateIgnoreNull(honorApply);
} else {
honorApply.setApplyTime(DateUtil.getDate());
honorApply.setStateId(honorApply.getHonorType().equals("101") ? 1500 : 1600);
honorApplyViService.insert(honorApply);
}
return null;
}
@At
@ViReturn
public Object pageData(PageForm pageForm, String honorLevel, String honorType,Integer year) {
CndPlus cnd = CndPlus.create();
Sql sql = Sqls.create("""
SELECT
us.loginname,
ha.*,
prize.`name` AS prizeName,
type.`name` AS typeName,
`level`.`name` AS levelName ,
state.stateName,
state.stateColor
FROM
`honor_apply` ha
LEFT JOIN `user` us ON us.id = ha.userId
LEFT JOIN honor_basic_settings prize ON prize.id = ha.prize
LEFT JOIN honor_basic_settings type ON type.id = ha.honorType
LEFT JOIN honor_basic_settings `level` ON `level`.id = ha.honorLevel
LEFT JOIN audit_state state ON state.stateId=ha.stateId
$condition
""");
cnd.and("ha.userId", "=", ShiroUtil.getUserId());
cnd.andExcludeEmpty("ha.honorLevel", "=", honorLevel);
cnd.andExcludeEmpty("YEAR(ha.applyTime)", "=", year);
cnd.and("ha.honorType", "=", honorType);
cnd.desc("ha.applyTime");
sql.setCondition(cnd);
return honorApplyViService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
}
@At
@ViReturn
public Object doDelete(String id) {
return honorApplyViService.delete(id);
}
@At
@ViReturn
public Object findOne(String id) {
Sql sql = Sqls.create("""
SELECT
us.username,
us.loginname,
ha.*,
prize.`name` AS prizeName,
type.`name` AS typeName,
`level`.`name` AS levelName ,
state.stateName,
state.stateColor
FROM
`honor_apply` ha
LEFT JOIN `user` us ON us.id = ha.userId
LEFT JOIN honor_basic_settings prize ON prize.id = ha.prize
LEFT JOIN honor_basic_settings type ON type.id = ha.honorType
LEFT JOIN honor_basic_settings `level` ON `level`.id = ha.honorLevel
LEFT JOIN audit_state state ON state.stateId=ha.stateId
where ha.id=@id
""").setParam("id", id);
NutMap map = honorApplyViService.fetch(sql);
if (Strings.isNotBlank(map.getString("unitAuditId"))) {
map.setv("unitAudit", dao.fetch(Audit.class, Cnd.where("id", "=", map.getString("unitAuditId"))));
}
if (Strings.isNotBlank(map.getString("unionAuditId"))) {
map.setv("unionAudit", dao.fetch(Audit.class, Cnd.where("id", "=", map.getString("unionAuditId"))));
}
if (Strings.isNotBlank(map.getString("partyAuditId"))) {
map.setv("partyAudit", dao.fetch(Audit.class, Cnd.where("id", "=", map.getString("partyAuditId"))));
}
if (Strings.isNotBlank(map.getString("schoolAuditId"))) {
map.setv("schoolAudit", dao.fetch(Audit.class, Cnd.where("id", "=", map.getString("schoolAuditId"))));
}
return map;
}
}
@@ -0,0 +1,138 @@
package io.v.nutz.honor.controller;
import cn.hutool.core.util.StrUtil;
import cn.wizzer.framework.base.Result;
import io.v.nutz.annontation.ViReturn;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.evaluate.models.EvaluateApply;
import io.v.nutz.honor.models.HonorApply;
import io.v.nutz.honor.models.HonorBasicSettings;
import io.v.nutz.service.ViService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.dao.Chain;
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.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.trans.Trans;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@At("/platform/honor/basic/settings")
@IocBean
@Ok("json:full")
public class HonorBasicSettingsController {
@Inject("HonorBasicSettings")
private ViService<HonorBasicSettings> honorBasicSettingsViService;
@Inject
private Dao dao;
@At("")
@RequiresPermissions("honor.basic.setting")
@Ok("beetl:/platform/honor/basic/settings.html")
public void index() {
}
@At
@ViReturn
public Object getTree() {
ArrayList<HonorBasicSettings> list = new ArrayList<>();
HonorBasicSettings parent = honorBasicSettingsViService.fetch(Cnd.where("parentId", "is", null));
if (parent != null) {
parent.setChild(child(parent.getId()));
list.add(parent);
return list;
}
return null;
}
private List<HonorBasicSettings> child(String parentId) {
List<HonorBasicSettings> basicSettings = honorBasicSettingsViService.query(Cnd.where("parentId", "=", parentId).asc("code"));
basicSettings.forEach(setting -> {
setting.setChild(child(setting.getId()));
});
return basicSettings;
}
@At
@ViReturn
public Object doSubmit(HonorBasicSettings honorBasicSettings) {
Result result = Result.NEW();
Trans.exec(() -> {
if (StrUtil.isBlank(honorBasicSettings.getId())) {
int count = honorBasicSettingsViService.count(Cnd.where("name", "=", honorBasicSettings.getName()));
if (count > 0) {
result.addCode(1).addMsg("名称已存在,请勿重复添加。");
} else {
honorBasicSettingsViService.insert(honorBasicSettings);
result.addCode(0);
}
} else {
honorBasicSettingsViService.updateIgnoreNull(honorBasicSettings);
}
honorBasicSettingsViService.update(Chain.make("hasChildren", true), Cnd.where("id", "=", honorBasicSettings.getParentId()));
});
return result;
}
@At
@ViReturn
public Object getData(String parentId) {
return honorBasicSettingsViService.query(Cnd.where("parentId", "=", parentId).asc("code"));
}
@At
@ViReturn
public Object getHonorNum(String stateId) {
int gr = dao.count(HonorApply.class, Cnd.where("stateId", "=", stateId).and("honorType", "=", "8a8b455b964a41f2bbf18a4896cbd83e"));
int jt = dao.count(HonorApply.class, Cnd.where("stateId", "=", stateId).and("honorType", "=", "6b9e26a9467f49ae88fbd3951377e0f8"));
return Map.of("gr", gr, "jt", jt);
}
@At
@ViReturn
public Object getEvaluateNum(String stateId) {
Cnd cndGr = Cnd.NEW();
cndGr.and("stateId", "=", stateId).and("honorTypeId", "=", "8a8b455b964a41f2bbf18a4896cbd83e");
Cnd cndJt = Cnd.NEW();
cndJt.and("stateId", "=", stateId).and("honorTypeId", "=", "6b9e26a9467f49ae88fbd3951377e0f8");
if("1600".equals(stateId)) {
cndGr.and("unionId", "=", Vi.getUnion().getId());
cndJt.and("unionId", "=", Vi.getUnion().getId());
}
if("1700".equals(stateId)) {
cndGr.and("unitId", "=", Vi.getUnit().getId());
cndJt.and("unitId", "=", Vi.getUnit().getId());
}
int gr = dao.count(EvaluateApply.class, cndGr);
int jt = dao.count(EvaluateApply.class, cndJt);
return Map.of("gr", gr, "jt", jt);
}
@At
@ViReturn
public Object doDelete(String id) {
List<String> allChildIds = getAllChildIds(id, new ArrayList<>());
allChildIds.add(id);
honorBasicSettingsViService.clear(Cnd.where("id", "in", allChildIds));
return null;
}
private List<String> getAllChildIds(String parentId, List<String> ids) {
List<String> idList = ids;
List<HonorBasicSettings> basicSettings = honorBasicSettingsViService.query(Cnd.where("parentId", "=", parentId));
basicSettings.forEach(v -> {
idList.add(v.getId());
getAllChildIds(v.getId(), ids);
});
return idList;
}
}
@@ -0,0 +1,220 @@
package io.v.nutz.honor.controller;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import io.v.nutz.annontation.ViReturn;
import io.v.nutz.base.result.Result;
import io.v.nutz.honor.models.Honor;
import io.v.nutz.honor.models.HonorBasicSettings;
import io.v.nutz.service.ViService;
import io.v.nutz.sys.models.Sys_unit;
import io.v.nutz.sys.services.SysUnitService;
import io.v.nutz.sys.services.SysUserService;
import org.apache.commons.io.IOUtils;
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.json.Json;
import org.nutz.lang.util.NutMap;
import org.nutz.mvc.annotation.AdaptBy;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.POST;
import org.nutz.mvc.upload.TempFile;
import org.nutz.mvc.upload.UploadAdaptor;
import org.nutz.trans.Trans;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
/**
* @author zhf
* @date 2021/8/16 17:01
* @description
*/
@IocBean
@At("/platform/honor/batchHonor")
@Ok("json:full")
public class HonorBatchController {
@Inject("HonorBasicSettings")
private ViService<HonorBasicSettings> honorBasicSettingsViService;
@Inject
private SysUnitService sysUnitService;
@Inject
private SysUserService sysUserService;
@At("")
@RequiresPermissions("honor.batchHonor")
@Ok("beetl:/platform/honor/batchHonor.html")
public void index() {
}
private static final String HonorLevelId = "3c1058afc91b4e69be46c585b1a48191";
private static final String HONORSINGLEID = "8a8b455b964a41f2bbf18a4896cbd83e";
private static final String HONORLISTID = "6b9e26a9467f49ae88fbd3951377e0f8";
private static final String HONORAWARDID = "afd9dc97cd7e46c3b9cee5893386d202";
@At
@POST
@AdaptBy(type = UploadAdaptor.class, args = {"ioc:fileUpload"})
public Object readExcel(TempFile file) {
String extName = FileUtil.extName(file.getFile());
if (!extName.equals("xlsx") && !extName.equals("xls")) {
return Result.error("请上传xlsx或xls");
}
List<Honor> list = ExcelImportUtil.importExcel(
file.getFile(),
Honor.class, new ImportParams());
return Result.success().addData(list);
}
@At
@ViReturn
public Object doRead(String data, String lx) {
Sql sql = Sqls.create("""
SELECT
u.id,
u.username,
dw.unionid
FROM
sys_user u
LEFT JOIN sys_unit dw ON dw.id = u.unitid
LEFT JOIN sys_union gh ON gh.id = dw.unionid
""");
List<NutMap> userList = sysUserService.listMap(sql);
// List<Sys_user> userList = sysUserService.listEntity(sql);
List<Sys_unit> unitList = sysUnitService.query(Cnd.where("unitLevel", "=", 2));
List<Honor> honorList = Json.fromJsonAsList(Honor.class, data);
Trans.exec(() -> {
honorList.forEach(v -> {
if (lx.equals("1")) {
v.setHonorType(getBasicIdByName("个人荣誉"));
//设置部门工会 单位
Optional<NutMap> user = userList.stream().filter(u -> u.getString("username").equals(v.getUserName())).findFirst();
user.ifPresent(sys_user -> v.setUnionId(sys_user.getString("unionid")));
user.ifPresent(sys_user -> v.setUnitId(sys_user.getString("unitid")));
user.ifPresent(sys_user -> v.setUserId(sys_user.getString("id")));
} else {
v.setHonorType(getBasicIdByName("集体荣誉"));
//设置部门工会
Optional<Sys_unit> unit = unitList.stream().filter(u -> u.getName().equals(v.getUnitName())).findFirst();
unit.ifPresent(sys_unit -> v.setUnionId(sys_unit.getUnionid()));
}
//荣誉等级
String levelId = getBasicIdByName(v.getHonorLevel());
if (StrUtil.isNotBlank(v.getHonorLevel())) {
if (StrUtil.isBlank(levelId)) {
HonorBasicSettings hbs = new HonorBasicSettings();
hbs.setName(v.getHonorLevel());
hbs.setParentId(HonorLevelId);
v.setHonorLevel(insertBasic(hbs));
} else {
v.setHonorLevel(levelId);
}
}
//奖项
String prizeId = getBasicIdByName(v.getPrize());
if (StrUtil.isNotBlank(v.getPrize())) {
if (StrUtil.isBlank(prizeId)) {
HonorBasicSettings hbs = new HonorBasicSettings();
hbs.setName(v.getPrize());
hbs.setParentId(lx.equals("1") ? HONORSINGLEID : HONORLISTID);
v.setPrize(insertBasic(hbs));
} else {
v.setPrize(prizeId);
}
}
//获奖材料
List<String> awardMaterialsInsert = new ArrayList<>();
String awardMaterialsExcel = v.getAwardMaterialsExcel();
if (StrUtil.isNotBlank(awardMaterialsExcel)) {
String[] awardMaterialsExcelArray = awardMaterialsExcel.split("、");
for (String s : awardMaterialsExcelArray) {
awardMaterialsInsert.add(getBasicIdByName(s));
}
v.setAwardMaterials(awardMaterialsInsert);
}
honorBasicSettingsViService.insert(v);
});
});
return null;
}
@At
public void doTemplate(HttpServletResponse response, String lx) throws IOException {
String fileName = "";
String filePath = "";
if (lx.equals("1")) {
fileName = "个人荣誉模板.xlsx";
filePath = "honor/personal_honor.xlsx";
} else {
fileName = "集体荣誉模板.xlsx";
filePath = "honor/collective_honor.xlsx";
}
try {
response.setHeader("Content-Disposition", "attachment;filename="
.concat(String.valueOf(URLEncoder.encode(fileName, "UTF-8"))));
if (filePath.startsWith("/")) {
filePath = filePath.substring(1);
}
InputStream fin = Thread.currentThread().getContextClassLoader().getResourceAsStream("templates/" + filePath);
IOUtils.copy(fin, response.getOutputStream());
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 插入新的基础数据
*
* @param honorBasicSettings
* @return
*/
private String insertBasic(HonorBasicSettings honorBasicSettings) {
return honorBasicSettingsViService.insert(honorBasicSettings).getId();
}
/**
* 从基础数据中根据名字找id
*
* @param name
* @return
*/
private String getBasicIdByName(String name) {
List<HonorBasicSettings> query = honorBasicSettingsViService.query();
Optional<HonorBasicSettings> hbs = query.stream().filter(x -> x.getName().equals(name)).findFirst();
if (hbs.isEmpty()) {
return null;
}
return hbs.get().getId();
}
}
@@ -0,0 +1,97 @@
package io.v.nutz.honor.controller;
import io.v.nutz.annontation.ViReturn;
import io.v.nutz.honor.models.Honor;
import io.v.nutz.service.ViService;
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 java.util.Calendar;
@IocBean
@At("/platform/honor/board")
@Ok("json:full")
public class HonorBoardController {
@Inject("Honor")
private ViService<Honor> honorViService;
@At("")
@RequiresPermissions("honor.board")
@Ok("beetl:/platform/honor/board.html")
public void index() {
}
@At
@ViReturn
public Object getHonorTypeByYear() {
Sql sql = Sqls.create("""
SELECT YEAR
( h.grantDate ) as year,
hbs.`name`,
count( 1 ) as num
FROM
honor h
left join honor_basic_settings hbs on hbs.id = h.honorType
WHERE YEAR (h.grantDate) <= @currentYear
GROUP BY
YEAR (h.grantDate)
ORDER BY
h.grantDate
""");
sql.setParam("currentYear", Calendar.getInstance().get(Calendar.YEAR));
return honorViService.list(sql);
}
@At
@ViReturn
public Object getSingleHonorByYear() {
Sql sql = Sqls.create("""
SELECT
hbs.`name`,
count( 1 ) AS num,
YEAR ( h.grantDate ) as year
FROM
honor h
LEFT JOIN honor_basic_settings hbs ON hbs.id = h.prize
WHERE
h.honorType = '8a8b455b964a41f2bbf18a4896cbd83e'
AND YEAR (h.grantDate) <= @currentYear
GROUP BY
h.prize
""");
sql.setParam("currentYear", Calendar.getInstance().get(Calendar.YEAR));
return honorViService.list(sql);
}
@At
@ViReturn
public Object getSingleLevelByYear() {
Sql sql = Sqls.create("""
SELECT
hbs.`name`,
count( 1 ) AS num,
YEAR ( h.grantDate ) AS YEAR
FROM
honor h
LEFT JOIN honor_basic_settings hbs ON hbs.id = h.honorLevel
WHERE
h.honorLevel IS NOT NULL
AND h.honorType = '8a8b455b964a41f2bbf18a4896cbd83e'
AND YEAR ( h.grantDate ) <= @currentYear
GROUP BY
h.honorLevel
""");
sql.setParam("currentYear", Calendar.getInstance().get(Calendar.YEAR));
return honorViService.list(sql);
}
}
@@ -0,0 +1,191 @@
package io.v.nutz.honor.controller;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import cn.hutool.core.util.StrUtil;
import cn.hutool.db.Page;
import cn.wizzer.framework.page.Pagination;
import io.v.nutz.annontation.ViReturn;
import io.v.nutz.dao.CndPlus;
import io.v.nutz.honor.models.Honor;
import io.v.nutz.honor.models.HonorBasicSettings;
import io.v.nutz.lang.Carry;
import io.v.nutz.service.ViService;
import org.apache.poi.ss.usermodel.Workbook;
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.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.json.Json;
import org.nutz.lang.Strings;
import org.nutz.lang.util.NutMap;
import org.nutz.mvc.Mvcs;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
@IocBean
@At("/platform/honor/manage")
@Ok("json:full")
public class HonorManageController {
@Inject("Honor")
private ViService<Honor> honorViService;
@Inject("HonorBasicSettings")
private ViService<HonorBasicSettings> honorBasicSettingsViService;
@At("")
@RequiresPermissions("honor.manage")
@Ok("beetl:/platform/honor/manage.html")
public void index() {
}
@At
@ViReturn
public Object pageData(Page page, Integer year, String honorType, String prize, String honorLevel, String userName, String unitName,
String pageOrderName, String pageOrderBy) {
Sql sql = Sqls.create("""
SELECT
h.*,
prize.`name` AS prizeName,
type.`name` AS typeName,
`level`.`name` AS levelName,
award.`name` AS awardName
FROM
`honor` h
LEFT JOIN honor_basic_settings prize ON prize.id = h.prize
LEFT JOIN honor_basic_settings type ON type.id = h.honorType
LEFT JOIN honor_basic_settings `level` ON `level`.id = h.honorLevel
LEFT JOIN honor_basic_settings `award` ON `award`.id = h.awardType
$condition
""");
CndPlus cnd = CndPlus.create();
cnd.andExcludeEmpty("YEAR(h.grantDate)", "=", year);
cnd.andExcludeEmpty("h.honorType", "=", honorType);
cnd.andExcludeEmpty("h.prize", "=", prize);
cnd.andExcludeEmpty("h.honorLevel", "=", honorLevel);
if (Strings.isNotBlank(userName)) {
cnd.andExcludeEmpty("h.userName", "like", "%" + userName + "%");
}
if (Strings.isNotBlank(unitName)) {
cnd.andExcludeEmpty("h.unitName", "like", "%" + unitName + "%");
}
if (StrUtil.isNotBlank(pageOrderName) && StrUtil.isNotBlank(pageOrderBy)) {
cnd.orderBy(pageOrderName, pageOrderBy);
}
sql.setCondition(cnd);
Pagination pagination = honorViService.listPageMap(page.getPageNumber(), page.getPageSize(), sql);
List<NutMap> list = pagination.getList();
list.forEach(v -> {
Carry.IF(StrUtil.isNotBlank(v.getString("awardMaterials"))).then(() -> {
v.setv("awardMaterialsExcel", getBasicNameById(v.getString("awardMaterials")).toString());
});
});
return pagination;
}
private static List<String> getBasicNameById(String awardMaterials) {
List<String> awardMaterialList = Json.fromJsonAsList(String.class, awardMaterials);
Dao dao = Mvcs.getIoc().get(Dao.class);
List<HonorBasicSettings> list = dao.query(HonorBasicSettings.class, Cnd.where("id", "in", awardMaterialList));
List<String> collect = list.stream().map(HonorBasicSettings::getName).collect(Collectors.toList());
return collect;
}
@At
@ViReturn
public Object doDelete(String id) {
honorViService.delete(id);
return null;
}
@At
public void doExport(HttpServletResponse response, String year, String honorType, String prize, String honorLevel, String userName, String unitName) throws IOException {
Map<String, Object> map = new HashMap<String, Object>();
Sql sql = Sqls.create("""
SELECT
h.*,
prize.`name` AS prizeName,
type.`name` AS typeName,
`level`.`name` AS levelName,
award.`name` AS awardName
FROM
`honor` h
LEFT JOIN honor_basic_settings prize ON prize.id = h.prize
LEFT JOIN honor_basic_settings type ON type.id = h.honorType
LEFT JOIN honor_basic_settings `level` ON `level`.id = h.honorLevel
LEFT JOIN honor_basic_settings `award` ON `award`.id = h.awardType
$condition
""");
CndPlus cnd = CndPlus.create();
cnd.andExcludeEmpty("YEAR(h.grantDate)", "=", year);
cnd.andExcludeEmpty("h.honorType", "=", honorType);
cnd.andExcludeEmpty("h.prize", "=", prize);
cnd.andExcludeEmpty("h.honorLevel", "=", honorLevel);
if (Strings.isNotBlank(userName)) {
cnd.andExcludeEmpty("h.userName", "like", "%" + userName + "%");
}
if (Strings.isNotBlank(unitName)) {
cnd.andExcludeEmpty("h.unitName", "like", "%" + unitName + "%");
}
sql.setCondition(cnd);
List<Honor> honors = honorViService.listEntity(sql, Honor.class);
List<HonorBasicSettings> query = honorBasicSettingsViService.query();
Optional<HonorBasicSettings> singleHonor = query.stream().filter(x -> x.getId().equals(honorType)).findFirst();
String filename = "";
TemplateExportParams params;
if (singleHonor.get().getName().equals("个人荣誉")) {
filename = "个人荣誉";
params = new TemplateExportParams(
"templates/honor/personal_export.xlsx");
} else {
filename = "集体荣誉";
params = new TemplateExportParams(
"templates/honor/collective_export.xlsx");
}
honors.forEach(v -> {
if (v.getHonorLevel() != null) {
Optional<HonorBasicSettings> Level = query.stream().filter(x -> x.getId().equals(v.getHonorLevel())).findFirst();
v.setHonorLevel(Level.get().getName());
}
if (v.getAwardType() != null) {
Optional<HonorBasicSettings> Type = query.stream().filter(x -> x.getId().equals(v.getAwardType())).findFirst();
v.setAwardType(Type.get().getName());
}
if (v.getPrize() != null) {
Optional<HonorBasicSettings> prize1 = query.stream().filter(x -> x.getId().equals(v.getPrize())).findFirst();
v.setPrize(prize1.get().getName());
}
v.setHonorType(singleHonor.get().getName());
});
map.put("maplist", honors);
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=" + new String((filename + "名单.xls").getBytes("utf-8"), "ISO8859-1"));
Workbook workbook = ExcelExportUtil.exportExcel(params, map);
workbook.write(response.getOutputStream());
}
}
@@ -0,0 +1,50 @@
package io.v.nutz.honor.controller;
import cn.hutool.core.util.StrUtil;
import io.v.nutz.annontation.ViReturn;
import io.v.nutz.base.result.Result;
import io.v.nutz.honor.models.Honor;
import io.v.nutz.service.ViService;
import io.v.nutz.sys.services.SysUserService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
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;
@IocBean
@At("/platform/honor/registration")
@Ok("json:full")
public class HonorRegistrationController {
@Inject("Honor")
private ViService<Honor> honorViService;
@Inject
private SysUserService sysUserService;
@At("")
@RequiresPermissions("honor.registration")
@Ok("beetl:/platform/honor/registration.html")
public void index() {
}
@At
@ViReturn
public Object doSubmit(Honor honor) {
if (!StrUtil.isBlank(honor.getUserName())) {
String username = sysUserService.fetch(honor.getUserId()).getUsername();
honor.setUserName(username);
}
honorViService.insertOrUpdate(honor);
return null;
}
@At
@ViReturn
public Object findData(String id) {
Honor fetch = honorViService.fetch(id);
return Result.success().addData(fetch);
}
}
@@ -0,0 +1,94 @@
package io.v.nutz.honor.controller;
import io.v.nutz.annontation.ViReturn;
import io.v.nutz.dao.CndPlus;
import io.v.nutz.honor.models.HonorBasicSettings;
import io.v.nutz.service.ViService;
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;
/**
* @author zhf
* @date 2021/8/18 10:16
* @description
*/
@IocBean
@At("/platform/honor/Summary")
@Ok("json:full")
public class HonorSummaryController {
@Inject("HonorBasicSettings")
private ViService<HonorBasicSettings> honorBasicSettingsViService;
@At("/union")
@RequiresPermissions("honor.union.Summary")
@Ok("beetl:/platform/honor/unionSummary.html")
public void index() {
}
@At("/honorLevel")
@RequiresPermissions("honor.honorLevel.Summary")
@Ok("beetl:/platform/honor/honorLevelSummary.html")
public void honorLevel() {
}
private static final String personalHonor = "8a8b455b964a41f2bbf18a4896cbd83e";
private static final String 集体荣誉 = "6b9e26a9467f49ae88fbd3951377e0f8";
private static final String nationalLevel = "21a118f4c771400aa8b911a0cd203289";
private static final String provincial = "e13ce814a6db48ad8b8491985c1da964";
private static final String schoolLevel = "65772a664e034121bb245eeff66ea1b5";
@At
@ViReturn
public Object unionData(String unionId, Integer year) {
CndPlus cnd = CndPlus.create();
Sql sql = Sqls.create("""
SELECT
id,
unionname,
( SELECT COUNT( 1 ) FROM honor h WHERE h.honorType = @personalHonor AND h.unionId = un.id $cnd) personalHonorNum,
( SELECT COUNT( 1 ) FROM honor h WHERE h.honorType = @collectiveHonor AND h.unionId = un.id $cnd) collectiveHonorNum\s
FROM
sys_union un $condition
""").setParam("personalHonor", personalHonor).setParam("collectiveHonor", 集体荣誉);
cnd.andExcludeEmpty("id", "=", unionId);
if (year != null) {
sql.setVar("cnd", "and YEAR(grantDate)=" + year);
}
cnd.desc("unionname");
sql.setCondition(cnd);
return honorBasicSettingsViService.listMap(sql);
}
@At
@ViReturn
public Object honorLevelData(String unionId, Integer year) {
CndPlus cnd = CndPlus.create();
Sql sql = Sqls.create("""
SELECT
id,
unionname,
( SELECT COUNT( 1 ) FROM honor h WHERE h.honorLevel = @nationalLevel AND h.unionId = un.id $cnd) nationalLevelNum,
( SELECT COUNT( 1 ) FROM honor h WHERE h.honorLevel = @provincial AND h.unionId = un.id $cnd) provincialNum ,
( SELECT COUNT( 1 ) FROM honor h WHERE h.honorLevel = @schoolLevel AND h.unionId = un.id $cnd) schoolLevelNum
FROM
sys_union un $condition
""").setParam("nationalLevel", nationalLevel).setParam("provincial", provincial).setParam("schoolLevel", schoolLevel);
cnd.andExcludeEmpty("id", "=", unionId);
if (year != null) {
sql.setVar("cnd", "and YEAR(grantDate)=" + year);
}
cnd.desc("unionname");
sql.setCondition(cnd);
return honorBasicSettingsViService.listMap(sql);
}
}
@@ -0,0 +1,97 @@
package io.v.nutz.honor.controller.audit;
import io.v.nutz.annontation.ViReturn;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.dao.CndPlus;
import io.v.nutz.honor.models.HonorApply;
import io.v.nutz.modules.models.Audit;
import io.v.nutz.modules.models.PageForm;
import io.v.nutz.service.ViService;
import io.v.nutz.util.ShiroUtil;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.dao.Chain;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
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;
/**
* @author zhf
* @date 2021/11/19 15:14
* @description
*/
@At("/platform/honor/party/audit")
@IocBean
@Ok("json:full")
public class HonorPartyAuditController {
@Inject("HonorApply")
private ViService<HonorApply> honorApplyViService;
@Inject
private Dao dao;
@At("")
@RequiresPermissions("honor.audit.party")
@Ok("beetl:/platform/honor/audit/party.html")
public void index() {
}
@At
@ViReturn
public Object pageData(PageForm pageForm, String honorLevel, String honorType, Integer year, String isAudit, String unitId, String unionId) {
CndPlus cnd = CndPlus.create();
Sql sql = Sqls.create("""
SELECT
us.loginname,
ha.*,
prize.`name` AS prizeName,
type.`name` AS typeName,
`level`.`name` AS levelName ,
state.stateName,
state.stateColor
FROM
`honor_apply` ha
LEFT JOIN `user` us ON us.id = ha.userId
LEFT JOIN honor_basic_settings prize ON prize.id = ha.prize
LEFT JOIN honor_basic_settings type ON type.id = ha.honorType
LEFT JOIN honor_basic_settings `level` ON `level`.id = ha.honorLevel
LEFT JOIN audit_state state ON state.stateId=ha.stateId
$condition
""");
cnd.andExcludeEmpty("us.unionid", "=", unionId);
cnd.andExcludeEmpty("us.unitid", "=", unitId);
cnd.andExcludeEmpty("ha.honorLevel", "=", honorLevel);
cnd.andExcludeEmpty("YEAR(ha.applyTime)", "=", year);
cnd.and("ha.honorType", "=", honorType);
cnd.and("ha.stateId", isAudit.equals("true") ? ">" : isAudit.equals("false") ? "=" : ">=", 1700);
if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) {
cnd.and("us.unionid", "=", Vi.getUnionId());
}
if (Vi.isNotBlank(pageForm.getSearchName(), pageForm.getSearchKeyword())) {
cnd.where().andLike(pageForm.getSearchName(), pageForm.getSearchKeyword());
}
cnd.desc("ha.applyTime");
sql.setCondition(cnd);
return honorApplyViService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
}
@At
@ViReturn
public Object doReview(String id, boolean pass, Audit audit) {
audit.setAuditor(ShiroUtil.getPrincipalProperty("id").toString());
audit.setLoginname(ShiroUtil.getPrincipalProperty("loginname").toString());
audit.setAuditPass(pass);
audit = dao.insert(audit);
honorApplyViService.update(Chain.make("stateId", pass ? 1800 : 1750).add("partyAuditId", audit.getId()), Cnd.where("id", "=", id));
return null;
}
}
@@ -0,0 +1,130 @@
package io.v.nutz.honor.controller.audit;
import io.v.nutz.annontation.ViReturn;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.dao.CndPlus;
import io.v.nutz.honor.models.Honor;
import io.v.nutz.honor.models.HonorApply;
import io.v.nutz.modules.models.Audit;
import io.v.nutz.modules.models.PageForm;
import io.v.nutz.service.ViService;
import io.v.nutz.sys.models.Sys_unit;
import io.v.nutz.util.ShiroUtil;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.dao.Chain;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
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;
/**
* @author zhf
* @date 2021/11/19 15:30
* @description
*/
@At("/platform/honor/school/audit")
@IocBean
@Ok("json:full")
public class HonorSchoolAuditController {
@Inject("HonorApply")
private ViService<HonorApply> honorApplyViService;
@Inject("Honor")
private ViService<Honor> honorViService;
@Inject
private Dao dao;
@At("")
@RequiresPermissions("honor.audit.school")
@Ok("beetl:/platform/honor/audit/school.html")
public void index() {
}
@At
@ViReturn
public Object pageData(PageForm pageForm, String honorLevel, String honorType, Integer year, String isAudit, String unitId, String unionId) {
CndPlus cnd = CndPlus.create();
Sql sql = Sqls.create("""
SELECT
us.loginname,
ha.*,
prize.`name` AS prizeName,
type.`name` AS typeName,
`level`.`name` AS levelName ,
state.stateName,
state.stateColor
FROM
`honor_apply` ha
LEFT JOIN `user` us ON us.id = ha.userId
LEFT JOIN honor_basic_settings prize ON prize.id = ha.prize
LEFT JOIN honor_basic_settings type ON type.id = ha.honorType
LEFT JOIN honor_basic_settings `level` ON `level`.id = ha.honorLevel
LEFT JOIN audit_state state ON state.stateId=ha.stateId
$condition
""");
cnd.andExcludeEmpty("us.unionid", "=", unionId);
cnd.andExcludeEmpty("us.unitid", "=", unitId);
cnd.andExcludeEmpty("ha.honorLevel", "=", honorLevel);
cnd.andExcludeEmpty("YEAR(ha.applyTime)", "=", year);
cnd.and("ha.honorType", "=", honorType);
cnd.and("ha.stateId", isAudit.equals("true") ? ">" : isAudit.equals("false") ? "=" : ">=", 1800);
if (Vi.isNotBlank(pageForm.getSearchName(), pageForm.getSearchKeyword())) {
cnd.where().andLike(pageForm.getSearchName(), pageForm.getSearchKeyword());
}
cnd.desc("ha.applyTime");
sql.setCondition(cnd);
return honorApplyViService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
}
@At
@ViReturn
public Object doReview(String id, boolean pass, Audit audit) {
audit.setAuditor(ShiroUtil.getPrincipalProperty("id").toString());
audit.setLoginname(ShiroUtil.getPrincipalProperty("loginname").toString());
audit.setAuditPass(pass);
audit = dao.insert(audit);
honorApplyViService.update(Chain.make("stateId", pass ? 1900 : 1850).add("schoolAuditId", audit.getId()), Cnd.where("id", "=", id));
if (pass) {
HonorApply honorApply = honorApplyViService.fetch(id);
Honor honor = new Honor();
honor.setUserId(honorApply.getUserId());
honor.setUserName(honorApply.getUserName());
honor.setUserSex(honorApply.getUserSex());
honor.setPost(honorApply.getPost());
honor.setTitle(honorApply.getTitle());
honor.setBirthday(honorApply.getBirthday());
honor.setJobStatus(honorApply.getJobStatus());
honor.setUnionName(honorApply.getUnionName());
honor.setUnitName(honorApply.getUnitName());
honor.setUnitLeader(honorApply.getUnitLeader());
honor.setUnitPeopleNum(honorApply.getUnitPeopleNum());
honor.setUnitFemalePeopleNum(honorApply.getUnitFemalePeopleNum());
honor.setPrize(honorApply.getPrize());
honor.setPrizeDesc(honorApply.getPrizeDesc());
honor.setHonorType(honorApply.getHonorType());
honor.setHonorLevel(honorApply.getHonorLevel());
honor.setFiles(honorApply.getFiles());
Sys_unit unit = honorViService.dao().fetch(Sys_unit.class, Cnd.where("name", "=", honorApply.getUnitName()));
honor.setUnionId(unit.getUnionid());
honor.setUnionId(unit.getId());
honorViService.insert(honor);
}
return null;
}
}
@@ -0,0 +1,99 @@
package io.v.nutz.honor.controller.audit;
import io.v.nutz.annontation.ViReturn;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.dao.CndPlus;
import io.v.nutz.honor.models.HonorApply;
import io.v.nutz.modules.models.Audit;
import io.v.nutz.modules.models.PageForm;
import io.v.nutz.service.ViService;
import io.v.nutz.util.ShiroUtil;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.dao.Chain;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
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;
/**
* @author zhf
* @date 2021/11/19 14:36
* @description
*/
@At("/platform/honor/union/audit")
@IocBean
@Ok("json:full")
public class HonorUnionAuditController {
@Inject("HonorApply")
private ViService<HonorApply> honorApplyViService;
@Inject
private Dao dao;
@At("")
@RequiresPermissions("honor.audit.union")
@Ok("beetl:/platform/honor/audit/union.html")
public void index() {
}
@At
@ViReturn
public Object pageData(PageForm pageForm, String honorLevel, String honorType, String isAudit, String unitId, String unionId, Integer year) {
CndPlus cnd = CndPlus.create();
Sql sql = Sqls.create("""
SELECT
us.loginname,
ha.*,
prize.`name` AS prizeName,
type.`name` AS typeName,
`level`.`name` AS levelName ,
state.stateName,
state.stateColor
FROM
`honor_apply` ha
LEFT JOIN `user` us ON us.id = ha.userId
LEFT JOIN honor_basic_settings prize ON prize.id = ha.prize
LEFT JOIN honor_basic_settings type ON type.id = ha.honorType
LEFT JOIN honor_basic_settings `level` ON `level`.id = ha.honorLevel
LEFT JOIN audit_state state ON state.stateId=ha.stateId
$condition
""");
cnd.andExcludeEmpty("us.unionid", "=", unionId);
cnd.andExcludeEmpty("YEAR(ha.applyTime)", "=", year);
cnd.andExcludeEmpty("us.unitid", "=", unitId);
cnd.andExcludeEmpty("ha.honorLevel", "=", honorLevel);
cnd.and("ha.honorType", "=", honorType);
cnd.and("ha.stateId", isAudit.equals("true") ? ">" : isAudit.equals("false") ? "=" : ">=", 1600);
if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) {
cnd.and("us.unionid", "=", Vi.getUnionId());
}
if (Vi.isNotBlank(pageForm.getSearchName(), pageForm.getSearchKeyword())) {
cnd.where().andLike(pageForm.getSearchName(), pageForm.getSearchKeyword());
}
cnd.desc("ha.applyTime");
sql.setCondition(cnd);
return honorApplyViService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
}
@At
@ViReturn
public Object doReview(String id, boolean pass, Audit audit) {
audit.setAuditor(ShiroUtil.getPrincipalProperty("id").toString());
audit.setLoginname(ShiroUtil.getPrincipalProperty("loginname").toString());
audit.setAuditPass(pass);
audit = dao.insert(audit);
honorApplyViService.update(Chain.make("stateId", pass ? 1700 : 1650).add("unionAuditId", audit.getId()), Cnd.where("id", "=", id));
return null;
}
}
@@ -0,0 +1,99 @@
package io.v.nutz.honor.controller.audit;
import io.v.nutz.annontation.ViReturn;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.dao.CndPlus;
import io.v.nutz.honor.models.HonorApply;
import io.v.nutz.modules.models.Audit;
import io.v.nutz.modules.models.PageForm;
import io.v.nutz.service.ViService;
import io.v.nutz.sys.models.Sys_unit;
import io.v.nutz.util.ShiroUtil;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.dao.Chain;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
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;
/**
* @author zhf
* @date 2021/11/19 9:42
* @description
*/
@At("/platform/honor/unit/audit")
@IocBean
@Ok("json:full")
public class HonorUnitAuditController {
@Inject("HonorApply")
private ViService<HonorApply> honorApplyViService;
@Inject
private Dao dao;
@At("")
@RequiresPermissions("honor.audit.unit")
@Ok("beetl:/platform/honor/audit/unit.html")
public void index() {
}
@At
@ViReturn
public Object pageData(PageForm pageForm, String honorLevel, String honorType, String isAudit, Integer year) {
CndPlus cnd = CndPlus.create();
Sql sql = Sqls.create("""
SELECT
us.loginname,
ha.*,
prize.`name` AS prizeName,
type.`name` AS typeName,
`level`.`name` AS levelName,
state.stateName,
state.stateColor
FROM
`honor_apply` ha
LEFT JOIN `user` us ON us.id = ha.userId
LEFT JOIN honor_basic_settings prize ON prize.id = ha.prize
LEFT JOIN honor_basic_settings type ON type.id = ha.honorType
LEFT JOIN honor_basic_settings `level` ON `level`.id = ha.honorLevel
LEFT JOIN audit_state state ON state.stateId=ha.stateId
$condition
""");
if (!ShiroUtil.hasRole("sysadmin")) {
cnd.and("ha.unitName", "=", ((Sys_unit) ShiroUtil.getPrincipalProperty("unit")).getName());
}
cnd.andExcludeEmpty("ha.honorLevel", "=", honorLevel);
cnd.andExcludeEmpty("YEAR(ha.applyTime)", "=", year);
cnd.and("ha.honorType", "=", honorType);
cnd.and("ha.stateId", isAudit.equals("true") ? ">" : isAudit.equals("false") ? "=" : ">=", 1500);
if (Vi.isNotBlank(pageForm.getSearchName(), pageForm.getSearchKeyword())) {
cnd.where().andLike(pageForm.getSearchName(), pageForm.getSearchKeyword());
}
cnd.desc("ha.applyTime");
sql.setCondition(cnd);
return honorApplyViService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
}
@At
@ViReturn
public Object doReview(String id, boolean pass, Audit audit) {
audit.setAuditor(ShiroUtil.getPrincipalProperty("id").toString());
audit.setLoginname(ShiroUtil.getPrincipalProperty("loginname").toString());
audit.setAuditPass(pass);
audit = dao.insert(audit);
honorApplyViService.update(Chain.make("stateId", pass ? 1600 : 1550).add("unitAuditId", audit.getId()), Cnd.where("id", "=", id));
return null;
}
}
@@ -0,0 +1,183 @@
package io.v.nutz.honor.models;
import cn.afterturn.easypoi.excel.annotation.Excel;
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;
@Table("honor")
@Data
public class Honor implements Serializable {
private static final long serialVersionUID = 1L;
@Column
@Name
@ColDefine(type = ColType.VARCHAR, width = 32)
@PrevInsert(uu32 = true)
private String id;
@Column
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("姓名Id")
private String userId;
@Column
@Excel(name = "姓名")
@ColDefine(type = ColType.VARCHAR, width = 10)
@Comment("姓名")
private String userName;
@Column
@Excel(name = "性别")
@ColDefine(type = ColType.VARCHAR, width = 1)
@Comment("性别")
private String userSex;
@Column
@Excel(name = "职务")
@ColDefine(type = ColType.VARCHAR, width = 50)
@Comment("职务")
private String post;
@Column
@Excel(name = "职称")
@ColDefine(type = ColType.VARCHAR, width = 50)
@Comment("职称")
private String title;
@Column
@Excel(name = "生日", exportFormat = "yyyy-MM-dd", importFormat = "yyyy-MM-dd", databaseFormat = "yyyy-MM-dd")
@ColDefine(type = ColType.VARCHAR, width = 20)
@Comment("生日")
private String birthday;
@Column
@Excel(name = "工作时间", exportFormat = "yyyy-MM-dd", importFormat = "yyyy-MM-dd", databaseFormat = "yyyy-MM-dd")
@ColDefine(type = ColType.VARCHAR, width = 20)
@Comment("工作时间")
private String workDate;
@Column
@Excel(name = "在职状态")
@ColDefine(type = ColType.VARCHAR, width = 10)
@Comment("在职状态")
private String jobStatus;
@Column
@Excel(name = "部门工会")
@ColDefine(type = ColType.VARCHAR, width = 20)
@Comment("部门工会")
private String unionName;
@Column
@Excel(name = "单位")
@ColDefine(type = ColType.VARCHAR, width = 50)
@Comment("单位")
private String unitName;
@Column
@Excel(name = "单位负责人")
@ColDefine(type = ColType.VARCHAR, width = 20)
@Comment("单位负责人")
private String unitLeader;
@Column
@Excel(name = "单位人数")
@ColDefine(type = ColType.INT)
@Comment("单位人数")
private Long unitPeopleNum;
@Column
@Excel(name = "单位女职工人数")
@ColDefine(type = ColType.INT)
@Comment("单位女职工人数")
private Long unitFemalePeopleNum;
@Column
@Excel(name = "奖项")
@ColDefine(type = ColType.VARCHAR, width = 50)
@Comment("奖项")
private String prize;
@Column
@Excel(name = "奖项说明")
@ColDefine(type = ColType.VARCHAR, width = 100)
@Comment("奖项说明")
private String prizeDesc;
@Column
@Excel(name = "荣誉类型")
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("荣誉类型")
private String honorType;
@Column
@Excel(name = "荣誉级别")
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("荣誉级别")
private String honorLevel;
@Column
@Excel(name = "授予单位")
@ColDefine(type = ColType.VARCHAR, width = 100)
@Comment("授予单位")
private String grantUnit;
@Column
@Excel(name = "参加比赛名称")
@ColDefine(type = ColType.VARCHAR, width = 100)
@Comment("参加比赛名称")
private String gameName;
@Column
@Excel(name = "参与人员")
@ColDefine(type = ColType.VARCHAR, width = 200)
@Comment("参与人员")
private String gamePersons;
@Column
@Excel(name = "授予时间", exportFormat = "yyyy-MM-dd", importFormat = "yyyy-MM-dd", databaseFormat = "yyyy-MM-dd")
@ColDefine(type = ColType.VARCHAR, width = 20)
@Comment("授予时间")
private String grantDate;
@Column
@Excel(name = "存档情况")
@ColDefine(type = ColType.VARCHAR, width = 20)
@Comment("存档情况")
private String archiveStatus;
@Column
@Excel(name = "奖项介质")
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("奖项介质")
private String awardType;
@Column
@ColDefine(type = ColType.MYSQL_JSON, width = 200)
@Comment("获奖材料")
private List<String> awardMaterials;
@Excel(name = "获奖材料")
private String awardMaterialsExcel;
@Column
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("所属部门工会")
private String unionId;
@Column
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("所属单位")
private String unitId;
@Column
@ColDefine(type = ColType.MYSQL_JSON)
@Comment("附件")
private List<Sys_file> files;
}
@@ -0,0 +1,167 @@
package io.v.nutz.honor.models;
import cn.afterturn.easypoi.excel.annotation.Excel;
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.util.List;
/**
* @author zhf
* @date 2021/11/18 8:44
* @description
*/
@Table("honor_apply")
@Data
public class HonorApply {
@Column
@Name
@ColDefine(type = ColType.VARCHAR, width = 32)
@PrevInsert(uu32 = true)
private String id;
@Column
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("姓名Id")
private String userId;
@Column
@Excel(name = "姓名")
@ColDefine(type = ColType.VARCHAR, width = 10)
@Comment("姓名")
private String userName;
@Column
@ColDefine(type = ColType.VARCHAR, width = 50)
@Comment("职务")
private String post;
@Column
@ColDefine(type = ColType.VARCHAR, width = 50)
@Comment("职称")
private String title;
@Column
@ColDefine(type = ColType.VARCHAR, width = 50)
@Comment("民族")
private String nation;
@Column
@ColDefine(type = ColType.VARCHAR, width = 1)
@Comment("性别")
private String userSex;
@Column
@ColDefine(type = ColType.VARCHAR, width = 50)
@Comment("政治面貌")
private String political;
@Column
@ColDefine(type = ColType.VARCHAR, width = 10)
@Comment("在职状态")
private String jobStatus;
@Column
@ColDefine(type = ColType.VARCHAR, width = 20)
@Comment("生日")
private String birthday;
@Column
@ColDefine(type = ColType.TEXT)
@Comment("曾受何种奖励")
private String award;
@Column
@ColDefine(type = ColType.TEXT)
@Comment("主要事迹")
private String Deeds;
@Column
@ColDefine(type = ColType.VARCHAR, width = 20)
@Comment("单位负责人")
private String unitLeader;
@Column
@ColDefine(type = ColType.INT)
@Comment("单位人数")
private Long unitPeopleNum;
@Column
@ColDefine(type = ColType.INT)
@Comment("单位女职工人数")
private Long unitFemalePeopleNum;
@Column
@Comment("申请时间")
@ColDefine(type = ColType.VARCHAR, width = 50)
private String applyTime;
@Column
@ColDefine(type = ColType.VARCHAR, width = 50)
@Comment("奖项")
private String prize;
@Column
@ColDefine(type = ColType.VARCHAR, width = 100)
@Comment("奖项说明")
private String prizeDesc;
@Column
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("荣誉类型")
private String honorType;
@Column
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("荣誉级别")
private String honorLevel;
@Column
@ColDefine(type = ColType.INT)
@Comment("审核状态")
private Integer stateId;
@Column
@Comment("部门工会审核记录id")
@ColDefine(type = ColType.VARCHAR, width = 32)
public String unionAuditId;
@Column
@Excel(name = "单位")
@ColDefine(type = ColType.VARCHAR, width = 20)
@Comment("单位")
private String unitName;
@Column
@ColDefine(type = ColType.MYSQL_JSON)
@Comment("附件")
private List<Sys_file> files;
@Column
@Comment("单位审核记录id")
@ColDefine(type = ColType.VARCHAR, width = 32)
public String unitAuditId;
@Column
@Excel(name = "部门工会")
@ColDefine(type = ColType.VARCHAR, width = 20)
@Comment("部门工会")
private String unionName;
@Column
@Comment("同级党组织审核记录id")
@ColDefine(type = ColType.VARCHAR, width = 32)
public String partyAuditId;
@Column
@Comment("校工会审核记录id")
@ColDefine(type = ColType.VARCHAR, width = 32)
public String schoolAuditId;
}
@@ -0,0 +1,48 @@
package io.v.nutz.honor.models;
import lombok.Data;
import org.nutz.dao.entity.annotation.*;
import org.nutz.dao.interceptor.annotation.PrevInsert;
import java.io.Serializable;
import java.util.List;
@Table("honor_basic_settings")
@Data
public class HonorBasicSettings implements Serializable {
private static final long serialVersionUID = 1L;
@Column
@Name
@ColDefine(type = ColType.VARCHAR, width = 32)
@PrevInsert(uu32 = true)
private String id;
@Column
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("父级id")
private String parentId;
@Column
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("code")
private String code;
@Column
@ColDefine(type = ColType.VARCHAR, width = 50)
@Comment("name")
private String name;
@Column
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("level")
private String level;
@Column
@Comment("有子节点")
private boolean hasChildren;
private List<HonorBasicSettings> child;
}