This commit is contained in:
2024-08-02 14:31:56 +08:00
parent f8bca9ff88
commit 649cde9aa6
15 changed files with 507 additions and 138 deletions
@@ -1,6 +1,10 @@
package io.v.nutz.wakershome.controller.declaration;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
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.base.utils.Vi;
import io.v.nutz.modules.models.Audit;
@@ -8,8 +12,10 @@ 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 io.v.nutz.web.commons.base.Globals;
import org.apache.shiro.authz.annotation.Logical;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.ddr.poi.html.HtmlRenderPolicy;
import org.nutz.aop.interceptor.ioc.TransAop;
import org.nutz.dao.Cnd;
import org.nutz.dao.Sqls;
@@ -17,10 +23,15 @@ 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.util.NutMap;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.HashMap;
/**
* @version 1.0
* @Author zzr
@@ -39,15 +50,16 @@ public class WakesHomeDeclarationMineController {
@At("")
@Ok("beetl:/platform/wakeshome/declaration/mine.html")
@RequiresPermissions("wakeshome.declaration.mine")
public void index() {}
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){
@Param(value = "year", required = false) Integer year,
@Param(value = "unionId", required = false) String unionId) {
Sql sql = Sqls.create("""
SELECT
wh.*,
@@ -59,9 +71,9 @@ public class WakesHomeDeclarationMineController {
$condition
""");
Cnd cnd = Cnd.NEW();
cnd.andEX("YEAR(wh.applyDate)","=",year);
if (!ShiroUtil.hasAnyRoles("sysadmin,A06")){
cnd.and("unionId","=", Vi.getUnionId());
cnd.andEX("YEAR(wh.applyDate)", "=", year);
if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) {
cnd.and("unionId", "=", Vi.getUnionId());
} else {
cnd.andEX("unionId", "=", unionId);
}
@@ -73,16 +85,63 @@ public class WakesHomeDeclarationMineController {
@At
@ViReturn
@Aop(TransAop.READ_COMMITTED)
@RequiresPermissions(value = {"wakeshome.declaration.apply","wakeshome.declaration.mine"},logical = Logical.OR)
@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());
wakesHomeApplyService.dao().delete(Audit.class, apply.getOrganizationAuditId());
}
if (StrUtil.isNotBlank(apply.getSchoolAuditId())) {
wakesHomeApplyService.dao().delete(Audit.class,apply.getSchoolAuditId());
wakesHomeApplyService.dao().delete(Audit.class, apply.getSchoolAuditId());
}
wakesHomeApplyService.delete(id);
return null;
}
@At
@Ok("void")
public void openExport(String id, HttpServletResponse response) {
try {
NutMap nutMap = wakesHomeApplyService.findById(id);
HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy();
HtmlRenderPolicy htmlRenderPolicy = new HtmlRenderPolicy();
htmlRenderPolicy.getConfig().setShowDefaultTableBorderInTableCell(true);
Configure config = Configure.newBuilder()
.bind("basicInformation", htmlRenderPolicy)
.bind("constructionPlan", htmlRenderPolicy).build();
HashMap<String, Object> map = new HashMap<>();
String fileName = Globals.schoolName + "教工小家”建设计划书";
map.put("fileName", fileName);
map.put("schoolName", Globals.schoolName);
map.put("unionName", nutMap.getString("unionName"));
map.put("applyDate", nutMap.getString("applyDate"));
map.put("username", nutMap.getString("username"));
map.put("mobile", nutMap.getString("mobile"));
map.put("basicInformation", nutMap.getString("basicInformation"));
map.put("constructionPlan", nutMap.getString("constructionPlan"));
NutMap schoolAudit = nutMap.getAs("schoolAudit", NutMap.class);
NutMap organizationAudit = nutMap.getAs("organizationAudit", NutMap.class);
schoolAudit.setv("auditTime", DateUtil.formatDate(schoolAudit.getTime("auditTime")));
schoolAudit.setv("auditSign", Vi.getImg(schoolAudit.getString("auditSign")));
organizationAudit.setv("auditTime", DateUtil.formatDate(organizationAudit.getTime("auditTime")));
organizationAudit.setv("auditSign", Vi.getImg(organizationAudit.getString("auditSign")));
map.put("organizationAudit", organizationAudit);
map.put("schoolAudit", schoolAudit);
response.addHeader("Content-Type", "application/octet-stream");
response.addHeader("Content-Disposition", "attachment; filename=\"" + new String(fileName.getBytes("UTF-8"), "ISO-8859-1") + "\".docx");
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("docTemplate/wakeshome/wakeshome.docx");
XWPFTemplate.compile(inputStream, config).render(map, response.getOutputStream());
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
@@ -65,6 +65,6 @@ public class WakesHomeApplyController {
@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();
return (count > 0) ? Result.success() : Result.error();
}
}