This commit is contained in:
@jyuhsin
2025-03-28 15:44:48 +08:00
parent 50aa04192a
commit 6881a944ad
16 changed files with 610 additions and 735 deletions
@@ -11,6 +11,7 @@ import com.deepoove.poi.data.PictureRenderData;
import com.deepoove.poi.data.PictureType;
import com.deepoove.poi.policy.HackLoopTableRenderPolicy;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.model.Audit;
import io.v.nutz.base.model.Goods;
import io.v.nutz.base.utils.DateUtil;
import io.v.nutz.base.utils.Html2Text;
@@ -28,6 +29,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.aop.interceptor.ioc.TransAop;
import org.nutz.boot.starter.ftp.FtpService;
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.aop.Aop;
@@ -271,27 +273,29 @@ public class ReimbursementCon {
/*基层工会主席签字*/
if (one.get("dc_s") != null) {
one.setv("dc_sign", getImage((String) one.get("dc_s")));
if (one.get("reimbursement_union_audit") != null) {
Audit reimbursementUnionChairman = one.getAs("reimbursement_union_audit", Audit.class);
one.setv("dc_sign", getImage(reimbursementUnionChairman.getAuditSign()));
}
/*协会负责人*/
if (one.get("ap_c") != null) {
one.setv("ap_sign", getImage((String) one.get("ap_c")));
if (one.get("reimbursement_club_audit") != null) {
Audit reimbursementClubChairman = one.getAs("reimbursement_club_audit", Audit.class);
one.setv("ap_sign", getImage(reimbursementClubChairman.getAuditSign()));
}
/*校工会主席签字*/
if (one.get("ucc_s") != null) {
one.setv("ucc_sign", getImage((String) one.get("ucc_s")));
if (one.get("reimbursement_school_chairman") != null) {
Audit reimbursementSchoolChairman = one.getAs("reimbursement_school_chairman", Audit.class);
one.setv("ucc_sign", getImage(reimbursementSchoolChairman.getAuditSign()));
}
/*会计*/
if (one.get("a_s") != null) {
one.setv("a_sign", getImage((String) one.get("a_s")));
if (one.get("user_signature") != null) {
Sys_signature sysSignature = sysSignatureService.dao().fetch(Sys_signature.class, Cnd.where("id", "=", one.getString("user_signature")));
one.setv("a_sign", getImage(sysSignature.getData()));
}
/*
// 基层工会活动
if (one.getString("activity_type").equals("1")) {
@@ -15,6 +15,7 @@ import io.v.nutz.zhgh.jf.service.ActivityBxService;
import io.v.nutz.sys.services.SysUnionService;
import io.v.nutz.web.commons.base.Globals;
import io.v.nutz.web.commons.utils.ShiroUtil;
import net.sf.ehcache.transaction.xa.processor.XAThreadPool;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.boot.starter.ftp.FtpService;
import org.nutz.dao.Cnd;
@@ -29,6 +30,8 @@ import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import javax.servlet.http.HttpServletResponse;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathFactory;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -4,7 +4,10 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.sys.models.Sys_signature;
import io.v.nutz.sys.services.SysSignatureService;
import io.v.nutz.zhgh.activity.models.ActivityTissue;
import io.v.nutz.zhgh.activity.services.ActivityTissueService;
import io.v.nutz.zhgh.jf.handle.reimbursement.ReimbursementToHandler;
import io.v.nutz.zhgh.jf.model.ActivityBx;
import io.v.nutz.zhgh.jf.service.ActivityBxService;
@@ -20,6 +23,7 @@ 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;
@@ -46,6 +50,10 @@ public class ActivityReimbursementApplyController {
private Dao dao;
@Inject
private ActivityBxService activityBxService;
@Inject
private ActivityTissueService activityTissueService;
@Inject
private SysSignatureService sysSignatureService;
@At("")
@Ok("beetl:/platform/jf/reimbursement/apply.html")
@@ -58,34 +66,31 @@ public class ActivityReimbursementApplyController {
@ViReturn
@RequiresPermissions("sys.jf.reimbursement.apply")
@Aop(TransAop.READ_COMMITTED)
public Object doSave(@Param("activityBx") ActivityBx activityBx) {
List<ActivityBx.Budget> budgets = activityBx.getBudgets();
if (ArrayUtil.isNotEmpty(budgets)) {
double sum = budgets.stream().mapToDouble(ActivityBx.Budget::getActualPrice).sum();
activityBx.setActivity_money(sum);
activityBx.setReimbursement_apply_time(DateUtil.today());
public Object doSave(@Param("activityBx") ActivityBx activityBx, @Param(value = "sign", required = false) String sign) {
if (Strings.isNotBlank(sign)) {
activityBx.setUser_signature(sysSignatureService.insert(new Sys_signature(sign)).getId());
}
activityBx.setFiles(null);
activityBx.setActivity_content(null);
activityBx.setReimbursement_state_id(999);
activityBxService.updateIgnoreNull(activityBx);
this.setEntityValue(activityBx);
activityBxService.insertOrUpdate(activityBx);
return null;
}
@At
@ViReturn
@RequiresPermissions("sys.jf.reimbursement.apply")
@Aop(TransAop.READ_COMMITTED)
public Object doEdit(@Param("activityBx") ActivityBx activityBx, @Param(value = "sign", required = false) String sign) {
private void setEntityValue(ActivityBx activityBx) {
int count = activityBxService.count(Cnd.where("id", "=", activityBx.getId()));
switch (activityBx.getActivity_type()) {
case 40001 -> activityBx.setReimbursement_state_id(1020);
case 40002 -> activityBx.setReimbursement_state_id(1010);
case 40003 -> activityBx.setReimbursement_state_id(1000);
}
activityBx.setReimbursement_state_id(999);
ActivityTissue tissue = dao.fetch(ActivityTissue.class, activityBx.getActivity_id());
activityBx.setApply_time(DateUtil.now());
activityBx.setReimbursement_apply_time(DateUtil.now());
activityBx.setUser_id(ShiroUtil.getUserId());
activityBx.setYear(DateUtil.year(DateUtil.parseDate(tissue.getApplyTime())));
activityBx.setActivity_name(tissue.getName());
activityBx.setUser_name(ShiroUtil.getPlatformUsername());
activityBx.setActivity_type(tissue.getType());
activityBx.setProjectTypeCode(tissue.getProjectTypeCode());
activityBx.setMobile(tissue.getMobile());
activityBx.setProjectCode(tissue.getActivityCode());
activityBx.setActivity_content(tissue.getActivityContent());
List<ActivityBx.Budget> budgets = activityBx.getBudgets();
double sum = budgets.stream().mapToDouble(ActivityBx.Budget::getActualPrice).sum();
@@ -97,11 +102,24 @@ public class ActivityReimbursementApplyController {
if (StrUtil.isNotBlank(activityBx.getId()) && count > 0) {
activityBx.setFiles(null);
activityBx.setActivity_content(null);
activityBxService.updateIgnoreNull(activityBx);
} else {
// activityBxService.doAdd(activityBx);
}
}
@At
@ViReturn
@RequiresPermissions("sys.jf.reimbursement.apply")
@Aop(TransAop.READ_COMMITTED)
public Object doEdit(@Param("activityBx") ActivityBx activityBx, @Param(value = "sign", required = false) String sign) {
if (Strings.isNotBlank(sign)) {
activityBx.setUser_signature(sysSignatureService.insert(new Sys_signature(sign)).getId());
}
this.setEntityValue(activityBx);
switch (activityBx.getActivity_type()) {
case 40001 -> activityBx.setReimbursement_state_id(1020);
case 40002 -> activityBx.setReimbursement_state_id(1010);
case 40003 -> activityBx.setReimbursement_state_id(1000);
}
activityBxService.insertOrUpdate(activityBx);
NutMap map = new NutMap();
map.put("userId", ShiroUtil.getUserId());
//流程开始
@@ -171,6 +189,7 @@ public class ActivityReimbursementApplyController {
@ViReturn
@RequiresPermissions("sys.jf.reimbursement.apply")
public Object findOne(String id) {
return activityBxService.queryOne(id);
//return activityTissueService.findOne(id);
return activityBxService.fetch(id);
}
}
@@ -61,7 +61,6 @@ import java.util.List;
@At("/platform/jf/reimbursement/mine")
public class ActivityReimbursementMineController {
@Inject
private Vi vi;
@@ -77,7 +76,6 @@ public class ActivityReimbursementMineController {
public void index() {
}
@At
@ViReturn
@RequiresPermissions("sys.jf.reimbursement.mine")
@@ -87,7 +87,7 @@ public class ActivityReimbursementSchoolChairmanController {
activityBxService.dao().insert(audit);
Chain chain = Chain.make("reimbursement_school_chairman_id", audit.getId());
chain.add("reimbursement_state_id", audit.getAuditPass() ? 1061 : 1045);
chain.add("reimbursement_state_id", audit.getAuditPass() ? 1060 : 1045);
activityBxService.update(chain,Cnd.where("id","=",id));
ReimbursementToHandler.COMPLETE_SCHOOL_CHAIRMAN_TASK.exec(id, NutMap.NEW().addv("nodeName",audit.getAuditPass() ? "校工会主席通过" : "校工会主席拒绝"));
@@ -1,5 +1,6 @@
package io.v.nutz.zhgh.jf.controller.reimbursement;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.zhgh.jf.model.ActivityBx;
@@ -41,7 +42,6 @@ public class ActivityReimbursementStatisticsController {
public void index() {
}
@At
@ViReturn
@RequiresPermissions("sys.jf.reimbursement.statistics")
@@ -66,7 +66,7 @@ public class ActivityReimbursementStatisticsController {
cnd.andEX("u.unionid","=",unionId);
cnd.andEX("u.unitId","=",unitId);
cnd.andEX("act.clubId","=",clubId);
cnd.andEX("act.reimbursement_state_id","=",1061);
cnd.andEX("act.reimbursement_state_id","=",1060);
sql.setCondition(cnd);
return activityBxService.listPageMap(pageForm.getPageNumber(),pageForm.getPageSize(),sql);
}
@@ -77,7 +77,7 @@ public class ActivityReimbursementStatisticsController {
@ViReturn
@RequiresPermissions("sys.jf.reimbursement.statistics")
public Object getActivityTypeNum(Integer year){
List<ActivityBx> list = activityBxService.query(Cnd.where("`year`", "=", year).and("reimbursement_state_id","=",1061));
List<ActivityBx> list = activityBxService.query(Cnd.where("`year`", "=", year).and("reimbursement_state_id","=",1060));
Integer schoolNum = (int) list.stream().filter(v -> v.getActivity_type() == 40001).count();
Integer unionNum = (int) list.stream().filter(v -> v.getActivity_type() == 40002).count();
Integer clubNum = (int) list.stream().filter(v -> v.getActivity_type() == 40003).count();
@@ -41,7 +41,7 @@ public interface ActivityBxService extends ViService<ActivityBx> {
LEFT JOIN `user` u ON act.user_id = u.id
LEFT JOIN sys_unit un ON u.unitid = un.id
LEFT JOIN state s ON act.reimbursement_state_id = s.state_id
LEFT JOIN activity_basic_settings abs ON abs.`code` = act.projectJfCode
LEFT JOIN activity_basic_settings abs ON abs.`code` = act.projectTypeCode
LEFT JOIN sys_club sc on act.clubId = sc.id
$condition
""");