diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/ReimbursementCon.java b/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/ReimbursementCon.java index ecf635e..482f3f3 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/ReimbursementCon.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/ReimbursementCon.java @@ -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")) { diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/ReimbursementViewCon.java b/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/ReimbursementViewCon.java index ec0bb90..eac9e31 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/ReimbursementViewCon.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/ReimbursementViewCon.java @@ -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; diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementApplyController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementApplyController.java index 3a938ab..eaa1a70 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementApplyController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementApplyController.java @@ -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 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 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); } } diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementMineController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementMineController.java index 748cde5..715b3bf 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementMineController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementMineController.java @@ -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") diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementSchoolChairmanController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementSchoolChairmanController.java index 58c2d2d..1360489 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementSchoolChairmanController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementSchoolChairmanController.java @@ -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() ? "校工会主席通过" : "校工会主席拒绝")); diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementStatisticsController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementStatisticsController.java index 94462f6..9f83567 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementStatisticsController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementStatisticsController.java @@ -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 list = activityBxService.query(Cnd.where("`year`", "=", year).and("reimbursement_state_id","=",1061)); + List 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(); diff --git a/src/main/java/io/v/nutz/zhgh/jf/service/ActivityBxService.java b/src/main/java/io/v/nutz/zhgh/jf/service/ActivityBxService.java index a85079a..8682e58 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/service/ActivityBxService.java +++ b/src/main/java/io/v/nutz/zhgh/jf/service/ActivityBxService.java @@ -41,7 +41,7 @@ public interface ActivityBxService extends ViService { 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 """); diff --git a/src/main/resources/docTemplate/funds3.docx b/src/main/resources/docTemplate/funds3.docx new file mode 100644 index 0000000..c03c176 Binary files /dev/null and b/src/main/resources/docTemplate/funds3.docx differ diff --git a/src/main/resources/static/components/activityBx/ActivityBxInfo.vue b/src/main/resources/static/components/activityBx/ActivityBxInfo.vue index c23bd38..de394a6 100644 --- a/src/main/resources/static/components/activityBx/ActivityBxInfo.vue +++ b/src/main/resources/static/components/activityBx/ActivityBxInfo.vue @@ -1,558 +1,544 @@ diff --git a/src/main/resources/views/platform/jf/reimbursement/apply.html b/src/main/resources/views/platform/jf/reimbursement/apply.html index 43a96ff..9035cd9 100644 --- a/src/main/resources/views/platform/jf/reimbursement/apply.html +++ b/src/main/resources/views/platform/jf/reimbursement/apply.html @@ -38,12 +38,14 @@ layout("/layouts/platform.html"){ + + - - + - -
- 选择活动后自动填充活动基本信息,选择右侧小箭头可展开或折叠 -
+ + 查看活动详细信息
- - + - + - + - - - - - - - - - - - - - + - - - - - - - - {{ formData.activity_type == 40002 ? "分工会活动" : formData.activity_type == - 40003 ? "协会活动" - : "校工会活动"}} - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 活动内容 - - - - - - 附件 - - - - - - - - - - - - - - 活动费用预算及报销信息表 如有收款人请填写收款人、支行名称及报销卡号;如无收款人,请在备注栏中说明报销情况 @@ -337,8 +194,8 @@ layout("/layouts/platform.html"){ - 其他报销附件 - + + @@ -399,9 +256,8 @@ layout("/layouts/platform.html"){ --> - 签  字 - + + @@ -416,6 +272,12 @@ layout("/layouts/platform.html"){ + + + 导出活动报销凭证 diff --git a/src/main/resources/views/platform/jf/reimbursement/schoolChairman.html b/src/main/resources/views/platform/jf/reimbursement/schoolChairman.html index 65750de..4e79569 100644 --- a/src/main/resources/views/platform/jf/reimbursement/schoolChairman.html +++ b/src/main/resources/views/platform/jf/reimbursement/schoolChairman.html @@ -128,7 +128,7 @@ layout("/layouts/platform.html"){