From f5d37974cde2af572fa423f369e64922276067b1 Mon Sep 17 00:00:00 2001 From: Paidax Date: Fri, 22 Nov 2024 16:56:54 +0800 Subject: [PATCH] commit --- pom.xml | 19 + src/main/java/io/v/nutz/base/utils/Vi.java | 23 +- .../platform/sys/SysAppController.java | 3 +- .../sys/SysHomeActivityController.java | 125 ++ .../io/v/nutz/sys/models/SysAppModule.java | 4 + .../v/nutz/sys/models/Sys_home_activity.java | 83 + .../sys/param/SysHomeActivityPageForm.java | 13 + .../sys/services/SysHomeActivityService.java | 8 + .../v/nutz/sys/services/SysHomeConvert.java | 10 + .../impl/SysHomeActivityServiceImpl.java | 15 + .../controller/FileServerController.java | 73 +- .../controller/SignatureController.java | 34 +- .../service/impl/SourceUserServiceImpl.java | 87 +- .../Funds/FundsApplyController.java | 42 +- .../controller/activitybx/AccountingCon.java | 4 +- .../activitybx/ActivitybxAgentController.java | 2 +- .../activitybx/ApplyController.java | 105 +- .../controller/activitybx/AssociationCon.java | 6 +- .../jf/controller/activitybx/CashierCon.java | 4 +- .../jf/controller/activitybx/ConfirmCon.java | 4 +- .../jf/controller/activitybx/DivisionCon.java | 9 +- .../activitybx/ReimbursementCon.java | 44 +- .../activitybx/ReimbursementViewCon.java | 11 +- .../jf/controller/activitybx/UnionCon.java | 7 +- .../club/ClubDataInputController.java | 4 +- .../jf/controller/club/clubTzController.java | 2 +- .../costsSet/CostsSetController.java | 8 +- .../financial/FinancialImportController.java | 9 +- .../jf/controller/jfbx/bxshController.java | 4 +- .../jf/controller/jfbx/bxyyController.java | 4 +- .../zhgh/jf/controller/jsTzController.java | 4 +- .../ActivityReimbursementApplyController.java | 75 +- .../ActivityReimbursementBoardController.java | 8 +- ...tyReimbursementClubChairmanController.java | 9 +- .../ActivityReimbursementMineController.java | 33 +- ...ReimbursementSchoolChairmanController.java | 8 +- ...ReimbursementSchoolDirectorController.java | 7 +- ...vityReimbursementStatisticsController.java | 5 +- ...yReimbursementUnionChairmanController.java | 11 +- .../school/schoolBudgetController.java | 2 +- .../controller/yjgh/DataInputController.java | 2 +- .../jf/controller/yjgh/jfsyController.java | 1 - .../jf/controller/yjgh/yjghController.java | 3 +- .../reimbursement/ReimbursementToHandler.java | 16 +- .../io/v/nutz/zhgh/jf/model/ActivityBx.java | 30 + .../io/v/nutz/zhgh/jf/model/SchoolUse.java | 1 - .../zhgh/jf/service/ActivityBxService.java | 2 +- .../service/impl/ActivityBxServiceImpl.java | 55 +- .../jf/service/impl/jfClubServiceImpl.java | 2 +- .../jf/service/impl/jfYjghServiceImpl.java | 2 +- .../v/nutz/zhgh/jf/service/jfClubService.java | 2 +- .../v/nutz/zhgh/jf/service/jfYjghService.java | 2 +- .../controller/WelfareCommonController.java | 8 +- .../controller/WelfareListController.java | 103 +- .../WelfareMemberAdjustmentController.java | 19 +- ...lfareMemberChangeApplyAuditController.java | 2 +- .../WelfareMemberMangeController.java | 12 +- .../controller/WelfareMineController.java | 3 +- .../WelfareProjectMangeController.java | 21 +- .../WelfareUserChooseController.java | 25 +- .../check/WelfareCheckPersonalController.java | 2 +- .../WelfareMemberCheckUnionController.java | 27 +- .../statistics/WelfareSingleController.java | 186 ++- .../zhgh/welfare/feature/WelfareFeature.java | 2 +- .../nutz/zhgh/welfare/model/WelfareList.java | 2 +- .../zhgh/welfare/model/WelfareProject.java | 24 +- .../welfare/service/WelfareSingleService.java | 2 +- .../service/impl/WelfareListServiceImpl.java | 2 + .../impl/WelfareSingleServiceImpl.java | 75 +- .../platform/module/mixins/styleMixin.js | 23 + .../components/activityBx/ActivityBxInfo.vue | 991 ++++++----- .../activityBx/ActivityBxSearch.vue | 117 +- .../static/components/member/MemberInfo.vue | 1477 +++++++---------- .../static/components/plugins/TextEditor.vue | 418 +++-- .../static/components/sign/mobileSign.vue | 264 ++- .../resources/static/components/sign/sign.vue | 344 ++-- .../activity/Sports/activityEventList.html | 175 +- .../mobile/activity/Sports/activityList.html | 57 +- .../mobile/activity/Sports/myProject.html | 62 +- .../views/mobile/activity/site/apply.html | 523 +++--- .../views/mobile/activity/site/audit.html | 245 +-- .../views/mobile/activity/site/info.html | 95 +- .../mobile/activity/site/info/index.html | 11 +- .../views/mobile/activity/site/mine.html | 98 +- .../views/mobile/activity/site/my.html | 190 +-- .../views/mobile/activity/site/reserve.html | 205 +-- .../activity/site/retireAudit/audit.html | 121 +- .../activity/site/retireAudit/list.html | 82 +- .../activity/site/schoolAudit/audit.html | 121 +- .../activity/site/schoolAudit/list.html | 81 +- .../activity/site/unionAudit/audit.html | 121 +- .../mobile/activity/site/unionAudit/list.html | 78 +- .../activity/unionActivity/register.html | 125 +- .../mobile/activity/unionActivity/sign.html | 45 +- .../activity/unionActivity/singleReg.html | 101 +- .../activity/unionActivity/unionReg.html | 172 +- .../views/mobile/club/clubAudit.html | 146 +- .../resources/views/mobile/club/inClub.html | 435 +++-- .../views/mobile/club/schoolAudit.html | 249 +-- .../views/mobile/condolence/apply.html | 405 +++-- .../views/mobile/condolence/apply_info.html | 30 +- .../views/mobile/condolence/apply_list.html | 93 +- .../views/mobile/condolence/audit_list.html | 64 +- .../views/mobile/condolence/fr_Audit.html | 85 +- .../views/mobile/condolence/school_Audit.html | 118 +- .../views/mobile/condolence/union_Audit.html | 83 +- .../views/mobile/difficulty/apply.html | 194 ++- .../views/mobile/difficulty/apply_info.html | 16 +- .../views/mobile/difficulty/apply_list.html | 45 +- .../views/mobile/difficulty/audit_list.html | 56 +- .../views/mobile/difficulty/school_Audit.html | 62 +- .../views/mobile/difficulty/union_Audit.html | 73 +- .../views/mobile/healthCheckup/checkUp.html | 233 +-- .../views/mobile/healthCheckup/list.html | 356 ++-- .../views/mobile/healthCheckup/mine.html | 352 ++-- src/main/resources/views/mobile/home.html | 333 ++-- .../resources/views/mobile/member/apply.html | 386 +++-- .../views/mobile/member/apply_list.html | 25 +- .../views/mobile/member/audit_list.html | 55 +- .../views/mobile/member/dashBoard.html | 293 ++-- .../resources/views/mobile/member/detail.html | 18 +- .../resources/views/mobile/member/edit.html | 202 ++- .../resources/views/mobile/member/query.html | 106 +- .../views/mobile/member/school_Audit.html | 71 +- .../member/school_audit_change_list.html | 199 +-- .../views/mobile/member/union_Audit.html | 71 +- .../member/union_audit_change_list.html | 194 +-- .../mobile/memberCost/memberCostList.html | 175 +- src/main/resources/views/mobile/platform.html | 119 +- src/main/resources/views/mobile/zc/zcPd.html | 526 +++--- .../views/platform/jf/Funds/apply.html | 373 ++--- .../views/platform/jf/activitybx/apply.html | 4 +- .../platform/jf/bxFundsLayout/accounting.html | 35 +- .../jf/bxFundsLayout/association.html | 36 +- .../platform/jf/bxFundsLayout/division.html | 33 +- .../jf/bxFundsLayout/reimbursement.html | 4 +- .../platform/jf/bxFundsLayout/union.html | 76 +- .../platform/jf/reimbursement/apply.html | 327 +++- .../jf/reimbursement/clubChairman.html | 41 +- .../views/platform/jf/reimbursement/mine.html | 7 +- .../jf/reimbursement/schoolChairman.html | 37 +- .../jf/reimbursement/schoolDirector.html | 37 +- .../jf/reimbursement/unionChairman.html | 23 +- .../views/platform/sys/appMenu/index.html | 259 ++- .../platform/sys/homeActivity/index.html | 123 ++ .../resources/views/platform/sys/login.html | 870 +++++----- 146 files changed, 8256 insertions(+), 7800 deletions(-) create mode 100644 src/main/java/io/v/nutz/sys/controllers/platform/sys/SysHomeActivityController.java create mode 100644 src/main/java/io/v/nutz/sys/models/Sys_home_activity.java create mode 100644 src/main/java/io/v/nutz/sys/param/SysHomeActivityPageForm.java create mode 100644 src/main/java/io/v/nutz/sys/services/SysHomeActivityService.java create mode 100644 src/main/java/io/v/nutz/sys/services/SysHomeConvert.java create mode 100644 src/main/java/io/v/nutz/sys/services/impl/SysHomeActivityServiceImpl.java create mode 100644 src/main/resources/static/assets/platform/module/mixins/styleMixin.js create mode 100644 src/main/resources/views/platform/sys/homeActivity/index.html diff --git a/pom.xml b/pom.xml index f155831..498d60f 100644 --- a/pom.xml +++ b/pom.xml @@ -259,6 +259,25 @@ + + + com.luhuiguo + aspose-words + 23.1 + + + + com.luhuiguo + aspose-cells + 23.1 + + + + com.luhuiguo + aspose-slides + 23.1 + + org.nutz nutzboot-starter-test-junit4 diff --git a/src/main/java/io/v/nutz/base/utils/Vi.java b/src/main/java/io/v/nutz/base/utils/Vi.java index 094bb25..316c6ed 100644 --- a/src/main/java/io/v/nutz/base/utils/Vi.java +++ b/src/main/java/io/v/nutz/base/utils/Vi.java @@ -1,18 +1,18 @@ package io.v.nutz.base.utils; import com.deepoove.poi.data.PictureRenderData; +import com.deepoove.poi.data.PictureType; import io.v.nutz.base.service.BaseService; import io.v.nutz.sys.models.*; -import io.v.nutz.zhgh.jdh.model.cb.Jdh_jdhxx; import io.v.nutz.sys.services.SysMenuService; import io.v.nutz.sys.services.SysUserRoleService; import io.v.nutz.sys.services.SysUserService; import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.jdh.model.cb.Jdh_jdhxx; 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.entity.Record; import org.nutz.dao.sql.Sql; import org.nutz.dao.util.Daos; import org.nutz.ioc.loader.annotation.Inject; @@ -24,6 +24,7 @@ import org.nutz.mvc.Mvcs; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; +import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.*; import java.util.stream.Collectors; @@ -48,6 +49,9 @@ public class Vi { @Inject private SysUserRoleService sysUserRoleService; + @Inject + private static FtpService ftpService; + /** * @return 当前登录用户的福利单位 */ @@ -191,9 +195,16 @@ public class Vi { } public static PictureRenderData getImg(String base64) throws IOException { - String s = base64.split(",")[1]; - byte[] bytes = Base64.getDecoder().decode(s); - return new PictureRenderData(70, 30, ".png", bytes); + if (base64.startsWith(base64)) { + String s = base64.split(",")[1]; + byte[] bytes = Base64.getDecoder().decode(s); + return new PictureRenderData(70, 30, ".png", bytes); + } else { + ByteArrayOutputStream os = new ByteArrayOutputStream(); + ftpService.download(base64, os); + os.close(); + return new PictureRenderData(70, 30, PictureType.PNG, os.toByteArray()); + } } public static String getCron(Date time) { @@ -250,8 +261,6 @@ public class Vi { }); } - @Inject - private FtpService ftpService; public void deleteSysFiles(List files) { try { diff --git a/src/main/java/io/v/nutz/sys/controllers/platform/sys/SysAppController.java b/src/main/java/io/v/nutz/sys/controllers/platform/sys/SysAppController.java index 7f63336..ed2cd72 100644 --- a/src/main/java/io/v/nutz/sys/controllers/platform/sys/SysAppController.java +++ b/src/main/java/io/v/nutz/sys/controllers/platform/sys/SysAppController.java @@ -85,8 +85,9 @@ public class SysAppController { List list = (List) entry.getValue(); for (LoglevelProperty property : list) { NutMap nutMap = NutMap.NEW().addv("hostName", property.getHostName()).addv("hostAddress", property.getHostAddress()); - if (!hostList.contains(nutMap)) + if (!hostList.contains(nutMap)) { hostList.add(nutMap); + } if (Strings.isBlank(hostName) || (Strings.isNotBlank(hostName) && property.getHostName().equals(hostName))) { dataList.add(property); } diff --git a/src/main/java/io/v/nutz/sys/controllers/platform/sys/SysHomeActivityController.java b/src/main/java/io/v/nutz/sys/controllers/platform/sys/SysHomeActivityController.java new file mode 100644 index 0000000..517bcde --- /dev/null +++ b/src/main/java/io/v/nutz/sys/controllers/platform/sys/SysHomeActivityController.java @@ -0,0 +1,125 @@ +package io.v.nutz.sys.controllers.platform.sys; + +import cn.hutool.core.util.StrUtil; +import cn.wizzer.framework.base.Result; +import cn.wizzer.framework.page.Pagination; +import io.v.nutz.sys.models.Sys_home_activity; +import io.v.nutz.sys.param.SysHomeActivityPageForm; +import io.v.nutz.sys.services.SysHomeActivityService; +import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.activity.models.ActivityUserScope; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.dao.*; +import org.nutz.dao.sql.Sql; +import org.nutz.dao.util.Daos; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.Lang; +import org.nutz.lang.util.NutMap; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; + +import javax.validation.Valid; +import java.util.ArrayList; +import java.util.List; + +@IocBean +@At("/platform/sys/homeActivity") +@Ok("json:full") +public class SysHomeActivityController { + + @Inject + private Dao dao; + @Inject + private SysHomeActivityService sysHomeActivityService; + + @At("") + @Ok("beetl:/platform/sys/homeActivity/index.html") + @RequiresPermissions("sys.homeActivity") + public void index() { + } + + @At + @RequiresPermissions("sys.homeActivity") + public Object pageData(SysHomeActivityPageForm pageForm) { + Cnd cnd = Cnd.NEW(); + cnd.and(Cnd.likeEX("`name`",pageForm.getName())); + cnd.desc("sortNo"); + Pagination pagination = sysHomeActivityService.listPage(pageForm.getPageNumber(), pageForm.getPageSize(), cnd); + return Result.success(pagination); + } + + @At + @RequiresPermissions("sys.homeActivity") + public Object enable(@Valid String id) { + sysHomeActivityService.update(Chain.make("enable", 1), Cnd.where("id", "=", id)); + return Result.success(); + } + + @At + @RequiresPermissions("sys.homeActivity") + public Object disable(@Valid String id) { + sysHomeActivityService.update(Chain.make("enable", 0), Cnd.where("id", "=", id)); + return Result.success(); + } + + @At + @RequiresPermissions("sys.homeActivity") + public Object topUp(@Valid String id){ + Sys_home_activity sysHomeActivity = new Sys_home_activity(); + sysHomeActivity.setId(id); + sysHomeActivity.setTop(true); + sysHomeActivityService.updateIgnoreNull(sysHomeActivity); + return Result.success(); + } + + @At + @RequiresPermissions("sys.homeActivity") + public Object cancelTopUp(@Valid String id){ + Sys_home_activity sysHomeActivity = new Sys_home_activity(); + sysHomeActivity.setId(id); + sysHomeActivity.setTop(false); + sysHomeActivityService.updateIgnoreNull(sysHomeActivity); + return Result.success(); + } + + + @At + @RequiresAuthentication + public Result listHomeActivity() { + FieldFilter fieldFilter = FieldFilter.locked(Sys_home_activity.class, "classPath"); + List list = Daos.ext(dao,fieldFilter) .query(Sys_home_activity.class, Cnd.where("enable", "=", 1).desc("top")); + String userId = ShiroUtil.getUserId(); + + List allowActivityList = new ArrayList<>(); + + for (Sys_home_activity activity : list) { + Integer allowUserGroupId = activity.getAllowUserGroupId(); + String allowUserSql = activity.getAllowUserSql(); + activity.setAllowUserSql(null); + if (allowUserGroupId == null && StrUtil.isBlank(allowUserSql)) { + allowActivityList.add(activity); + continue; + } + + if (allowUserGroupId != null) { + int count = dao.count(ActivityUserScope.class, Cnd.where("groupId", "=", allowUserGroupId).and("userId", "=", userId)); + if (count > 0) { + allowActivityList.add(activity); + continue; + } + } + + if (StrUtil.isNotBlank(allowUserSql)){ + Sql sql = Sqls.create(allowUserSql).setParam("userId", userId); + NutMap nutMap = (NutMap) Daos.query(dao, sql.toString(), Sqls.callback.map()); + if (Lang.isNotEmpty(nutMap) && StrUtil.isNotBlank(nutMap.getString("userId"))) { + allowActivityList.add(activity); + } + } + } + return Result.success(allowActivityList); + } + +} diff --git a/src/main/java/io/v/nutz/sys/models/SysAppModule.java b/src/main/java/io/v/nutz/sys/models/SysAppModule.java index 42e686b..934da1c 100644 --- a/src/main/java/io/v/nutz/sys/models/SysAppModule.java +++ b/src/main/java/io/v/nutz/sys/models/SysAppModule.java @@ -35,6 +35,10 @@ public class SysAppModule extends BaseModel { @Column private Boolean enable; + @ColDefine(type = ColType.VARCHAR, width = 500) + @Comment("图标") + @Column + private String iconClass; /** * 子菜单 */ diff --git a/src/main/java/io/v/nutz/sys/models/Sys_home_activity.java b/src/main/java/io/v/nutz/sys/models/Sys_home_activity.java new file mode 100644 index 0000000..3a1026c --- /dev/null +++ b/src/main/java/io/v/nutz/sys/models/Sys_home_activity.java @@ -0,0 +1,83 @@ +package io.v.nutz.sys.models; + +import io.v.nutz.base.model.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.nutz.dao.entity.annotation.*; + +import java.util.Date; + +@EqualsAndHashCode(callSuper = true) +@Data +@Table +@Comment("首页活动") +public class Sys_home_activity extends BaseModel { + + @Name + @ColDefine(type = ColType.VARCHAR, width = 32) + @Comment("主键ID,和业务ID保持一致") + private String id; + + @Column + @ColDefine(type = ColType.VARCHAR, width = 50) + @Comment("活动名称") + private String name; + + @Column + @ColDefine(type = ColType.VARCHAR, width = 255) + @Comment("活动封面") + private String cover; + + @Column + @ColDefine(type = ColType.VARCHAR, width = 1000) + @Comment("活动链接") + private String url; + + @Column + @ColDefine(type = ColType.VARCHAR, width = 1000) + @Comment("h5活动链接") + private String h5Url; + + @Column + @ColDefine(type = ColType.INT) + @Comment("面向人员分组ID") + private Integer allowUserGroupId; + + @Column + @ColDefine(type = ColType.VARCHAR, width = 1000) + @Comment("允许查看的人员sql") + private String allowUserSql; + + @Column + @ColDefine(type = ColType.BOOLEAN) + @Comment("是否启用") + @Default("0") + private Boolean enable; + + @Column + @Comment("类路径") + @ColDefine(type = ColType.VARCHAR, width = 500) + private String classPath; + + @Column + @Comment("是否置顶") + @ColDefine(type = ColType.BOOLEAN) + @Default("0") + private Boolean top; + + @Column + @Comment("排序号") + @Default("0") + private Integer sortNo; + + @Column + @Comment("开始时间") + @ColDefine(type = ColType.DATETIME) + private Date startDate; + + @Column + @Comment("结束时间") + @ColDefine(type = ColType.DATETIME) + private Date endDate; + +} diff --git a/src/main/java/io/v/nutz/sys/param/SysHomeActivityPageForm.java b/src/main/java/io/v/nutz/sys/param/SysHomeActivityPageForm.java new file mode 100644 index 0000000..0729028 --- /dev/null +++ b/src/main/java/io/v/nutz/sys/param/SysHomeActivityPageForm.java @@ -0,0 +1,13 @@ +package io.v.nutz.sys.param; + +import io.v.nutz.base.query.PageForm; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class SysHomeActivityPageForm extends PageForm { + + private String name; + +} diff --git a/src/main/java/io/v/nutz/sys/services/SysHomeActivityService.java b/src/main/java/io/v/nutz/sys/services/SysHomeActivityService.java new file mode 100644 index 0000000..3fe0d41 --- /dev/null +++ b/src/main/java/io/v/nutz/sys/services/SysHomeActivityService.java @@ -0,0 +1,8 @@ +package io.v.nutz.sys.services; + + +import cn.wizzer.framework.base.service.BaseService; +import io.v.nutz.sys.models.Sys_home_activity; + +public interface SysHomeActivityService extends BaseService { +} diff --git a/src/main/java/io/v/nutz/sys/services/SysHomeConvert.java b/src/main/java/io/v/nutz/sys/services/SysHomeConvert.java new file mode 100644 index 0000000..8ee3a4c --- /dev/null +++ b/src/main/java/io/v/nutz/sys/services/SysHomeConvert.java @@ -0,0 +1,10 @@ +package io.v.nutz.sys.services; + + +import io.v.nutz.sys.models.Sys_home_activity; + +public interface SysHomeConvert { + + Sys_home_activity covertToSysHomeActivity(); + +} diff --git a/src/main/java/io/v/nutz/sys/services/impl/SysHomeActivityServiceImpl.java b/src/main/java/io/v/nutz/sys/services/impl/SysHomeActivityServiceImpl.java new file mode 100644 index 0000000..f53bc3a --- /dev/null +++ b/src/main/java/io/v/nutz/sys/services/impl/SysHomeActivityServiceImpl.java @@ -0,0 +1,15 @@ +package io.v.nutz.sys.services.impl; + +import cn.wizzer.framework.base.service.BaseServiceImpl; +import io.v.nutz.sys.models.Sys_home_activity; +import io.v.nutz.sys.services.SysHomeActivityService; +import org.nutz.dao.Dao; +import org.nutz.ioc.loader.annotation.IocBean; + +@IocBean(args = {"refer:dao"}) +public class SysHomeActivityServiceImpl extends BaseServiceImpl implements SysHomeActivityService { + + public SysHomeActivityServiceImpl(Dao dao) { + super(dao); + } +} diff --git a/src/main/java/io/v/nutz/web/commons/controller/FileServerController.java b/src/main/java/io/v/nutz/web/commons/controller/FileServerController.java index 55818f3..fbc4044 100644 --- a/src/main/java/io/v/nutz/web/commons/controller/FileServerController.java +++ b/src/main/java/io/v/nutz/web/commons/controller/FileServerController.java @@ -6,15 +6,17 @@ import cn.wizzer.framework.base.Result; import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection; import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection; import com.artofsolving.jodconverter.openoffice.converter.StreamOpenOfficeDocumentConverter; +import com.aspose.words.*; import io.v.nutz.sys.models.Sys_file; import io.v.nutz.sys.models.Sys_log; import io.v.nutz.sys.models.Sys_user; -import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.web.commons.slog.SLogService; +import io.v.nutz.web.commons.utils.ShiroUtil; import lombok.extern.slf4j.Slf4j; import net.coobird.thumbnailator.Thumbnails; import org.apache.commons.io.FilenameUtils; import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.jsoup.Jsoup; import org.nutz.boot.starter.ftp.FtpService; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; @@ -40,7 +42,10 @@ import java.nio.file.Files; import java.nio.file.Path; import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.Base64; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * @FileName io.v.nutz.web.commons.controller.FilePreviewController @@ -58,6 +63,8 @@ public class FileServerController { @Inject private PropertiesProxy conf; + private static final String IMG_BASE64_PATTERN = "]*src\\s*=\\s*['\"](data:image/[^'\"]+;base64,[^'\"]+)['\"][^>]*>"; + private static final List IMGTYPES = new ArrayList<>() {{ add("JPG"); add("JPEG"); @@ -377,4 +384,68 @@ public class FileServerController { } + + @At + @AdaptBy(type = UploadAdaptor.class, args = {"ioc:fileUpload"}) + @RequiresAuthentication + @Ok("json") + public Object convertHtml(TempFile file) { + try { + Document doc = new Document(file.getInputStream()); + for (Shape shape : (Iterable) doc.getChildNodes(NodeType.SHAPE, true)) { + if (shape.hasImage()) { + ImageSize imageSize = shape.getImageData().getImageSize(); + shape.setWidth(imageSize.getWidthPoints()); + shape.setHeight(imageSize.getHeightPoints()); + } + } + HtmlSaveOptions saveOptions = new HtmlSaveOptions(); + saveOptions.setExportImagesAsBase64(true); + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + doc.save(bos, saveOptions); + String htmlContent = Jsoup.parse(bos.toString()).body().html(); + + Pattern pattern = Pattern.compile(IMG_BASE64_PATTERN, Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(htmlContent); + StringBuffer sb = new StringBuffer(); + while (matcher.find()) { + String srcValue = matcher.group(1); + String[] parts = srcValue.split(";base64,"); + String base64Content = parts[1]; + try{ + //转为在线地址 base64很喜欢被信息中心拦截 + byte[] imageBytes = Base64.getDecoder().decode(base64Content); + // 获取当前上传时间 + LocalDateTime uploadTime = LocalDateTime.now(); + String folderPath = String.format("/%04d/%02d/%02d/", uploadTime.getYear(), uploadTime.getMonthValue(), uploadTime.getDayOfMonth()); + //文件id + String fileId = R.UU64(); + String filePath = folderPath + fileId + ".png"; + boolean uploadRes = ftpService.upload(folderPath, fileId + ".png", new ByteArrayInputStream(imageBytes)); + + if (uploadRes) { + //上传成功记录到文件表 + Sys_file sys_file = new Sys_file(); + sys_file.setFilename(fileId + ".png"); + sys_file.setFilepath(filePath); + sys_file.setSource(null); + dao.insert(sys_file); + String imgUrl = "/file_server/fileStreamPreview?id=" + sys_file.getId(); + String replacement = ""; + matcher.appendReplacement(sb, Matcher.quoteReplacement(replacement)); + } else { + throw new RuntimeException("上传文件失败"); + } + }catch (Exception e){ + matcher.appendReplacement(sb, Matcher.quoteReplacement("")); + } + } + matcher.appendTail(sb); + return Result.success().addData(sb.toString()); + } catch (Exception e) { + log.error("文件转换HTML异常", e); + throw new RuntimeException("文件读取失败"); + } + } + } diff --git a/src/main/java/io/v/nutz/web/commons/controller/SignatureController.java b/src/main/java/io/v/nutz/web/commons/controller/SignatureController.java index 250e718..8e54607 100644 --- a/src/main/java/io/v/nutz/web/commons/controller/SignatureController.java +++ b/src/main/java/io/v/nutz/web/commons/controller/SignatureController.java @@ -2,11 +2,11 @@ package io.v.nutz.web.commons.controller; import cn.hutool.core.codec.Base64; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.io.IoUtil; import cn.wizzer.framework.base.Result; -import com.aliyun.core.utils.Base64Util; +import io.v.nutz.sys.models.Sys_file; import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.nutz.boot.starter.ftp.FtpService; +import org.nutz.dao.Dao; import org.nutz.integration.jedis.RedisService; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; @@ -28,6 +28,9 @@ import java.io.InputStream; @At("/signature") public class SignatureController { + @Inject + private Dao dao; + @Inject private RedisService redisService; @@ -65,8 +68,18 @@ public class SignatureController { String replaceData = base64.replaceAll("data:image/png;base64,", ""); try (InputStream is = new ByteArrayInputStream(Base64.decode(replaceData))) { - ftpService.upload(todayPath, fileName, is); - redisService.setex(prefix + ":" + id, 60 * 10, fullPath); + boolean uploadRes = ftpService.upload(todayPath, fileName, is); + if (uploadRes) { + //上传成功记录到文件表 + Sys_file sysFile = new Sys_file(); + sysFile.setFilename(fileName); + sysFile.setFilepath(fullPath); + sysFile.setSource(null); + dao.insert(sysFile); + redisService.setex(prefix + ":" + id, 60 * 10, fullPath); + } else { + throw new RuntimeException("上传文件失败"); + } } catch (Exception e) { return Result.error("签字数据上传失败"); } @@ -111,9 +124,18 @@ public class SignatureController { String replaceData = data.replaceAll("data:image/png;base64,", ""); try (InputStream is = new ByteArrayInputStream(Base64.decode(replaceData))) { - ftpService.upload(todayPath, fileName, is); + boolean uploadRes = ftpService.upload(todayPath, fileName, is); + if (uploadRes) { + //上传成功记录到文件表 + Sys_file sysFile = new Sys_file(); + sysFile.setFilename(fileName); + sysFile.setFilepath(fullPath); + sysFile.setSource(null); + dao.insert(sysFile); + } else { + throw new RuntimeException("上传文件失败"); + } } catch (Exception e) { - e.printStackTrace(); return Result.error("签字数据上传失败"); } diff --git a/src/main/java/io/v/nutz/zhgh/data/service/impl/SourceUserServiceImpl.java b/src/main/java/io/v/nutz/zhgh/data/service/impl/SourceUserServiceImpl.java index cadc3d5..82c4421 100644 --- a/src/main/java/io/v/nutz/zhgh/data/service/impl/SourceUserServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/data/service/impl/SourceUserServiceImpl.java @@ -45,6 +45,8 @@ import org.springframework.util.StringUtils; import java.util.*; import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicReference; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; import java.util.stream.Collectors; @@ -124,7 +126,7 @@ public class SourceUserServiceImpl extends ViServiceImpl implements //新增的用户 List needInitUserList = new CopyOnWriteArrayList<>(); //添加角色的用户 - List userRoles = new ArrayList<>(); + List userRoles = new CopyOnWriteArrayList<>(); // 创建一个固定大小的线程池 可以根据服务器性能调整线程池大小 int numberOfThreads = Runtime.getRuntime().availableProcessors() * 2; @@ -172,7 +174,7 @@ public class SourceUserServiceImpl extends ViServiceImpl implements } } - List changeTypes = getChangeTypes(source, user); + List changeTypes = getChangeTypes(source, user, sourceType); if (changeTypes.contains(UserChangeType.NEW)) { user = UserMode.initUser(u); needInitUserList.add(user); @@ -233,35 +235,36 @@ public class SourceUserServiceImpl extends ViServiceImpl implements dao().clear(UserSource.class, Cnd.where("DATE(pullTime)", "<", formatAgoWeekDate)); } - private List getChangeTypes(Sys_user source, Sys_user user) { + private List getChangeTypes(Sys_user source, Sys_user user, String sourceType) { List userChangeTypes = new ArrayList<>(); if (user == null) { userChangeTypes.add(UserChangeType.NEW); - return userChangeTypes; - } - if (!StringUtils.isEmpty(source.getUnitid()) && !source.getUnitid().equals(user.getUnitid())) { - userChangeTypes.add(UserChangeType.UNIT_CHANGE); - } - if (!StringUtils.isEmpty(user.getUserState()) && StrUtil.isNotEmpty(source.getUserState()) && !source.getUserState().equals(user.getUserState())) { - for (UserChangeType value : UserChangeType.values()) { - if (value.getDescription().equals(source.getUserState())) { - userChangeTypes.add(value); + } else { + if ("add".equals(sourceType)) { + return userChangeTypes; + } + if (!StringUtils.isEmpty(source.getUnitid()) && !source.getUnitid().equals(user.getUnitid())) { + userChangeTypes.add(UserChangeType.UNIT_CHANGE); + } + if (StrUtil.isNotBlank(user.getUserState()) && StrUtil.isNotEmpty(source.getUserState()) && !source.getUserState().equals(user.getUserState())) { + for (UserChangeType value : UserChangeType.values()) { + if (value.getDescription().equals(source.getUserState())) { + userChangeTypes.add(value); + } + } + } + List columns = List.of("nation", "birthday", "personType", "political", "schoolTime", "jobTitle", "education", "academicDegree", "position"); + for (String column : columns) { + NutMap userSourceMap = Lang.obj2nutmap(source); + NutMap userMap = Lang.obj2nutmap(user); + String sourceValue = userSourceMap.getString(column, ""); + String value = userMap.getString(column, ""); + if (!sourceValue.equals(value) && StrUtil.isNotBlank(sourceValue)) { + userChangeTypes.add(UserChangeType.BASIC_CHANGE); + break; } } } - - List columns = List.of("nation", "birthday", "personType", "political", "schoolTime", "jobTitle", "education", "academicDegree", "position", "leaveSchoolDate", "retireDate"); - for (String column : columns) { - NutMap userSourceMap = Lang.obj2nutmap(source); - NutMap userMap = Lang.obj2nutmap(user); - String sourceValue = userSourceMap.getString(column, ""); - String value = userMap.getString(column, ""); - if (!sourceValue.equals(value) && StrUtil.isNotBlank(sourceValue)) { - userChangeTypes.add(UserChangeType.BASIC_CHANGE); - break; - } - } - return userChangeTypes; } @@ -300,53 +303,51 @@ public class SourceUserServiceImpl extends ViServiceImpl implements * @param filterColumnDao 部分更新传递(部分更新存在过滤字段) */ private void massUpdatesAsync(List needDoUpdateList, Boolean isPart, AtomicReference filterColumnDao) { - // 根据服务器性能和任务特性动态确定线程池大小;通常,线程池大小为CPU核心数的2倍 + // 创建一个CPU核心数的2倍的线程池 int numberOfThreads = Runtime.getRuntime().availableProcessors() * 2; ExecutorService executorService = Executors.newFixedThreadPool(numberOfThreads); ExecutorCompletionService ecs = new ExecutorCompletionService<>(executorService); - // 每批处理的数据量 - int batchSize = 100; - + int batchSize = 200; + // 共享锁 + Lock lock = new ReentrantLock(); try { - // 将sources分成若干批 for (int i = 0; i < needDoUpdateList.size(); i += batchSize) { final int end = Math.min(i + batchSize, needDoUpdateList.size()); List batch = needDoUpdateList.subList(i, end); - // 提交任务给线程池执行 ecs.submit(() -> { Dao daoToUse = isPart ? filterColumnDao.get() : dao(); - // 执行数据库更新操作 - synchronized (daoToUse) { + lock.lock(); + try { daoToUse.updateIgnoreNull(batch); + } finally { + lock.unlock(); } - return null; // CompletionService需要一个返回值,这里返回null + return null; }); } - // 等待所有任务完成 for (int i = 0; i < needDoUpdateList.size(); i += batchSize) { try { Future future = ecs.take(); - future.get(); // 等待任务完成 + future.get(); } catch (InterruptedException | ExecutionException e) { - Thread.currentThread().interrupt(); // 恢复中断状态 - throw new RuntimeException(e); + Thread.currentThread().interrupt(); + throw new RuntimeException("Error during batch update", e); } } } catch (Exception e) { - e.printStackTrace(); + log.error("Error in massUpdatesAsync", e); + throw new RuntimeException("Error in massUpdatesAsync", e); } finally { - // 关闭线程池 executorService.shutdown(); try { - // 设置合理的超时时间,防止无限期阻塞 if (!executorService.awaitTermination(10, TimeUnit.SECONDS)) { - executorService.shutdownNow(); // 如果超时,强制关闭 + executorService.shutdownNow(); } } catch (InterruptedException e) { - Thread.currentThread().interrupt(); // 恢复中断状态 + Thread.currentThread().interrupt(); } } } diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/Funds/FundsApplyController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/Funds/FundsApplyController.java index d510141..0e10985 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/Funds/FundsApplyController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/Funds/FundsApplyController.java @@ -1,17 +1,17 @@ package io.v.nutz.zhgh.jf.controller.Funds; -import io.v.nutz.zhgh.activity.models.ActivityTissue; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.base.utils.Vi; -import io.v.nutz.zhgh.jf.model.ActivityBx; -import io.v.nutz.zhgh.jf.service.ActivityBxService; import io.v.nutz.base.service.ViService; +import io.v.nutz.base.utils.Vi; import io.v.nutz.sys.models.Sys_club_user; import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.activity.models.ActivityTissue; +import io.v.nutz.zhgh.jf.service.ActivityBxService; import org.apache.shiro.authz.annotation.Logical; 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; @@ -23,8 +23,6 @@ import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; import java.util.Calendar; -import java.util.List; -import java.util.stream.Collectors; /** * @author zhf @@ -44,6 +42,8 @@ public class FundsApplyController { @Inject private Vi vi; @Inject + private Dao dao; + @Inject private ActivityBxService activityBxService; @Inject("ActivityTissue") private ViService tissueViService; @@ -85,6 +85,7 @@ public class FundsApplyController { */ @At @ViReturn + @RequiresPermissions(value = {"sys.jf.Funds.apply","sys.jf.Funds.apply2"},logical = Logical.OR) public Object generateProjectCode(String activity_type) { Cnd cnd = Cnd.NEW(); int year = Calendar.getInstance().get(Calendar.YEAR); @@ -104,13 +105,28 @@ public class FundsApplyController { @At @ViReturn - @RequiresPermissions(value = {"sys.jf.Funds.apply","sys.jf.Funds.apply2"},logical = Logical.OR) + @RequiresPermissions(value = {"sys.jf.Funds.apply","sys.jf.Funds.apply2","sys.jf.reimbursement.apply"},logical = Logical.OR) public Object getCardNumberByPayeeId(String payeeId){ - List query = activityBxService.query(Cnd.where("payeeId", "=", payeeId).desc("apply_time")); - return query.stream().map(v -> { - NutMap map = new NutMap(); - return map.addv("activity_card_number", v.getActivity_card_number()).addv("activity_card_name", v.getActivity_card_name()); - }).collect(Collectors.toList()); + Sql sql = Sqls.create(""" + SELECT + JT.bankName, + JT.bankCardNum + FROM + activity_bx AS bx, + JSON_TABLE( + budgets, + '$[*]' COLUMNS( + payeeId VARCHAR(255) PATH '$.payeeId', + bankName VARCHAR(255) PATH '$.bankName', + bankCardNum VARCHAR(255) PATH '$.bankCardNum' + ) + ) AS JT + WHERE + JT.payeeId = @payeeId + ORDER BY bx.apply_time DESC LIMIT 1 + """).setParam("payeeId", payeeId); + sql.setCallback(Sqls.callback.map()); + dao.execute(sql); + return sql.getResult(); } - } diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/AccountingCon.java b/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/AccountingCon.java index 4191b0b..9065404 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/AccountingCon.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/AccountingCon.java @@ -149,13 +149,13 @@ public class AccountingCon { Sys_user_role sys_user_role = activityBxService.dao().fetch(Sys_user_role.class, Cnd.where("roleId", "=", Roles.GH_WYH_ZX)); if (Lang.isNotEmpty(sys_user_role)) { Sys_user user = activityBxService.dao().fetch(Sys_user.class, sys_user_role.getUserId()); - ////msgApi.sendWxMsg("活动申报", "", "text", aid.getUser_name() + "申报了一条活动【" + aid.getActivity_name() + "】,请前往智慧工会进行审核。", List.of(user.getLoginname()), null); + msgApi.sendWxMsg("活动申报", "", "text", aid.getUser_name() + "申报了一条活动【" + aid.getActivity_name() + "】,请前往智慧工会进行审核。", List.of(user.getLoginname()), null); FundsToHandler.CREATE_SCHOOL_TASK.exec(aid.getId(), null, List.of(user.getLoginname())); } } else { nodeName = "校工会负责人拒绝"; Sys_user user = activityBxService.dao().fetch(Sys_user.class, aid.getUser_id()); - ////msgApi.sendWxMsg("活动申报", "", "text", "您申报的活动【" + aid.getActivity_name() + "】被校工会负责人拒绝,审核意见:" + aid.getAccounting_idea(), List.of(user.getLoginname()), null); + msgApi.sendWxMsg("活动申报", "", "text", "您申报的活动【" + aid.getActivity_name() + "】被校工会负责人拒绝,审核意见:" + aid.getAccounting_idea(), List.of(user.getLoginname()), null); FundsToHandler.REFUSE_TASK.exec(aid.getId(), new NutMap().addv("option", nodeName), null); } FundsToHandler.COMPLETE_SCHOOL_FZR_TASK.exec(aid.getId(), new NutMap().addv("option", nodeName), null); diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/ActivitybxAgentController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/ActivitybxAgentController.java index 9562a35..7eb0ec3 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/ActivitybxAgentController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/ActivitybxAgentController.java @@ -2,8 +2,8 @@ package io.v.nutz.zhgh.jf.controller.activitybx; import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.utils.Vi; -import io.v.nutz.zhgh.jf.service.ActivityBxService; import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.jf.service.ActivityBxService; import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/ApplyController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/ApplyController.java index fd542ba..7587ed0 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/ApplyController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/ApplyController.java @@ -1,19 +1,22 @@ package io.v.nutz.zhgh.jf.controller.activitybx; +import cn.hutool.core.util.StrUtil; +import cn.wizzer.framework.base.Result; import cn.wizzer.framework.base.service.BaseService; import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.utils.DateUtil; import io.v.nutz.base.utils.MsgApi; import io.v.nutz.base.utils.Roles; import io.v.nutz.base.utils.Vi; -import io.v.nutz.zhgh.jf.handle.funds.FundsToHandler; -import io.v.nutz.zhgh.jf.model.ActivityBx; -import io.v.nutz.zhgh.jf.service.ActivityBxService; import io.v.nutz.sys.models.Sys_signature; import io.v.nutz.sys.models.Sys_user; import io.v.nutz.sys.models.Sys_user_role; import io.v.nutz.sys.services.SysSignatureService; import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.jf.handle.funds.FundsToHandler; +import io.v.nutz.zhgh.jf.model.ActivityBx; +import io.v.nutz.zhgh.jf.service.ActivityBxService; +import org.apache.shiro.authz.annotation.Logical; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; @@ -73,13 +76,37 @@ public class ApplyController { @At @ViReturn @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions(value = {"sys.jf.Funds.apply","sys.jf.Funds.apply2","sys.jf.reimbursement.apply","sys.jf.activity_bx.apply"},logical = Logical.OR) + public Object doSave(@Param("activityBx") ActivityBx activityBx, @Param("sign") String sign) { + activityBx.setState_id("999"); + activityBx.setYear(activityBx.getYear() != null ? activityBx.getYear() : DateUtil.getYear()); + activityBx.setApply_time(StrUtil.isNotBlank(activityBx.getApply_time()) ? activityBx.getApply_time() : DateUtil.getDateTime()); + activityBx.setUser_id(StrUtil.isNotBlank(activityBx.getUser_id()) ? activityBx.getUser_id() : ShiroUtil.getUserId()); + if (Strings.isNotBlank(sign)) { + activityBx.setUser_signature(sysSignatureService.insert(new Sys_signature(sign)).getId()); + } + if (StrUtil.isNotBlank(activityBx.getId())) { + activityBxService.update(activityBx); + } else { + activityBxService.doAdd(activityBx); + } + return null; + } + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions(value = {"sys.jf.Funds.apply","sys.jf.Funds.apply2","sys.jf.reimbursement.apply","sys.jf.activity_bx.apply"},logical = Logical.OR) public Object doAdd(@Param("activityBx") ActivityBx activityBx, @Param("sign") String sign) { List loginNames = new ArrayList<>(); - activityBx.setYear(Calendar.getInstance().get(Calendar.YEAR)); + activityBx.setYear(activityBx.getYear() != null ? activityBx.getYear() : DateUtil.getYear()); if (activityBx.getActivity_type() == 40001) { + // 校工会活动 activityBx.setState_id("1020"); - loginNames.add("8333300107"); + loginNames.add("1019911404"); } else if (activityBx.getActivity_type() == 40002) { + // 分工会活动 activityBx.setState_id("1010"); Sys_user_role sys_user_role = activityBxService.dao().fetch(Sys_user_role.class, Cnd.where("roleId", "=", Roles.GH01).and("unionid", "=", Vi.getUnionId())); if (Lang.isNotEmpty(sys_user_role)) { @@ -87,6 +114,7 @@ public class ApplyController { loginNames.add(user.getLoginname()); } } else if (activityBx.getActivity_type() == 40003) { + // 协会活动 Sys_user_role sys_user_role = activityBxService.dao().fetch(Sys_user_role.class, Cnd.where("roleId", "=", Roles.club01).and("stid", "=", activityBx.getClubId())); if (Lang.isNotEmpty(sys_user_role)) { Sys_user user = activityBxService.dao().fetch(Sys_user.class, sys_user_role.getUserId()); @@ -96,8 +124,8 @@ public class ApplyController { } else { activityBx.setState_id("1010"); } - activityBx.setApply_time(DateUtil.getDateTime()); - activityBx.setUser_id(ShiroUtil.getPrincipalProperty("id").toString()); + activityBx.setApply_time(StrUtil.isNotBlank(activityBx.getApply_time()) ? activityBx.getApply_time() : DateUtil.getDateTime()); + activityBx.setUser_id(StrUtil.isNotBlank(activityBx.getUser_id()) ? activityBx.getUser_id() : ShiroUtil.getUserId()); if (Strings.isNotBlank(sign)) { activityBx.setUser_signature(sysSignatureService.insert(new Sys_signature(sign)).getId()); } @@ -125,14 +153,29 @@ public class ApplyController { @At @ViReturn @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions(value = {"sys.jf.Funds.apply","sys.jf.Funds.apply2","sys.jf.reimbursement.apply","sys.jf.activity_bx.apply"},logical = Logical.OR) public Object doEdit(@Param("activityBx") ActivityBx activityBx, @Param("sign") String sign) { + List loginNames = new ArrayList<>(); + ActivityBx oldActivity = activityBxService.dao().fetch(ActivityBx.class, activityBx.getId()); activityBx.setYear(Calendar.getInstance().get(Calendar.YEAR)); if (activityBx.getActivity_type() == 40001) { activityBx.setState_id("1020"); + loginNames.add("1019911404"); } else if (activityBx.getActivity_type() == 40002) { activityBx.setState_id("1010"); + Sys_user_role sys_user_role = activityBxService.dao().fetch(Sys_user_role.class, Cnd.where("roleId", "=", Roles.GH01).and("unionid", "=", Vi.getUnionId())); + if (Lang.isNotEmpty(sys_user_role)) { + Sys_user user = activityBxService.dao().fetch(Sys_user.class, sys_user_role.getUserId()); + loginNames.add(user.getLoginname()); + } } else if (activityBx.getActivity_type() == 40003) { activityBx.setState_id("1000"); + // 协会活动 + Sys_user_role sys_user_role = activityBxService.dao().fetch(Sys_user_role.class, Cnd.where("roleId", "=", Roles.club01).and("stid", "=", activityBx.getClubId())); + if (Lang.isNotEmpty(sys_user_role)) { + Sys_user user = activityBxService.dao().fetch(Sys_user.class, sys_user_role.getUserId()); + loginNames.add(user.getLoginname()); + } } else { activityBx.setState_id("1010"); } @@ -141,20 +184,50 @@ public class ApplyController { if (Strings.isNotBlank(sign)) { activityBx.setUser_signature(sysSignatureService.insert(new Sys_signature(sign)).getId()); } + + if ("1025".equals(oldActivity.getState_id()) || "1045".equals(oldActivity.getState_id()) ) { + activityBx.setState_id("1025".equals(oldActivity.getState_id()) ? "1020" : "1040"); + } activityBxService.doEdit(activityBx); + NutMap map = new NutMap(); + map.setv("userId",activityBx.getUser_id()); + map.setv("activityName",activityBx.getActivity_name()); + FundsToHandler.START_PROCESS.exec(activityBx.getId(),map,loginNames); -// FundsToHandler.START_PROCESS.exec(activityBx.getId(),NutMap.NEW().addv("userId",ShiroUtil.getUserId()),null); -// -// if (activityBx.getActivity_type() == 40001) { -//// FundsToHandler.CREATE_SCHOOL_FZR_TASK.exec(activityBx.getId(),NutMap.NEW().addv("userId",ShiroUtil.getUserId()),loginNames); -// } else if (activityBx.getActivity_type() == 40002) { -// FundsToHandler.CREATE_UNION_TASK.exec(activityBx.getId(),NutMap.NEW().addv("userId",ShiroUtil.getUserId()),List.of("1019971597")); -// } else if (activityBx.getActivity_type() == 40003) { -//// FundsToHandler.CREATE_CLUB_TASK.exec(activityBx.getId(),NutMap.NEW().addv("userId",ShiroUtil.getUserId()),loginNames); -// } + if ("999".equals(activityBx.getState_id())) { + + if (activityBx.getActivity_type() == 40001) { + FundsToHandler.CREATE_SCHOOL_FZR_TASK.exec(activityBx.getId(),NutMap.NEW().addv("userId",ShiroUtil.getUserId()),loginNames); + } else if (activityBx.getActivity_type() == 40002) { + FundsToHandler.CREATE_UNION_TASK.exec(activityBx.getId(),NutMap.NEW().addv("userId",ShiroUtil.getUserId()),List.of("1019971597")); + } else if (activityBx.getActivity_type() == 40003) { + FundsToHandler.CREATE_CLUB_TASK.exec(activityBx.getId(),NutMap.NEW().addv("userId",ShiroUtil.getUserId()),loginNames); + } + } return null; } + + @At + @RequiresPermissions(value = {"sys.jf.Funds.apply","sys.jf.Funds.apply2","sys.jf.reimbursement.apply","sys.jf.activity_bx.apply"},logical = Logical.OR) + public Object checkActivity(String activityName, String activityType) { + List list = new ArrayList<>(); + list.add("999"); + switch (activityType) { + case "40001": list.add("1020"); + case "40002": list.add("1010"); + case "40003": list.add("1000"); + } + + ActivityBx activityBx = baseService.dao().fetch(ActivityBx.class, Cnd.where("activity_name", "=", activityName) + .and("user_id", "=", ShiroUtil.getUserId()).and("activity_type", "=", activityType) + .and("state_id", "in", list).desc("apply_time")); + if (Lang.isNotEmpty(activityBx)) { + return Result.success().addData(activityBx); + } else { + return Result.error(); + } + } } diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/AssociationCon.java b/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/AssociationCon.java index 2313390..d53e1da 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/AssociationCon.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/AssociationCon.java @@ -131,12 +131,12 @@ public class AssociationCon { String nodeName = ""; if (flag) { - ////msgApi.sendWxMsg("活动申报", "", "text", aid.getUser_name() + "申报了一条活动【" + aid.getActivity_name() + "】,请前往智慧工会进行审核。", List.of("1019911404"), null); - FundsToHandler.CREATE_SCHOOL_FZR_TASK.exec(id, new NutMap().addv("userId", aid.getUser_id()), List.of("8333300107")); + msgApi.sendWxMsg("活动申报", "", "text", aid.getUser_name() + "申报了一条活动【" + aid.getActivity_name() + "】,请前往智慧工会进行审核。", List.of("1019911404"), null); + FundsToHandler.CREATE_SCHOOL_FZR_TASK.exec(id, new NutMap().addv("userId", aid.getUser_id()), List.of("1019911404")); nodeName = "校工会负责人审核"; } else { Sys_user user = activityBxService.dao().fetch(Sys_user.class, aid.getUser_id()); - ////msgApi.sendWxMsg("活动申报", "", "text", "您申报的活动【" + aid.getActivity_name() + "】被协会拒绝,审核意见:" + aid.getAssociation_principal_idea(), List.of(user.getLoginname()), null); + msgApi.sendWxMsg("活动申报", "", "text", "您申报的活动【" + aid.getActivity_name() + "】被协会拒绝,审核意见:" + aid.getAssociation_principal_idea(), List.of(user.getLoginname()), null); nodeName = "协会审核拒绝"; FundsToHandler.REFUSE_TASK.exec(id, new NutMap().addv("option", nodeName), null); } diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/CashierCon.java b/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/CashierCon.java index ceec7ca..31fdfc8 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/CashierCon.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/CashierCon.java @@ -3,11 +3,11 @@ package io.v.nutz.zhgh.jf.controller.activitybx; 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.zhgh.jf.model.ActivityBx; -import io.v.nutz.zhgh.jf.service.ActivityBxService; import io.v.nutz.sys.models.Sys_signature; import io.v.nutz.sys.services.SysSignatureService; import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.jf.model.ActivityBx; +import io.v.nutz.zhgh.jf.service.ActivityBxService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/ConfirmCon.java b/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/ConfirmCon.java index ecbf3eb..c039e96 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/ConfirmCon.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/ConfirmCon.java @@ -3,11 +3,11 @@ package io.v.nutz.zhgh.jf.controller.activitybx; 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.zhgh.jf.model.ActivityBx; -import io.v.nutz.zhgh.jf.service.ActivityBxService; import io.v.nutz.sys.models.Sys_signature; import io.v.nutz.sys.services.SysSignatureService; import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.jf.model.ActivityBx; +import io.v.nutz.zhgh.jf.service.ActivityBxService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/DivisionCon.java b/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/DivisionCon.java index 25cd605..2abc840 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/DivisionCon.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/DivisionCon.java @@ -3,11 +3,9 @@ package io.v.nutz.zhgh.jf.controller.activitybx; import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.utils.DateUtil; import io.v.nutz.base.utils.MsgApi; -import io.v.nutz.base.utils.Roles; import io.v.nutz.base.utils.Vi; import io.v.nutz.sys.models.Sys_signature; import io.v.nutz.sys.models.Sys_user; -import io.v.nutz.sys.models.Sys_user_role; import io.v.nutz.sys.services.SysSignatureService; import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.jf.handle.funds.FundsToHandler; @@ -21,7 +19,6 @@ 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.Lang; import org.nutz.lang.Strings; import org.nutz.lang.util.NutMap; import org.nutz.mvc.annotation.At; @@ -141,14 +138,14 @@ public class DivisionCon { // Sys_user_role sys_user_role = activityBxService.dao().fetch(Sys_user_role.class, Cnd.where("roleId", "=", Roles.GH_WYH_ZX)); // if (Lang.isNotEmpty(sys_user_role)) { // Sys_user user = activityBxService.dao().fetch(Sys_user.class, sys_user_role.getUserId()); - Sys_user user = activityBxService.dao().fetch(Sys_user.class, Cnd.where("loginname","=","8333300107")); - //msgApi.sendWxMsg("活动申报", "", "text", aid.getUser_name() + "申报了一条活动【" + aid.getActivity_name() + "】,请前往智慧工会进行审核。", List.of(user.getLoginname()), null); + Sys_user user = activityBxService.dao().fetch(Sys_user.class, Cnd.where("loginname","=","1019911404")); + msgApi.sendWxMsg("活动申报", "", "text", aid.getUser_name() + "申报了一条活动【" + aid.getActivity_name() + "】,请前往智慧工会进行审核。", List.of(user.getLoginname()), null); FundsToHandler.CREATE_SCHOOL_FZR_TASK.exec(id, null, List.of(user.getLoginname())); // } } else { nodeName = "基层工会主席拒绝"; Sys_user user = activityBxService.dao().fetch(Sys_user.class, aid.getUser_id()); - //msgApi.sendWxMsg("活动申报", "", "text", "您申报的活动【" + aid.getActivity_name() + "】被基层工会主席拒绝,审核意见:" + aid.getDivision_chairman_idea(), List.of(user.getLoginname()), null); + msgApi.sendWxMsg("活动申报", "", "text", "您申报的活动【" + aid.getActivity_name() + "】被基层工会主席拒绝,审核意见:" + aid.getDivision_chairman_idea(), List.of(user.getLoginname()), null); FundsToHandler.REFUSE_TASK.exec(id, new NutMap().addv("option", nodeName), null); } FundsToHandler.COMPLETE_UNION_TASK.exec(id, new NutMap().addv("option", nodeName), null); 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 a6092fb..99efffb 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 @@ -3,15 +3,16 @@ package io.v.nutz.zhgh.jf.controller.activitybx; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; import cn.wizzer.framework.base.service.BaseService; import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.config.Configure; import com.deepoove.poi.data.PictureRenderData; +import com.deepoove.poi.policy.HackLoopTableRenderPolicy; import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.model.Goods; import io.v.nutz.base.utils.DateUtil; import io.v.nutz.base.utils.Html2Text; -import io.v.nutz.base.utils.Roles; import io.v.nutz.base.utils.Vi; import io.v.nutz.sys.models.Sys_signature; import io.v.nutz.sys.services.SysSignatureService; @@ -35,7 +36,6 @@ 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 org.nutz.trans.Trans; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @@ -44,6 +44,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.util.Base64; import java.util.Calendar; +import java.util.List; /** * @author zhf @@ -142,20 +143,6 @@ public class ReimbursementCon { $condition """); - sql.setParam("role1", Roles.CLUB_FZR); - sql.setParam("role2", Roles.UNION_MANGER); - sql.setParam("role3", Roles.XGH_HD); - sql.setParam("role4", Roles.GH_WYH_FZX); - sql.setParam("role5", Roles.GH_WYH_CWFZX); - sql.setParam("role6", Roles.XGHCN); - sql.setParam("state1", 1000); - sql.setParam("state2", 1010); - sql.setParam("state3", 1020); - sql.setParam("state4", 1030); - sql.setParam("state5", 1040); - sql.setParam("state6", 1050); - - Cnd cnd = Cnd.NEW(); if (!ShiroUtil.hasAnyRoles("sysadmin")) { cnd.and("bx.user_id", "=", ShiroUtil.getPrincipalProperty("id")); @@ -172,7 +159,6 @@ public class ReimbursementCon { } Vi.cndPlus(cnd, "bxr.unitid", "=", unitId); Vi.cndPlus(cnd, "bxr.unionid", "=", unionId); - Vi.cndPlus(cnd, "bx.apply_type", "=", apply_type); sql.setCondition(cnd); return activityBxService.listPageMap(pageNumber, pageSize, sql); } @@ -237,6 +223,11 @@ public class ReimbursementCon { one.setv("money_big", Convert.digitToChinese(one.getDouble("activity_money"))); one.setv("apply_time", one.getString("apply_time").substring(0, 10)); + String budgets = one.getString("budgets"); + List goods = JSONUtil.parseArray(budgets).toList(NutMap.class); + + one.put("goods",goods); + if (one.getString("activity_type").equals("40001")) { one.setv("jfName", "校工会"); } else if (one.getString("activity_type").equals("40002")) { @@ -251,7 +242,6 @@ public class ReimbursementCon { BigDecimal priceBigDecimal = new BigDecimal(price); BigDecimal moneyDecimal = priceBigDecimal.subtract(new BigDecimal(money_int)); - double money_decimal = money_int - price; one.setv("one", money_int >= 1000000 ? (money_int / 1000000) % 10 : null); one.setv("two", money_int >= 100000 ? (money_int / 100000) % 10 : null); one.setv("three", money_int >= 10000 ? (money_int / 10000) % 10 : null); @@ -260,10 +250,16 @@ public class ReimbursementCon { one.setv("six", money_int >= 10 ? (money_int / 10) % 10 : null); one.setv("seven", money_int >= 1 ? money_int % 10 : null); - BigDecimal decimalPart1 = moneyDecimal.divide(new BigDecimal("1"), 1, RoundingMode.HALF_UP); - BigDecimal decimalPart2 = moneyDecimal.divide(new BigDecimal("0.1"), 1, RoundingMode.HALF_UP); - one.setv("eight", decimalPart1.movePointRight(1).intValueExact()); - one.setv("nine", decimalPart2.movePointRight(1).intValueExact()); + // 提取小数部分的各个位上的数值 + BigDecimal tenthsPart = moneyDecimal.multiply(BigDecimal.TEN).setScale(0, RoundingMode.DOWN); + int tenths = tenthsPart.intValue(); + BigDecimal hundredthsPart = moneyDecimal.multiply(BigDecimal.valueOf(100)).setScale(0, RoundingMode.DOWN); + int hundredths = hundredthsPart.intValue(); + +// BigDecimal decimalPart1 = moneyDecimal.divide(new BigDecimal("1"), 1, RoundingMode.HALF_UP); +// BigDecimal decimalPart2 = moneyDecimal.divide(new BigDecimal("0.1"), 1, RoundingMode.HALF_UP); + one.setv("eight", (tenths % 10)); + one.setv("nine", (hundredths % 10) + 1); /*基层工会主席签字*/ @@ -308,7 +304,9 @@ public class ReimbursementCon { String fileName = Globals.schoolName + "【" + one.getString("activity_name") + "】报销凭证"; - Configure config = Configure.newBuilder().build(); + HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy(); + Configure config = Configure.newBuilder().bind("goods", policy).build(); + InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("docTemplate/funds3.docx"); response.addHeader("Content-Type", "application/octet-stream"); response.addHeader("Content-Disposition", "attachment; filename=\"" + new String(fileName.getBytes("UTF-8"), "ISO-8859-1") + "\".docx"); 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 4ef3b34..ed27822 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 @@ -1,6 +1,7 @@ package io.v.nutz.zhgh.jf.controller.activitybx; import cn.afterturn.easypoi.excel.annotation.Excel; +import cn.hutool.json.JSONUtil; import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.config.Configure; import com.deepoove.poi.data.PictureRenderData; @@ -8,11 +9,11 @@ import com.deepoove.poi.policy.HackLoopTableRenderPolicy; import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.utils.Html2Text; import io.v.nutz.base.utils.Vi; -import io.v.nutz.zhgh.jf.model.ActivityBx; -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 io.v.nutz.zhgh.jf.model.ActivityBx; +import io.v.nutz.zhgh.jf.service.ActivityBxService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; @@ -137,7 +138,11 @@ public class ReimbursementViewCon { NutMap nutMap = activityBxService.queryOne(id); nutMap.setv("activity_content", Html2Text.toPlainText(nutMap.getString("activity_content"))); nutMap.setv("apply_time", nutMap.getString("apply_time").substring(0, 10)); - List goods = nutMap.getAsList("Goods", NutMap.class); + + String budgets = nutMap.getString("budgets"); + List goods = JSONUtil.parseArray(budgets).toList(NutMap.class); + +// List goods = nutMap.getAsList("budgets", NutMap.class); for (int i = 0; i < goods.size(); i++) { goods.get(i).put("ranking", i + 1); diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/UnionCon.java b/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/UnionCon.java index 0d5bd2d..81b8255 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/UnionCon.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/activitybx/UnionCon.java @@ -151,7 +151,7 @@ public class UnionCon { String nodeName = ""; if (nutMap.getBoolean("flag")) { User user = activityBxService.dao().fetch(User.class, Cnd.where("id", "=", aid.getUser_id())); - //msgApi.sendWxMsg("活动申报", "", "text", "您申报的活动【" + aid.getActivity_name() + "】已审核通过,请前往智慧工会进行查看。", List.of(user.getLoginname()), null); + msgApi.sendWxMsg("活动申报", "", "text", "您申报的活动【" + aid.getActivity_name() + "】已审核通过,请前往智慧工会进行查看。", List.of(user.getLoginname()), null); if (aid.getActivity_id() == null) { @@ -161,12 +161,11 @@ public class UnionCon { activityTissue.setType(aid.getActivity_type()); activityTissue.setActivityCode(aid.getProjectCode()); activityTissue.setName(aid.getActivity_name()); - activityTissue.setUserId(ShiroUtil.getUserId()); + activityTissue.setUserId(aid.getUser_id()); activityTissue.setStartPlannedDate(aid.getStartPlannedDate()); activityTissue.setEndPlannedDate(aid.getEndPlannedDate()); activityTissue.setStartTime(aid.getStartTime()); activityTissue.setEndTime(aid.getEndTime()); - activityTissue.setUserId(ShiroUtil.getUserId()); activityTissue.setAddress(aid.getAddress()); if (aid.getActivity_type() == 40002) { activityTissue.setUnionId(user.getUnionid()); @@ -180,7 +179,7 @@ public class UnionCon { nodeName = "审核通过"; } else { Sys_user user = activityBxService.dao().fetch(Sys_user.class, aid.getUser_id()); - //msgApi.sendWxMsg("活动申报", "", "text", "您申报的活动【" + aid.getActivity_name() + "】被校工会主席拒绝,审核意见:" + aid.getUnion_chairman_idea(), List.of(user.getLoginname()), null); + msgApi.sendWxMsg("活动申报", "", "text", "您申报的活动【" + aid.getActivity_name() + "】被校工会主席拒绝,审核意见:" + aid.getUnion_chairman_idea(), List.of(user.getLoginname()), null); FundsToHandler.REFUSE_TASK.exec(aid.getId(), new NutMap().addv("option", nodeName), null); } activityBxService.update(aid); diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/club/ClubDataInputController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/club/ClubDataInputController.java index a6ab54a..7b0aca2 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/club/ClubDataInputController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/club/ClubDataInputController.java @@ -3,10 +3,10 @@ package io.v.nutz.zhgh.jf.controller.club; import cn.afterturn.easypoi.excel.ExcelImportUtil; import cn.afterturn.easypoi.excel.entity.ImportParams; import cn.wizzer.framework.base.Result; -import io.v.nutz.zhgh.jf.model.jf_club; -import io.v.nutz.zhgh.jf.service.jfClubService; import io.v.nutz.sys.models.Sys_club; import io.v.nutz.sys.services.SysClubService; +import io.v.nutz.zhgh.jf.model.jf_club; +import io.v.nutz.zhgh.jf.service.jfClubService; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.util.NutMap; diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/club/clubTzController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/club/clubTzController.java index 9ddd9cf..6367937 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/club/clubTzController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/club/clubTzController.java @@ -5,9 +5,9 @@ import cn.wizzer.framework.page.Pagination; import io.v.nutz.base.utils.ExcelUtil; import io.v.nutz.base.utils.PageUtil; import io.v.nutz.base.utils.Roles; -import io.v.nutz.zhgh.jf.service.jfClubService; import io.v.nutz.sys.models.Sys_user_role; import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.jf.service.jfClubService; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.apache.shiro.authz.annotation.RequiresPermissions; diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/costsSet/CostsSetController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/costsSet/CostsSetController.java index 6ad36af..8ac9842 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/costsSet/CostsSetController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/costsSet/CostsSetController.java @@ -2,15 +2,15 @@ package io.v.nutz.zhgh.jf.controller.costsSet; import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.utils.DateUtil; +import io.v.nutz.sys.models.Sys_club; +import io.v.nutz.sys.models.Sys_union; +import io.v.nutz.sys.services.SysClubService; +import io.v.nutz.sys.services.SysUnionService; import io.v.nutz.zhgh.jf.model.CostsSet; import io.v.nutz.zhgh.jf.model.jf_club; import io.v.nutz.zhgh.jf.model.jf_school; import io.v.nutz.zhgh.jf.model.jf_yjgh; import io.v.nutz.zhgh.jf.service.CostsSetService; -import io.v.nutz.sys.models.Sys_club; -import io.v.nutz.sys.models.Sys_union; -import io.v.nutz.sys.services.SysClubService; -import io.v.nutz.sys.services.SysUnionService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; import org.nutz.ioc.loader.annotation.Inject; diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/financial/FinancialImportController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/financial/FinancialImportController.java index 3ea32d9..02b2cbe 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/financial/FinancialImportController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/financial/FinancialImportController.java @@ -9,17 +9,16 @@ import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.result.Result; import io.v.nutz.base.service.BaseService; +import io.v.nutz.base.utils.ViTool; +import io.v.nutz.sys.models.Sys_club; +import io.v.nutz.sys.models.Sys_union; +import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.jf.mode.FinancialImportExcelMode; import io.v.nutz.zhgh.jf.model.jf_club; import io.v.nutz.zhgh.jf.model.jf_use; import io.v.nutz.zhgh.jf.model.jf_yjgh; -import io.v.nutz.sys.models.Sys_club; -import io.v.nutz.sys.models.Sys_union; -import io.v.nutz.base.utils.ViTool; -import io.v.nutz.web.commons.utils.ShiroUtil; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.Workbook; -import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Chain; diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/jfbx/bxshController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/jfbx/bxshController.java index 57c3b1a..21e02ea 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/jfbx/bxshController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/jfbx/bxshController.java @@ -3,11 +3,11 @@ package io.v.nutz.zhgh.jf.controller.jfbx; import cn.wizzer.framework.base.Result; import cn.wizzer.framework.page.Pagination; import io.v.nutz.base.utils.DateUtil; -import io.v.nutz.zhgh.jf.model.jf_bxyy; -import io.v.nutz.zhgh.jf.service.jfBxYyFjService; import io.v.nutz.sys.models.Sys_user; import io.v.nutz.sys.services.SysUserService; import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.jf.model.jf_bxyy; +import io.v.nutz.zhgh.jf.service.jfBxYyFjService; import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/jfbx/bxyyController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/jfbx/bxyyController.java index 361e1f5..c18efdd 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/jfbx/bxyyController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/jfbx/bxyyController.java @@ -4,12 +4,12 @@ import cn.wizzer.framework.base.Result; import cn.wizzer.framework.base.service.BaseService; import cn.wizzer.framework.page.Pagination; import io.v.nutz.base.utils.DateUtil; -import io.v.nutz.zhgh.jf.model.jf_bxyy; -import io.v.nutz.zhgh.jf.model.jf_bxyy_fj; import io.v.nutz.sys.models.Sys_file; import io.v.nutz.sys.models.Sys_user; import io.v.nutz.web.commons.utils.DocConverter; import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.jf.model.jf_bxyy; +import io.v.nutz.zhgh.jf.model.jf_bxyy_fj; import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.boot.starter.ftp.FtpService; diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/jsTzController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/jsTzController.java index 9815d87..0627645 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/jsTzController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/jsTzController.java @@ -5,12 +5,12 @@ 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.PageUtil; +import io.v.nutz.sys.models.Sys_user; +import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.jf.model.jf_club; import io.v.nutz.zhgh.jf.model.jf_use; import io.v.nutz.zhgh.jf.model.jf_yjgh; import io.v.nutz.zhgh.jf.service.ActivityBxService; -import io.v.nutz.sys.models.Sys_user; -import io.v.nutz.web.commons.utils.ShiroUtil; import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; 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 cae3c84..a96b897 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 @@ -1,15 +1,17 @@ package io.v.nutz.zhgh.jf.controller.reimbursement; 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.web.commons.utils.ShiroUtil; 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; -import io.v.nutz.web.commons.utils.ShiroUtil; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; +import org.nutz.dao.util.cri.SqlExpressionGroup; import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; @@ -18,15 +20,17 @@ import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; +import java.util.List; + /** * @version 1.0 * @Author zzr * @name:ActivityReimbursementApplyController * @Date 2024/4/26 14:58 * @注释 活动报销,报销申请 - * 校工会活动——>校工会负责人(姜学军)审核——>校工会主席审核——>流程结束 - * 基层工会活动——>基层工会主席审核——>校工会负责人(姜学军)审核——>校工会主席审核——>流程结束 - * 协会活动——>协会负责人审核——>校工会负责人(姜学军)审核——>校工会主席审核——>流程结束 + * 校工会活动——>校工会负责人(姜学军)审核——>校工会主席审核——>流程结束 + * 基层工会活动——>基层工会主席审核——>校工会负责人(姜学军)审核——>校工会主席审核——>流程结束 + * 协会活动——>协会负责人审核——>校工会负责人(姜学军)审核——>校工会主席审核——>流程结束 */ @IocBean @Ok("json:full") @@ -39,63 +43,92 @@ public class ActivityReimbursementApplyController { @At("") @Ok("beetl:/platform/jf/reimbursement/apply.html") @RequiresPermissions("sys.jf.reimbursement.apply") - public void index() {} + public void index() { + } @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){ + 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()); + } + + activityBx.setFiles(null); + activityBx.setActivity_content(null); + activityBx.setReimbursement_state_id(999); + activityBxService.updateIgnoreNull(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) { int count = activityBxService.count(Cnd.where("id", "=", activityBx.getId())); - switch (activityBx.getActivity_type()){ + 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); } + List budgets = activityBx.getBudgets(); + double sum = budgets.stream().mapToDouble(ActivityBx.Budget::getActualPrice).sum(); + activityBx.setActivity_money(sum); activityBx.setReimbursement_apply_time(DateUtil.today()); - if (StrUtil.isNotBlank(activityBx.getId()) && count>0){ + if (StrUtil.isNotBlank(activityBx.getId()) && count > 0) { activityBx.setFiles(null); activityBx.setActivity_content(null); activityBxService.updateIgnoreNull(activityBx); } else { - activityBxService.doAdd(activityBx); +// activityBxService.doAdd(activityBx); } NutMap map = new NutMap(); - map.put("userId",ShiroUtil.getUserId()); + map.put("userId", ShiroUtil.getUserId()); //流程开始 - ReimbursementToHandler.START_PROCESS.exec(activityBx.getId(),map); + ReimbursementToHandler.START_PROCESS.exec(activityBx.getId(), map); if (activityBx.getActivity_type() == 40001) { //校工会申请,校工会负责人审核 ReimbursementToHandler.CREATE_SCHOOL_DIRECTOR_TASK.exec(activityBx.getId(), map); } else if (activityBx.getActivity_type() == 40002) { //分工会 - ReimbursementToHandler.CREATE_UNION_TASK.exec(activityBx.getId(),map); + ReimbursementToHandler.CREATE_UNION_TASK.exec(activityBx.getId(), map); } else if (activityBx.getActivity_type() == 40003) { //协会 - ReimbursementToHandler.CREATE_CLUB_TASK.exec(activityBx.getId(),map); + ReimbursementToHandler.CREATE_CLUB_TASK.exec(activityBx.getId(), map); } return null; } - @At @ViReturn @RequiresPermissions("sys.jf.reimbursement.apply") - public Object getActivityReimbursementByUser(){ + public Object getActivityReimbursementByUser() { Cnd cnd = Cnd.NEW(); cnd.and("state_id", "=", 1060); - cnd.andEX("`year`","=",DateUtil.thisYear()); - cnd.and(Cnd.exps("reimbursement_state_id","is",null).or("reimbursement_state_id","=","")); - cnd.and(Cnd.exps("reimbursement_state_id","is",null).or("reimbursement_state_id","=","")); - if (!ShiroUtil.hasAnyRoles("sysadmin")){ - cnd.and("user_id","=",ShiroUtil.getUserId()); + cnd.andEX("`year`", "=", DateUtil.thisYear()); + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.or("reimbursement_state_id", "in", List.of(1005, 1015, 1025, 1045)); + seg.or("reimbursement_union_audit_id", "is", null); + cnd.and(seg); +// cnd.and("reimbursement_unit_secretary_audit_id", "is", null); +// cnd.and("reimbursement_finance_audit_id", "is", null); +// cnd.and("reimbursement_school_director_id", "is", null); +// cnd.and("reimbursement_school_chairman_id", "is", null); + if (!ShiroUtil.hasAnyRoles("sysadmin")) { + cnd.and("user_id", "=", ShiroUtil.getUserId()); } return activityBxService.query(cnd); } @@ -104,7 +137,7 @@ public class ActivityReimbursementApplyController { @At @ViReturn @RequiresPermissions("sys.jf.reimbursement.apply") - public Object findOne(String id){ + public Object findOne(String id) { return activityBxService.queryOne(id); } } diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementBoardController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementBoardController.java index e7c43ac..44f0abb 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementBoardController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementBoardController.java @@ -2,9 +2,7 @@ package io.v.nutz.zhgh.jf.controller.reimbursement; import cn.hutool.core.date.DateUtil; import cn.wizzer.framework.base.Result; -import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.utils.Vi; -import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.jf.service.ActivityBxService; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -19,8 +17,10 @@ import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; -import java.util.*; -import java.util.stream.Collectors; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * @version 1.0 diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementClubChairmanController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementClubChairmanController.java index d0bc4ff..7ab546d 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementClubChairmanController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementClubChairmanController.java @@ -3,18 +3,17 @@ package io.v.nutz.zhgh.jf.controller.reimbursement; import cn.hutool.core.util.StrUtil; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.base.utils.Vi; -import io.v.nutz.zhgh.jf.handle.reimbursement.ReimbursementToHandler; -import io.v.nutz.zhgh.jf.service.ActivityBxService; import io.v.nutz.base.model.Audit; import io.v.nutz.base.query.PageForm; -import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.base.utils.Vi; import io.v.nutz.web.commons.slog.annotation.SLog; +import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.jf.handle.reimbursement.ReimbursementToHandler; +import io.v.nutz.zhgh.jf.service.ActivityBxService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Chain; import org.nutz.dao.Cnd; -import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; 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 69f47d2..771af43 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 @@ -5,19 +5,17 @@ import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; -import io.v.nutz.zhgh.activity.models.ActivityTissuePerson; import io.v.nutz.base.annontation.ViReturn; +import io.v.nutz.base.query.PageForm; import io.v.nutz.base.utils.Vi; +import io.v.nutz.base.utils.ViTool; +import io.v.nutz.sys.models.Sys_file; +import io.v.nutz.web.commons.utils.FileUtil; +import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.activity.models.ActivityTissuePerson; 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; -import io.v.nutz.base.query.PageForm; -import io.v.nutz.sys.models.Sys_file; -import io.v.nutz.sys.models.Sys_union; -import io.v.nutz.sys.models.Sys_user; -import io.v.nutz.base.utils.ViTool; -import io.v.nutz.web.commons.utils.FileUtil; -import io.v.nutz.web.commons.utils.ShiroUtil; import org.apache.commons.io.IOUtils; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -25,7 +23,6 @@ import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.boot.starter.ftp.FtpService; 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.dao.util.cri.SqlExpressionGroup; @@ -33,7 +30,6 @@ 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.random.R; import org.nutz.lang.util.NutMap; import org.nutz.mvc.annotation.At; @@ -44,7 +40,6 @@ import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; -import java.io.IOException; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; @@ -106,15 +101,15 @@ public class ActivityReimbursementMineController { $condition """); Cnd cnd = Cnd.NEW(); - if (!ShiroUtil.hasAnyRoles("sysadmin,wyh02,H10,xghng")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { SqlExpressionGroup group2 = new SqlExpressionGroup(); -// if (ShiroUtil.hasAnyRoles("gh01,H04")) { -// group2.or("u.unionid", "=", vi.getUnionId()); -// } else if (ShiroUtil.hasRole("H02")) { -// group2.or("scu.clubid", "=", vi.getClubId()); -// } else { -// } - group2.or("act.user_id", "=", ShiroUtil.getUserId()); + if (ShiroUtil.hasAnyRoles("gh01,H04")) { + group2.or("u.unionid", "=", vi.getUnionId()); + } else if (ShiroUtil.hasRole("H02")) { + group2.or("scu.clubid", "=", vi.getClubId()); + } else { + group2.or("act.user_id", "=", ShiroUtil.getUserId()); + } cnd.and(group2); } 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..426e06a 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 @@ -2,17 +2,15 @@ package io.v.nutz.zhgh.jf.controller.reimbursement; import cn.hutool.core.util.StrUtil; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.base.utils.Vi; -import io.v.nutz.zhgh.jf.handle.reimbursement.ReimbursementToHandler; -import io.v.nutz.zhgh.jf.service.ActivityBxService; import io.v.nutz.base.model.Audit; import io.v.nutz.base.query.PageForm; -import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.web.commons.slog.annotation.SLog; +import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.jf.handle.reimbursement.ReimbursementToHandler; +import io.v.nutz.zhgh.jf.service.ActivityBxService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Chain; 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; diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementSchoolDirectorController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementSchoolDirectorController.java index 76365a3..b1f761c 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementSchoolDirectorController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementSchoolDirectorController.java @@ -2,13 +2,12 @@ package io.v.nutz.zhgh.jf.controller.reimbursement; import cn.hutool.core.util.StrUtil; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.base.utils.Vi; -import io.v.nutz.zhgh.jf.handle.reimbursement.ReimbursementToHandler; -import io.v.nutz.zhgh.jf.service.ActivityBxService; import io.v.nutz.base.model.Audit; import io.v.nutz.base.query.PageForm; -import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.web.commons.slog.annotation.SLog; +import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.jf.handle.reimbursement.ReimbursementToHandler; +import io.v.nutz.zhgh.jf.service.ActivityBxService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Chain; import org.nutz.dao.Cnd; 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..5ae4cf6 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 @@ -2,11 +2,9 @@ package io.v.nutz.zhgh.jf.controller.reimbursement; import cn.hutool.core.util.StrUtil; import io.v.nutz.base.annontation.ViReturn; +import io.v.nutz.base.query.PageForm; import io.v.nutz.zhgh.jf.model.ActivityBx; import io.v.nutz.zhgh.jf.service.ActivityBxService; -import io.v.nutz.base.model.Audit; -import io.v.nutz.base.query.PageForm; -import io.v.nutz.web.commons.slog.annotation.SLog; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; import org.nutz.dao.sql.Sql; @@ -18,7 +16,6 @@ import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; import java.util.List; -import java.util.stream.Collectors; /** * @version 1.0 diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementUnionChairmanController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementUnionChairmanController.java index 0afb755..510d0de 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementUnionChairmanController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/reimbursement/ActivityReimbursementUnionChairmanController.java @@ -2,17 +2,16 @@ package io.v.nutz.zhgh.jf.controller.reimbursement; import cn.hutool.core.util.StrUtil; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.base.utils.Vi; -import io.v.nutz.zhgh.jf.handle.reimbursement.ReimbursementToHandler; -import io.v.nutz.zhgh.jf.service.ActivityBxService; import io.v.nutz.base.model.Audit; import io.v.nutz.base.query.PageForm; -import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.base.utils.Vi; import io.v.nutz.web.commons.slog.annotation.SLog; +import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.jf.handle.reimbursement.ReimbursementToHandler; +import io.v.nutz.zhgh.jf.service.ActivityBxService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Chain; 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; @@ -65,7 +64,7 @@ public class ActivityReimbursementUnionChairmanController { //1已审核;2未审核;0全部 cnd.and("act.reimbursement_state_id", "1".equals(isAudit) ? ">" : "2".equals(isAudit) ? "=" : ">=", 1010); - if (!ShiroUtil.hasAnyRoles("sysadmin,A06")){ + if (ShiroUtil.hasAnyRoles("sysadmin,A06")){ cnd.andEX("u.unionid","=",unionId); } else { cnd.and("u.unionid","=", Vi.getUnionId()); diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/school/schoolBudgetController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/school/schoolBudgetController.java index 2e75ca7..fb7b361 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/school/schoolBudgetController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/school/schoolBudgetController.java @@ -1,11 +1,11 @@ package io.v.nutz.zhgh.jf.controller.school; import io.v.nutz.base.annontation.ViReturn; +import io.v.nutz.base.query.PageForm; import io.v.nutz.base.service.BaseService; import io.v.nutz.base.utils.DateUtil; import io.v.nutz.zhgh.jf.model.CostsSet; import io.v.nutz.zhgh.jf.model.jf_school; -import io.v.nutz.base.query.PageForm; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Chain; import org.nutz.dao.Cnd; diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/yjgh/DataInputController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/yjgh/DataInputController.java index 4538d78..a75c639 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/yjgh/DataInputController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/yjgh/DataInputController.java @@ -3,9 +3,9 @@ package io.v.nutz.zhgh.jf.controller.yjgh; import cn.afterturn.easypoi.excel.ExcelImportUtil; import cn.afterturn.easypoi.excel.entity.ImportParams; import cn.wizzer.framework.base.Result; -import io.v.nutz.zhgh.jf.model.jf_yjgh; import io.v.nutz.sys.models.Sys_union; import io.v.nutz.sys.services.SysUnionService; +import io.v.nutz.zhgh.jf.model.jf_yjgh; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.util.NutMap; diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/yjgh/jfsyController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/yjgh/jfsyController.java index 313b136..feed304 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/yjgh/jfsyController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/yjgh/jfsyController.java @@ -7,7 +7,6 @@ import io.v.nutz.base.utils.PageUtil; import io.v.nutz.base.utils.Roles; import io.v.nutz.web.commons.utils.ShiroUtil; import org.apache.poi.hssf.usermodel.HSSFWorkbook; -import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Chain; import org.nutz.dao.Cnd; diff --git a/src/main/java/io/v/nutz/zhgh/jf/controller/yjgh/yjghController.java b/src/main/java/io/v/nutz/zhgh/jf/controller/yjgh/yjghController.java index 51b9f65..db53d73 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/controller/yjgh/yjghController.java +++ b/src/main/java/io/v/nutz/zhgh/jf/controller/yjgh/yjghController.java @@ -3,14 +3,13 @@ package io.v.nutz.zhgh.jf.controller.yjgh; import cn.wizzer.framework.base.Result; import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.page.Pagination; +import io.v.nutz.base.service.AsyncService; import io.v.nutz.base.service.BaseService; import io.v.nutz.base.utils.DateUtil; import io.v.nutz.zhgh.jf.model.CostsSet; import io.v.nutz.zhgh.jf.model.jf_yjgh; import io.v.nutz.zhgh.jf.service.CostsSetService; import io.v.nutz.zhgh.jf.service.jfYjghService; -import io.v.nutz.base.service.AsyncService; -import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Chain; diff --git a/src/main/java/io/v/nutz/zhgh/jf/handle/reimbursement/ReimbursementToHandler.java b/src/main/java/io/v/nutz/zhgh/jf/handle/reimbursement/ReimbursementToHandler.java index 43d75ce..92ffdf7 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/handle/reimbursement/ReimbursementToHandler.java +++ b/src/main/java/io/v/nutz/zhgh/jf/handle/reimbursement/ReimbursementToHandler.java @@ -1,32 +1,20 @@ package io.v.nutz.zhgh.jf.handle.reimbursement; -import io.v.nutz.base.utils.Roles; import io.v.nutz.base.utils.Vi; import io.v.nutz.base.utils.ViResource; -import io.v.nutz.sys.models.Sys_user_role; import io.v.nutz.sys.models.User; import io.v.nutz.sys.services.SysLocalProcessService; import io.v.nutz.sys.services.impl.SysLocalProcessServiceImpl; -import io.v.nutz.web.commons.base.Globals; import io.v.nutz.web.commons.utils.ShiroUtil; -import io.v.nutz.zhgh.member.model.MemberChangeRecord; -import io.v.nutz.zhgh.needhandlebycpu.model.vo.ParticipantVO; -import io.v.nutz.zhgh.needhandlebycpu.model.vo.TaskVO; import io.v.nutz.zhgh.needhandlebycpu.service.HandleCpuCommonService; import io.v.nutz.zhgh.needhandlebycpu.service.impl.HandleCpuCommonServiceImpl; -import io.v.nutz.zhgh.zgfw.model.condolence.Condolence; -import io.v.nutz.zhgh.zgfw.model.difficult.Zgfw_knbf; import io.v.nutz.zhgh.zgfw.service.CondolenceService; import io.v.nutz.zhgh.zgfw.service.impl.CondolenceServiceImpl; import lombok.Getter; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; -import org.nutz.dao.Sqls; -import org.nutz.dao.sql.Sql; import org.nutz.lang.util.NutMap; -import java.util.ArrayList; -import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -50,7 +38,7 @@ public enum ReimbursementToHandler { User user = dao.fetch(User.class, Cnd.where("id", "=", userId)); localProcessService.startProcess( - user.getUnionname() + "(" + user.getUsername() + ")【活动报销】申请", + "【活动报销】" + user.getUnionname() + "(" + user.getUsername() + ")", "activity_reimbursement@" + reimbursementId, "", userId, @@ -209,7 +197,7 @@ public enum ReimbursementToHandler { "activity_reimbursement_school_director_audit", "校工会负责人审核", ShiroUtil.getUserId(), - List.of("8333300107"), + List.of("1019911404"), "/platform/jf/reimbursement/schoolDirector", "/platform/jf/reimbursement/schoolDirector", "/platform/jf/reimbursement/schoolDirector", diff --git a/src/main/java/io/v/nutz/zhgh/jf/model/ActivityBx.java b/src/main/java/io/v/nutz/zhgh/jf/model/ActivityBx.java index 09ec5a4..4461a09 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/model/ActivityBx.java +++ b/src/main/java/io/v/nutz/zhgh/jf/model/ActivityBx.java @@ -405,6 +405,36 @@ public class ActivityBx { private List newsFiles; + @Column + @Comment("活动经费预算") + @ColDefine(type = ColType.MYSQL_JSON) + private List budgets; + + /** + * 活动费用预算 + */ + @Data + public static class Budget{ + // 名称 + private String name; + // 预算费用 + private Double budgetPrice; + // 实际费用 + private Double actualPrice; + // 收款人id + private String payeeId; + // 收款人姓名 + private String username; + // 收款人工号 + private String loginName; + // 支行名称 + private String bankName; + // 报销卡号 + private String bankCardNum; + // 备注 + private String remark; + } + @Column @Comment("单据号") @Prev({ diff --git a/src/main/java/io/v/nutz/zhgh/jf/model/SchoolUse.java b/src/main/java/io/v/nutz/zhgh/jf/model/SchoolUse.java index 91082d1..9c31b90 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/model/SchoolUse.java +++ b/src/main/java/io/v/nutz/zhgh/jf/model/SchoolUse.java @@ -3,7 +3,6 @@ package io.v.nutz.zhgh.jf.model; import lombok.Data; import org.nutz.dao.entity.annotation.*; import org.nutz.dao.interceptor.annotation.PrevInsert; -import org.nutz.integration.json4excel.annotation.J4EIgnore; /** * TODO 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..8e646f0 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 @@ -1,7 +1,7 @@ package io.v.nutz.zhgh.jf.service; -import io.v.nutz.zhgh.jf.model.ActivityBx; import io.v.nutz.base.service.ViService; +import io.v.nutz.zhgh.jf.model.ActivityBx; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; import org.nutz.lang.util.NutMap; diff --git a/src/main/java/io/v/nutz/zhgh/jf/service/impl/ActivityBxServiceImpl.java b/src/main/java/io/v/nutz/zhgh/jf/service/impl/ActivityBxServiceImpl.java index 08c3e09..b24b15a 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/service/impl/ActivityBxServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/jf/service/impl/ActivityBxServiceImpl.java @@ -3,22 +3,18 @@ package io.v.nutz.zhgh.jf.service.impl; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.config.Configure; import com.deepoove.poi.data.PictureRenderData; import com.deepoove.poi.policy.HackLoopTableRenderPolicy; -import io.v.nutz.zhgh.activity.models.ActivityTissue; -import io.v.nutz.base.utils.DateUtil; +import io.v.nutz.base.model.Audit; +import io.v.nutz.base.service.impl.ViServiceImpl; import io.v.nutz.base.utils.Html2Text; import io.v.nutz.base.utils.Vi; -import io.v.nutz.base.model.Goods; import io.v.nutz.zhgh.jf.model.ActivityBx; import io.v.nutz.zhgh.jf.model.ActivityFile; import io.v.nutz.zhgh.jf.service.ActivityBxService; -import io.v.nutz.base.model.Audit; -import io.v.nutz.base.service.impl.ViServiceImpl; -import io.v.nutz.web.commons.utils.ShiroUtil; -import io.v.nutz.web.commons.base.Globals; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; @@ -30,9 +26,10 @@ import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.Strings; import org.nutz.lang.util.NutMap; -import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.Base64; import java.util.HashMap; import java.util.LinkedHashMap; @@ -68,11 +65,12 @@ public class ActivityBxServiceImpl extends ViServiceImpl implements @Aop(TransAop.READ_COMMITTED) public void doEdit(ActivityBx activityBx) { - activityBx.getGoods().forEach(v -> { + /*activityBx.getGoods().forEach(v -> { v.setReid(activityBx.getId()); }); dao().clear(Goods.class,Cnd.where("reid","=",activityBx.getId())); - insert(activityBx.getGoods()); + insert(activityBx.getGoods());*/ + update(activityBx); } @Override @@ -130,7 +128,7 @@ public class ActivityBxServiceImpl extends ViServiceImpl implements sql.setCallback(Sqls.callback.map()); dao().execute(sql); NutMap record = (NutMap) sql.getResult(); - record.setv("Goods", dao().query(Goods.class, Cnd.where("reid", "=", record.getString("id")))); +// record.setv("Goods", dao().query("Goods", Cnd.where("reid", "=", record.getString("id")))); if (record.size() == 0) { return null; @@ -172,7 +170,9 @@ public class ActivityBxServiceImpl extends ViServiceImpl implements NutMap nutMap = queryOne(id); nutMap.setv("activity_content", Html2Text.toPlainText(nutMap.getString("activity_content"))); nutMap.setv("apply_time", nutMap.getString("apply_time").substring(0, 10)); - List goods = nutMap.getAsList("Goods", NutMap.class); + + String budgets = nutMap.getString("budgets"); + List goods = JSONUtil.parseArray(budgets).toList(NutMap.class); for (int i = 0; i < goods.size(); i++) { goods.get(i).put("ranking", i + 1); @@ -233,18 +233,26 @@ public class ActivityBxServiceImpl extends ViServiceImpl implements if (StrUtil.isNotBlank(one.getString("activity_content"))) { one.setv("activity_content", Html2Text.getContent(one.getString("activity_content"))); } - one.setv("money_big", Convert.digitToChinese(one.getDouble("funds_money"))); + one.setv("money_big", Convert.digitToChinese(one.getDouble("activity_money"))); one.setv("apply_time", one.getString("apply_time").substring(0, 10)); + String budgets = one.getString("budgets"); + List goods = JSONUtil.parseArray(budgets).toList(NutMap.class); + + one.put("goods",goods); + switch (one.getString("activity_type")) { case "40001" -> one.setv("jfName", "校工会"); case "40002" -> one.setv("jfName", "分工会"); case "40003" -> one.setv("jfName", "协会"); } - double price = one.getDouble("funds_money"); + double price = one.getDouble("activity_money"); int money_int = (int) price; - double money_decimal = money_int - price; + + BigDecimal priceBigDecimal = new BigDecimal(price); + BigDecimal moneyDecimal = priceBigDecimal.subtract(new BigDecimal(money_int)); + one.setv("one", money_int >= 1000000 ? (money_int / 1000000) % 10 : null); one.setv("two", money_int >= 100000 ? (money_int / 100000) % 10 : null); one.setv("three", money_int >= 10000 ? (money_int / 10000) % 10 : null); @@ -252,8 +260,17 @@ public class ActivityBxServiceImpl extends ViServiceImpl implements one.setv("five", money_int >= 100 ? (money_int / 100) % 10 : null); one.setv("six", money_int >= 10 ? (money_int / 10) % 10 : null); one.setv("seven", money_int >= 1 ? money_int % 10 : null); - one.setv("eight", (int) (money_decimal / 1) * 10); - one.setv("nine", (int) (money_decimal / 0.1) * 100); + + // 提取小数部分的各个位上的数值 + BigDecimal tenthsPart = moneyDecimal.multiply(BigDecimal.TEN).setScale(0, RoundingMode.DOWN); + int tenths = tenthsPart.intValue(); + BigDecimal hundredthsPart = moneyDecimal.multiply(BigDecimal.valueOf(100)).setScale(0, RoundingMode.DOWN); + int hundredths = hundredthsPart.intValue(); + +// BigDecimal decimalPart1 = moneyDecimal.divide(new BigDecimal("1"), 1, RoundingMode.HALF_UP); +// BigDecimal decimalPart2 = moneyDecimal.divide(new BigDecimal("0.1"), 1, RoundingMode.HALF_UP); + one.setv("eight", (tenths % 10)); + one.setv("nine", (hundredths % 10) + 1); /*基层工会主席签字*/ @@ -277,7 +294,9 @@ public class ActivityBxServiceImpl extends ViServiceImpl implements } // String fileName = Globals.schoolName + "【" + one.getString("activity_name") + "】报销凭证"; - Configure config = Configure.newBuilder().build(); + HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy(); + Configure config = Configure.newBuilder().bind("goods", policy).build(); + InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("docTemplate/funds3.docx"); // response.addHeader("Content-Type", "application/octet-stream"); // response.addHeader("Content-Disposition", "attachment; filename=\"" + new String(fileName.getBytes("UTF-8"), "ISO-8859-1") + "\".docx"); diff --git a/src/main/java/io/v/nutz/zhgh/jf/service/impl/jfClubServiceImpl.java b/src/main/java/io/v/nutz/zhgh/jf/service/impl/jfClubServiceImpl.java index 64b3a99..780917c 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/service/impl/jfClubServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/jf/service/impl/jfClubServiceImpl.java @@ -1,8 +1,8 @@ package io.v.nutz.zhgh.jf.service.impl; +import io.v.nutz.base.service.impl.ViServiceImpl; import io.v.nutz.zhgh.jf.model.jf_club; import io.v.nutz.zhgh.jf.service.jfClubService; -import io.v.nutz.base.service.impl.ViServiceImpl; import org.nutz.dao.Dao; import org.nutz.ioc.loader.annotation.IocBean; diff --git a/src/main/java/io/v/nutz/zhgh/jf/service/impl/jfYjghServiceImpl.java b/src/main/java/io/v/nutz/zhgh/jf/service/impl/jfYjghServiceImpl.java index b24ec8a..a40b249 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/service/impl/jfYjghServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/jf/service/impl/jfYjghServiceImpl.java @@ -1,8 +1,8 @@ package io.v.nutz.zhgh.jf.service.impl; +import io.v.nutz.base.service.impl.ViServiceImpl; import io.v.nutz.zhgh.jf.model.jf_yjgh; import io.v.nutz.zhgh.jf.service.jfYjghService; -import io.v.nutz.base.service.impl.ViServiceImpl; import org.nutz.dao.Dao; import org.nutz.ioc.loader.annotation.IocBean; diff --git a/src/main/java/io/v/nutz/zhgh/jf/service/jfClubService.java b/src/main/java/io/v/nutz/zhgh/jf/service/jfClubService.java index 120e6b7..edf392a 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/service/jfClubService.java +++ b/src/main/java/io/v/nutz/zhgh/jf/service/jfClubService.java @@ -1,7 +1,7 @@ package io.v.nutz.zhgh.jf.service; -import io.v.nutz.zhgh.jf.model.jf_club; import io.v.nutz.base.service.ViService; +import io.v.nutz.zhgh.jf.model.jf_club; public interface jfClubService extends ViService { } diff --git a/src/main/java/io/v/nutz/zhgh/jf/service/jfYjghService.java b/src/main/java/io/v/nutz/zhgh/jf/service/jfYjghService.java index bb1fe85..54e0b77 100644 --- a/src/main/java/io/v/nutz/zhgh/jf/service/jfYjghService.java +++ b/src/main/java/io/v/nutz/zhgh/jf/service/jfYjghService.java @@ -1,7 +1,7 @@ package io.v.nutz.zhgh.jf.service; -import io.v.nutz.zhgh.jf.model.jf_yjgh; import io.v.nutz.base.service.ViService; +import io.v.nutz.zhgh.jf.model.jf_yjgh; public interface jfYjghService extends ViService { } diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareCommonController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareCommonController.java index 9c0cd14..07b5509 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareCommonController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareCommonController.java @@ -411,7 +411,7 @@ public class WelfareCommonController { @Excel(name = "身份证号", width = 20d) private String idcard; - /* @Excel(name = "人员类型", width = 20d) + /* @Excel(name = "人员性质", width = 20d) private String personType; @Excel(name = "在职状态", width = 20d) @@ -465,7 +465,7 @@ public class WelfareCommonController { ExportParams exportParams = new ExportParams(); - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { cnd.and("vwl.unionid", "=", Vi.getUnionId()); exportParams.setTitle(Vi.getUnion().getUnionname() + "名单"); } @@ -541,7 +541,7 @@ public class WelfareCommonController { cnd.andEX("personType", "in", personTypes); cnd.andEX("userState", "in", userStates); - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin,H04,gh12") && Globals.MyConfig.getBoolean("isThreeUnit")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,H04,gh12") && Globals.MyConfig.getBoolean("isThreeUnit")) { cnd.and("list.unionGroupId", "in", ShiroUtil.getUnionGroupIds()); } cnd.asc("unionname"); @@ -572,7 +572,7 @@ public class WelfareCommonController { entityList.add(new ExcelExportEntity("工号", "loginname", 20)); entityList.add(new ExcelExportEntity("姓名", "username", 20)); entityList.add(new ExcelExportEntity("在职状态", "userState", 20)); - entityList.add(new ExcelExportEntity("人员类型", "personType", 20)); + entityList.add(new ExcelExportEntity("人员性质", "personType", 20)); entityList.add(new ExcelExportEntity("所属工会", "unionname", 50)); entityList.add(new ExcelExportEntity("所属单位", "unitname", 50)); diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareListController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareListController.java index b15de16..22db501 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareListController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareListController.java @@ -4,11 +4,13 @@ import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.ExcelImportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.ImportParams; +import cn.afterturn.easypoi.excel.entity.TemplateExportParams; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.afterturn.easypoi.excel.export.ExcelExportService; import cn.hutool.core.io.FileUtil; import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.wizzer.framework.base.Result; import io.v.nutz.base.annontation.ViReturn; @@ -34,6 +36,7 @@ import org.nutz.dao.Dao; import org.nutz.dao.Sqls; import org.nutz.dao.entity.Record; import org.nutz.dao.sql.Sql; +import org.nutz.dao.util.cri.SqlExpressionGroup; import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; @@ -91,8 +94,7 @@ public class WelfareListController { @Param(value = "projectId", required = false) String projectId, @Param(value = "optionId", required = false) String optionId, @Param(value = "month", required = false) String month, - @Param(value = "courierNumber", required = false) String courierNumber - ) { + @Param(value = "courierNumber", required = false) String courierNumber) { Sql sql = Sqls.create(""" SELECT CASE @@ -115,10 +117,10 @@ public class WelfareListController { GROUP_CONCAT( DISTINCT wuso.optionName, '(', wus.selectNum, '份)' ) AS gist_list FROM view_welfare_list wl - LEFT JOIN welfare_project_user_selection wus ON wus.welfareId = wl.projectId + LEFT JOIN welfare_project_user_selection wus ON wus.welfareId = wl.projectId AND wus.selectUserId = wl.id LEFT JOIN welfare_project_subject_option wuso ON wus.selectOptionId = wuso.id - LEFT JOIN welfare_courier_number wcn on wcn.selectUserId = wl.id AND wcn.welfareId = wl.projectId + LEFT JOIN welfare_courier_number wcn on wcn.selectUserId = wl.id LEFT JOIN welfare_project wp ON wp.id = wus.welfareId $condition """); @@ -143,11 +145,12 @@ public class WelfareListController { cnd.andEX("wl.sex", "in", pageParam.getSex()); - cnd.andEX("wcn.courierNumber","=",courierNumber); + cnd.andEX("wcn.courierNumber", "=", courierNumber); cnd.groupBy("wl.id"); - cnd.asc("wl.unitCode"); - cnd.asc("wl.loginname"); + cnd.asc("wl.unitid"); + cnd.asc("wl.userSortNum"); + cnd.desc("wl.id"); if (!ShiroUtil.hasAnyRoles("sysadmin")) { cnd.and("wl.unionid", "=", Vi.getUnionId()); @@ -242,9 +245,17 @@ public class WelfareListController { NutMap editData = Json.fromJson(NutMap.class, editWelfareData); List optionList = Json.fromJsonAsList(NutMap.class, welfareOptions); Dao dao = welfareListService.dao(); + WelfareUserSelection oldSelection = dao.fetch(WelfareUserSelection.class, Cnd.where("welfareId", "=", editData.getString("projectId")) + .and("selectUserId", "=", editData.getString("userId"))); + String sign = ""; + if (ObjectUtil.isNotEmpty(oldSelection)) { + sign = oldSelection.getUserSign(); + } + dao.clear(WelfareUserSelection.class, Cnd.where("welfareId", "=", editData.getString("projectId")) .and("selectUserId", "=", editData.getString("userId"))); + String finalSign = sign; List userSelections = optionList.stream().map(v -> { WelfareUserSelection selection = new WelfareUserSelection(); selection.setSelectTime(new Date()); @@ -254,6 +265,7 @@ public class WelfareListController { selection.setReceiveAddress(editData.getString("receiveAddress")); selection.setSubjectId(v.getString("subjectId")); selection.setSelectNum(v.getInt("selectNum")); + selection.setUserSign(finalSign); return selection; }).collect(Collectors.toList()); @@ -318,7 +330,7 @@ public class WelfareListController { """); cnd.and("wpus.welfareId", "=", projectId); - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { cnd.and("u.unionId", "=", Vi.getUnionId()); } @@ -484,7 +496,7 @@ public class WelfareListController { it.`name` unitname, wpus.selectNum FROM - welfare_project_user_selection_copy wpus + welfare_project_user_selection wpus LEFT JOIN `welfare_list` wl ON wpus.selectUserId = wl.userId LEFT JOIN `sys_user` u ON u.id = wl.userId LEFT JOIN sys_union un ON un.id = wl.welfareUnitId @@ -492,7 +504,7 @@ public class WelfareListController { WHERE wpus.welfareId = @welfareId AND wpus.selectOptionId = @selectOptionId and wpus.selectNum!=0 - + """).setParam("welfareId", projectId).setParam("selectOptionId", optionId); // GROUP BY wpus.selectUserId,wpus.selectOptionId ORDER BY un.unioncode @@ -557,8 +569,77 @@ public class WelfareListController { } catch (IOException e) { e.printStackTrace(); } - } + @At + @Ok("void") + @RequiresPermissions("welfare.list.mange") + public void doExportReimbursement(@Param(value = "projectId", required = false) String projectId, + @Param(value = "optionId", required = false) String optionId, + @Param(value = "personType", required = false) String personType, + HttpServletResponse response) { + WelfareProject project = welfareListService.dao().fetch(WelfareProject.class, projectId); + WelfareProjectSubjectOption subjectOption = welfareListService.dao().fetch(WelfareProjectSubjectOption.class, optionId); + + Sql sql = Sqls.create(""" + SELECT + u.id, + u.loginname, + u.username, + wl.personType, + un.unionname, + it.`name` unitname, + wpus.selectNum, + GROUP_CONCAT(wcn.courierNumber) as courierNumber + FROM + welfare_project_user_selection wpus + LEFT JOIN `welfare_list` wl ON wpus.selectUserId = wl.userId + LEFT JOIN `sys_user` u ON u.id = wl.userId + LEFT JOIN sys_union un ON un.id = wl.welfareUnitId + LEFT JOIN sys_unit it ON it.id = wl.welfareSecondLevelUnitId + LEFT JOIN welfare_courier_number wcn ON wcn.welfareId = wpus.welfareId\s + AND wcn.selectUserId = wpus.selectUserId + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.groupBy("wpus.id"); + cnd.and("wpus.welfareId", "=", projectId); + cnd.and("wpus.selectOptionId", "=", optionId); + cnd.and("wpus.selectNum", "!=", 0); + if (Objects.equals("在职教职工", personType)) { + cnd.and("wl.personType", "is not", null); + cnd.and("wl.personType", "!=", ""); + cnd.and("wl.personType", "!=", "劳务人才派遣"); + cnd.and("wl.personType", "!=", "其他类"); + } else if (Objects.equals("劳务派遣人员", personType)) { + cnd.and("wl.personType", "in", List.of("劳务人才派遣", "其他类")); + } else if (Objects.equals("空状态", personType)) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.or("wl.personType", "=", ""); + seg.orIsNull("wl.personType"); + cnd.and(seg); + } + sql.setCondition(cnd); + List mapList = welfareListService.listMap(sql); + + HashMap data = new HashMap<>(); + data.put("data", mapList); + data.put("projectName", project.getName()); + data.put("optionName", subjectOption.getOptionName()); + data.put("personType", personType); + + try { + ViTool.excelResponse(response, subjectOption.getOptionName() + "(" + personType + ")" + "发放名单.xlsx"); + TemplateExportParams templateExportParams = new TemplateExportParams(); + //开启横向遍历 + templateExportParams.setColForEach(true); + templateExportParams.setTemplateUrl("C:\\Users\\jug\\Desktop\\福利发放名单.xlsx"); + Workbook workbook = ExcelExportUtil.exportExcel(templateExportParams, data); + workbook.write(response.getOutputStream()); + } catch (IOException e) { + e.printStackTrace(); + } + + } } diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberAdjustmentController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberAdjustmentController.java index bea3113..1090d51 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberAdjustmentController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberAdjustmentController.java @@ -96,18 +96,13 @@ public class WelfareMemberAdjustmentController { mcr_state.stateColor mcrStateColor FROM `user` u - LEFT JOIN user_history_latest his ON his.loginname = u.loginname - LEFT JOIN welfare_member_apply_record_latest wmar ON wmar.userId = u.id - LEFT JOIN member_change_record_latest mcr on mcr.userId = u.id - LEFT JOIN audit_state state ON wmar.stateId = state.stateId - LEFT JOIN audit_state mcr_state ON mcr_state.stateId = mcr.stateId $condition - """) + """) .setParam("recordMode", MemberChangeRecordMode.WELFARE_MEMBER.getCode()) .setParam("changeUnitAuditing", MemberChangeApplyState.SCHOOL_UNION) .setParam("changeUnitError", MemberChangeApplyState.SCHOOL_UNION_FAIL); @@ -120,7 +115,7 @@ public class WelfareMemberAdjustmentController { cnd.andEX("u.unionGroupId", "=", pageParam.getUnionGroupId()); - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { if (ShiroUtil.hasAnyRoles("H04,gh12")) { cnd.and("u.unionId", "=", Vi.getUnionId()); } else if (ShiroUtil.hasRole("ghxzzz")) { @@ -163,8 +158,10 @@ public class WelfareMemberAdjustmentController { WelfareFeature.Condition.judgmentAuthority(cnd, "u"); cnd.and(pageForm); - cnd.desc("u.threeUnitId"); - cnd.asc("u.loginname"); + cnd.desc("his.changeTime"); + cnd.asc("u.unitid"); + cnd.asc("COALESCE(u.userSortNum, 999999)"); + cnd.desc("u.id"); pageParam.participate(cnd, "u"); @@ -221,7 +218,7 @@ public class WelfareMemberAdjustmentController { } } cnd.andEX("u.unionGroupId", "=", pageParam.getUnionGroupId()); - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { if (ShiroUtil.hasAnyRoles("H04,gh12")) { cnd.and("u.unionId", "=", Vi.getUnionId()); } else if (ShiroUtil.hasRole("ghxzzz")) { @@ -307,7 +304,7 @@ public class WelfareMemberAdjustmentController { @ViReturn @RequiresPermissions("welfare.member.adjustment") public Object joinWelfareMember(String[] userIds) { - if (ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (ShiroUtil.hasAnyRoles("sysadmin,A06")) { WelfareMemberMode.joinWelfareMember(Arrays.stream(userIds).collect(Collectors.toList())); return null; } diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberChangeApplyAuditController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberChangeApplyAuditController.java index 521b2f6..53ff9de 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberChangeApplyAuditController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberChangeApplyAuditController.java @@ -75,7 +75,7 @@ public class WelfareMemberChangeApplyAuditController { wun.welfareUnitId realWelfareUnitId, wun.welfareUnitCode realWelfareUnitCode, wun.welfareUnitName realWelfareUnitName, - u.mobile, + u.mobile AS MMobile, state.stateName, state.stateColor, originUnit.unitcode originUnitCode, diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberMangeController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberMangeController.java index 54579f1..c583035 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberMangeController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberMangeController.java @@ -95,7 +95,9 @@ public class WelfareMemberMangeController { } pageParam.participate(cnd); cnd.and(pageForm); - cnd.asc("loginname"); + cnd.asc("unitid"); + cnd.asc("COALESCE(userSortNum, 999999)"); + cnd.desc("id"); sql.setCondition(cnd); return welfareMemberService.list(pageForm, sql); } @@ -178,7 +180,7 @@ public class WelfareMemberMangeController { if (member != null && member) { cnd.and("u.member", "=", MemberMode.NORMAL.getCode()); } - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { cnd.and("u.unionid", "=", Vi.getUnionId()); } @@ -257,7 +259,7 @@ public class WelfareMemberMangeController { List memberImportList = ExcelImportUtil.importExcel(file.getFile(), WelfareMemberTemp.class, new ImportParams()); Cnd cnd = Cnd.NEW(); - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { cnd.and("unionid", "=", Vi.getUnionId()); } cnd.andEX("unionid", "=", unionId); @@ -339,7 +341,7 @@ public class WelfareMemberMangeController { public void exportList(HttpServletResponse response) { Sql sql = Sqls.create("SELECT loginname,username,sex,personType,userState,unionname,unitname,CASE member WHEN 1 THEN '是' ELSE '否' END as member from welfare_member $condition"); Cnd cnd = Cnd.NEW(); - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { cnd.andEX("unionid", "=", Vi.getUnionId()); } sql.setCondition(cnd); @@ -349,7 +351,7 @@ public class WelfareMemberMangeController { exportEntities.add(new ExcelExportEntity("工号","loginname",20)); exportEntities.add(new ExcelExportEntity("姓名","username",20)); exportEntities.add(new ExcelExportEntity("性别","sex",20)); - exportEntities.add(new ExcelExportEntity("人员类型","personType",20)); + exportEntities.add(new ExcelExportEntity("人员性质","personType",20)); exportEntities.add(new ExcelExportEntity("在职状态","userState",20)); exportEntities.add(new ExcelExportEntity("分工会","unionname",20)); exportEntities.add(new ExcelExportEntity("单位","unitname",50)); diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMineController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMineController.java index fc31c02..a5484e0 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMineController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMineController.java @@ -86,7 +86,8 @@ public class WelfareMineController { sql.setParam("selectUserId", ShiroUtil.getUserId()); Cnd cnd = Cnd.NEW(); cnd.and("wp.isDisabled", "=", 0); - cnd.andEX("YEAR(wp.choiceTimeStart)", "=", year); +// cnd.andEX("YEAR(wp.choiceTimeStart)", "=", year); + cnd.and("wp.id","in",Sqls.create("(select projectId from view_welfare_list where id = @userId)").setParam("userId",ShiroUtil.getUserId())); cnd.groupBy("wp.id"); cnd.desc("wp.choiceTimeStart"); sql.setCondition(cnd); diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareProjectMangeController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareProjectMangeController.java index 19a129b..e16ec82 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareProjectMangeController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareProjectMangeController.java @@ -6,6 +6,7 @@ import io.v.nutz.base.dao.CndPlus; import io.v.nutz.base.query.PageForm; import io.v.nutz.base.utils.MsgApi; import io.v.nutz.base.utils.Vi; +import io.v.nutz.sys.models.Sys_home_activity; import io.v.nutz.sys.services.SysTaskService; import io.v.nutz.task.services.TaskPlatformService; import io.v.nutz.zhgh.data.model.MatchConditionStructure; @@ -37,7 +38,6 @@ import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; import org.nutz.trans.Trans; -import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -235,9 +235,11 @@ public class WelfareProjectMangeController { dao.update(project); } - if (project.getIsPushHome() != 0) { - mobileHomeService.handle(project, "welfare", "/mobile/welfare/list/receive?projectId=" + project.getId(), project.getIsPushHome()); - } +// if (project.getIsPushHome() != 0) { +// mobileHomeService.handle(project, "welfare", "/mobile/welfare/list/receive?projectId=" + project.getId(), project.getIsPushHome()); +// } + Sys_home_activity sysHomeActivity = project.covertToSysHomeActivity(); + dao.insertOrUpdate(sysHomeActivity); }); return null; } @@ -290,8 +292,7 @@ public class WelfareProjectMangeController { public Object sendMsgToNotWelfareUsers(String projectId, String sendMsgValue) { Sql sql = Sqls.create(""" SELECT - u.loginname, - u.username + u.loginname as userId FROM welfare_list wl left join sys_user u on u.id = wl.userId @@ -308,13 +309,7 @@ public class WelfareProjectMangeController { """); sql.setParam("projectId", projectId); List userList = listService.listMap(sql); - -// for (NutMap map : userList) { -// msgApi.sendMsg(sendMsgValue, "", "", "", "4", new ArrayList<>() {{ -// add(NutMap.NEW().addv("userId", map.getString("loginname"))); -// }}); -// } - +// msgApi.sendMsg(sendMsgValue, "福利选择链接", "", "https://zhgh.jiangnan.edu.cn/mobile/welfare/list/receive?projectId=4fa233704ddb41bc8e34e966efeda0a4", "4", userList); return null; } diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareUserChooseController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareUserChooseController.java index 41b5719..be6e065 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareUserChooseController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareUserChooseController.java @@ -55,22 +55,21 @@ public class WelfareUserChooseController { @ViReturn @RequiresPermissions("welfare.user.choose") public Object pageData(PageForm pageForm, Integer year) { - Sql sql = Sqls.create(""" SELECT - wp.*, - CASE - WHEN wus.selectUserId IS NOT NULL THEN 1 - ELSE 0 - END AS isChoose, - wus.selectTime, - GROUP_CONCAT(DISTINCT wuso.optionName ,'(',wus.selectNum,'份)') AS gist_list, - wus.receiveAddress + wp.*, + CASE + WHEN wus.selectUserId IS NOT NULL THEN 1 + ELSE 0 + END AS isChoose, + wus.selectTime, + GROUP_CONCAT(DISTINCT wuso.optionName ,'(',wus.selectNum,'份)') AS gist_list, + wus.receiveAddress FROM - welfare_project wp - LEFT JOIN welfare_project_user_selection wus ON wp.id = wus.welfareId AND wus.selectUserId = @selectUserId - LEFT JOIN welfare_list wl ON wp.id = wl.projectId AND wl.userId = @selectUserId - LEFT JOIN welfare_project_subject_option wuso ON wus.selectOptionId = wuso.id + welfare_project wp + LEFT JOIN welfare_project_user_selection wus ON wp.id = wus.welfareId AND wus.selectUserId = @selectUserId + INNER JOIN welfare_list wl ON wp.id = wl.projectId AND wl.userId = @selectUserId + LEFT JOIN welfare_project_subject_option wuso ON wus.selectOptionId = wuso.id $condition """); sql.setParam("selectUserId", ShiroUtil.getUserId()); diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareCheckPersonalController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareCheckPersonalController.java index 6620bb0..273ddb6 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareCheckPersonalController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareCheckPersonalController.java @@ -201,7 +201,7 @@ public class WelfareCheckPersonalController { exportEntities.add(new ExcelExportEntity("姓名", "username", 20)); exportEntities.add(new ExcelExportEntity("性别", "sex", 20)); exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20)); - exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20)); + exportEntities.add(new ExcelExportEntity("人员性质", "personType", 20)); exportEntities.add(new ExcelExportEntity("所属工会", "unionname", 20)); exportEntities.add(new ExcelExportEntity("所在单位", "unitname", 20)); exportEntities.add(new ExcelExportEntity("核对情况", "isfinish", 20)); diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareMemberCheckUnionController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareMemberCheckUnionController.java index 4d116da..b818a79 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareMemberCheckUnionController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareMemberCheckUnionController.java @@ -131,7 +131,7 @@ public class WelfareMemberCheckUnionController { /* if (!ShiroUtil.hasAnyRoles("sysadmin,A06,flwyh01")) { cnd.and("u.unionGroupId", "in", io.v.nutz.web.commons.utils.ShiroUtil.getUnionGroupIds()); }*/ - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { if (ShiroUtil.hasAnyRoles("H04,gh12")) { cnd.and("u.unionId", "=", Vi.getUnionId()); } else if (ShiroUtil.hasRole("ghxzzz")) { @@ -166,9 +166,9 @@ public class WelfareMemberCheckUnionController { cnd.and(pageForm); cnd.desc("his.changeTime"); - cnd.asc("u.userState"); cnd.asc("u.unitid"); - cnd.asc("u.loginname"); + cnd.asc("COALESCE(u.userSortNum, 999999)"); + cnd.desc("u.id"); if (Lang.isNotEmpty(changeTypes)) { SqlExpressionGroup seg = new SqlExpressionGroup(); @@ -227,9 +227,9 @@ public class WelfareMemberCheckUnionController { @ViReturn @RequiresPermissions("welfare.member.check.union") public Object doSubmitChangeUser(MemberChangeRecord memberChangeRecord) { - if (Objects.equals(memberChangeRecord.getType(), UserChangeType.NEW.getCode())) { + /*if (Objects.equals(memberChangeRecord.getType(), UserChangeType.NEW.getCode())) { return Result.error("您已经入职,可以选择恢复功能入会!"); - } + }*/ if (Objects.equals(memberChangeRecord.getType(), UserChangeType.UNIT_CHANGE.getCode())) { boolean unionGroupEnable = Optional.ofNullable(dao.fetch(Sys_config.class, Cnd.where("configKey", "=", "isThreeUnit"))).map(v -> v.getConfigValue()).orElse("false").equals("true"); @@ -239,21 +239,21 @@ public class WelfareMemberCheckUnionController { return Result.error("请选择不同的单位!"); } } - if (!Objects.equals(memberChangeRecord.getType(), UserChangeType.UNIT_CHANGE.getCode())) { + /*if (!Objects.equals(memberChangeRecord.getType(), UserChangeType.UNIT_CHANGE.getCode())) { memberChangeRecord.setCurrentUnitId(null); memberChangeRecord.setCurrentUnionId(null); - } + }*/ Sql userSql = Sqls.fetchString("select userState from sys_user where id = @userId"); userSql.setParam("userId", memberChangeRecord.getUserId()); dao.execute(userSql); String userState = StrUtil.blankToDefault(userSql.getString(), ""); - if (memberChangeRecord.getType() == UserChangeType.ON_DUTY.getCode()) { - if (userState.equals(UserChangeType.ON_DUTY.getDescription())) { - return Result.error("该用户当前的状态已经是" + UserChangeType.ON_DUTY.getDescription() + ",您无需变更!"); - } - } +// if (memberChangeRecord.getType() == UserChangeType.WORK.getCode()) { +// if (userState.equals(UserChangeType.WORK.getDescription())) { +// return Result.error("该用户当前的状态已经是" + UserChangeType.WORK.getDescription() + ",您无需变更!"); +// } +// } if (memberChangeRecord.getType() == UserChangeType.RESIGN.getCode()) { if (userState.equals(UserChangeType.RESIGN.getDescription())) { return Result.error("该用户当前的状态已经是" + UserChangeType.RESIGN.getDescription() + ",您无需变更!"); @@ -265,7 +265,6 @@ public class WelfareMemberCheckUnionController { } } - memberChangeRecord.setRecordMode(MemberChangeRecordMode.WELFARE_MEMBER.getCode()); memberChangeRecord.setApplyOrigin(MemberChangeOrigin.UNION.getCode()); memberChangeRecord = MemberChangeAuditHandle.CREATE.next(memberChangeRecord, null); @@ -310,7 +309,7 @@ public class WelfareMemberCheckUnionController { public Object doWelfareMember(String[] userIds, String taskId, @Param(value = "threeUnitId", required = false) String threeUnitId, @Param(value = "unitId", required = false) String unitId) { - if (ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (ShiroUtil.hasAnyRoles("sysadmin,A06")) { WelfareMemberMode.joinWelfareMember(Arrays.stream(userIds).collect(Collectors.toList())); return null; } diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/statistics/WelfareSingleController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/statistics/WelfareSingleController.java index 87f1910..4f5bec7 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/statistics/WelfareSingleController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/statistics/WelfareSingleController.java @@ -3,23 +3,22 @@ package io.v.nutz.zhgh.welfare.controller.statistics; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.annotation.Excel; import cn.afterturn.easypoi.excel.entity.ExportParams; +import cn.afterturn.easypoi.excel.entity.TemplateExportParams; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.afterturn.easypoi.excel.export.ExcelExportService; import cn.hutool.core.util.StrUtil; import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.utils.MsgApi; +import io.v.nutz.base.utils.OfficeTemplateUtil; import io.v.nutz.base.utils.Vi; import io.v.nutz.base.utils.ViTool; import io.v.nutz.sys.models.SysUnionGroup; import io.v.nutz.sys.models.Sys_union; -import io.v.nutz.sys.models.Sys_unit; import io.v.nutz.web.commons.base.Globals; import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.welfare.mode.WelfareUnitMode; -import io.v.nutz.zhgh.welfare.model.WelfareList; -import io.v.nutz.zhgh.welfare.model.WelfareProject; -import io.v.nutz.zhgh.welfare.model.WelfareUserSelection; +import io.v.nutz.zhgh.welfare.model.*; import io.v.nutz.zhgh.welfare.service.WelfareSingleService; import lombok.Data; import lombok.extern.slf4j.Slf4j; @@ -32,11 +31,11 @@ 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.SqlExpressionGroup; import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.json.Json; -import org.nutz.lang.Lang; import org.nutz.lang.Strings; import org.nutz.lang.util.NutMap; import org.nutz.mvc.annotation.At; @@ -48,10 +47,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.BufferedOutputStream; import java.io.IOException; import java.net.URLEncoder; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -74,6 +70,8 @@ public class WelfareSingleController { @Inject private Dao dao; + @Inject + private OfficeTemplateUtil officeTemplateUtil; @At("") @Ok("beetl:/platform/welfare/statistics/single.html") @@ -94,8 +92,10 @@ public class WelfareSingleController { public Object pageData(@Param(value = "projectId", required = false) String projectId, @Param(value = "month", required = false) String month, @Param(value = "welfareUnitCode", required = false) String welfareUnitCode, - @Param(value = "unionGroupId", required = false) String unionGroupId) { - return welfareSingleService.pageData(projectId, month, welfareUnitCode, unionGroupId); + @Param(value = "unionGroupId", required = false) String unionGroupId, + @Param(value = "personType", required = false) String personType + ) { + return welfareSingleService.pageData(projectId, month, welfareUnitCode, unionGroupId, personType); } /** @@ -209,49 +209,149 @@ public class WelfareSingleController { @Param(value = "month", required = false) String month, @Param(value = "unionGroupId", required = false) String unionGroupId, @Param(value = "isThreeUnit", required = false) Boolean isThreeUnit, + @Param(value = "personType", required = false) String personType, HttpServletResponse response) { - String title = "统计名单"; - if (StrUtil.isNotBlank(welfareUnitCode)) { - switch (WelfareUnitMode.getMode().name()) { - case "UNION" -> { - Sys_union sysUnion = dao.fetch(Sys_union.class, Cnd.where("unioncode", "=", welfareUnitCode)); - title = (Lang.isNotEmpty(sysUnion) ? sysUnion.getUnionname() : "") + "统计名单"; - } - case "UNIT" -> { - Sys_unit sysUnit = dao.fetch(Sys_unit.class, Cnd.where("unitcode", "=", welfareUnitCode)); - title = (Lang.isNotEmpty(sysUnit) ? sysUnit.getName() : "") + "统计名单"; - } - } + WelfareProject project = dao.fetch(WelfareProject.class, projectId); + WelfareProjectSubject subject = dao.fetch(WelfareProjectSubject.class, Cnd.where("projectId", "=", projectId)); + List subjectOptions = dao.query(WelfareProjectSubjectOption.class, Cnd.where("subjectId", "=", subject.getId()).asc("optionSort")); + List welfareLists = dao.query(WelfareList.class, Cnd.where("projectId", "=", projectId)); + + HashMap data = new HashMap<>(); + data.put("projectName", project.getName()); + data.put("personType", personType); + + List titles = subjectOptions.stream().map(o -> { + NutMap nutMap = NutMap.NEW(); + nutMap.put("optionName", o.getOptionName()); + nutMap.put("val", "t." + o.getOptionName()); + return nutMap; + }).collect(Collectors.toList()); + data.put("titles", titles); + + List> datas = new ArrayList<>(); + + Sql sql = Sqls.create(""" + SELECT + t1.selectOptionId, + t1.selectNum, + t2.welfareUnitId, + t3.unionname, + t2.personType + FROM + `welfare_project_user_selection` t1 + LEFT JOIN welfare_list t2 ON t2.userId = t1.selectUserId + AND t2.projectId = t1.welfareId + LEFT JOIN sys_union t3 ON t3.id = t2.welfareUnitId + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and("t1.welfareId", "=", projectId); + cnd.groupBy("t1.id"); + if (Objects.equals("在职教职工", personType)) { + cnd.and("t2.personType", "is not", null); + cnd.and("t2.personType", "!=", ""); + cnd.and("t2.personType", "!=", "劳务人才派遣"); + cnd.and("t2.personType", "!=", "其他类"); + } else if (Objects.equals("劳务派遣人员", personType)) { + cnd.and("t2.personType", "in", List.of("劳务人才派遣", "其他类")); + } else if (Objects.equals("空状态", personType)) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.or("t2.personType", "=", ""); + seg.orIsNull("t2.personType"); + cnd.and(seg); } + sql.setCondition(cnd); + List list = welfareSingleService.listMap(sql); - NutMap dataMap = welfareSingleService.pageData(projectId, month, welfareUnitCode, unionGroupId); - List entityList = new ArrayList<>(); - List labelList = dataMap.getAsList("tableColumn", NutMap.class); - List list = dataMap.getAsList("tableList", NutMap.class); + Map> welfareUnitGroups = list.stream().collect(Collectors.groupingBy(v -> v.getString("unionname"))); - NutMap map = NutMap.NEW().setv("welfareUnitName", "合计"); - labelList.forEach(o -> { - List numList = list.stream().map(v -> v.getInt(o.getString("prop"))).collect(Collectors.toList()); - int sum = numList.stream().mapToInt(Integer::intValue).sum(); - map.setv(o.getString("prop"), sum); - }); - list.add(map); + welfareUnitGroups.forEach((welfareUnitName, welfareUnitList) -> { + NutMap welfareUnitMap = NutMap.NEW(); + welfareUnitMap.addv("name", welfareUnitName); + for (int i = 0; i < subjectOptions.size(); i++) { + int finalI = i; + int sum = welfareUnitList.stream().filter(v -> v.getString("selectOptionId").equals(subjectOptions.get(finalI).getId())).mapToInt(x -> x.getInt("selectNum")).sum(); + welfareUnitMap.put(subjectOptions.get(finalI).getOptionName(), sum); + } + welfareUnitMap.addv("total", welfareUnitList.stream().mapToInt(x -> x.getInt("selectNum")).sum()); - labelList.add(0, NutMap.NEW().addv("label", "福利单位").addv("prop", "welfareUnitName")); - labelList.add(1, NutMap.NEW().addv("label", "福利单位编码").addv("prop", "welfareUnitCode")); - labelList.forEach(v -> { - entityList.add(new ExcelExportEntity(v.getString("label"), v.getString("prop"), 20)); + String welfareUnitId = welfareUnitList.stream().findFirst().map(v -> v.getString("welfareUnitId")).orElse(null); + + long welfareMemberCount = 0; + + if (Objects.equals("在职人员", personType)) { + welfareMemberCount = welfareLists.stream().filter(v -> Objects.equals(v.getWelfareUnitId(), welfareUnitId) + && !Objects.equals(v.getPersonType(), "劳务人才派遣") && !Objects.equals(v.getPersonType(), "其他类")).count(); + } else if (Objects.equals("劳务派遣人员", personType)) { + welfareMemberCount = welfareLists.stream().filter(v -> Objects.equals(v.getWelfareUnitId(), welfareUnitId) + && (Objects.equals(v.getPersonType(), "劳务人才派遣") || Objects.equals(v.getPersonType(), "其他类"))).count(); + } else if (Objects.equals("空状态", personType)) { + welfareMemberCount = welfareLists.stream().filter(v -> Objects.equals(v.getWelfareUnitId(), welfareUnitId) + && StrUtil.isBlank(v.getPersonType())).count(); + } +// long welfareMemberCount = welfareLists.stream().filter(v -> Objects.equals(v.getWelfareUnitId(), welfareUnitId)).count(); + welfareUnitMap.addv("welfareMemberCount", welfareMemberCount); + datas.add(welfareUnitMap); }); + data.put("data", datas); try { - ViTool.excelResponse(response, "汇总表.xls"); - Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(title, ""), entityList, list); + ViTool.excelResponse(response, personType + "发放清单.xlsx"); + TemplateExportParams templateExportParams = new TemplateExportParams(); + //开启横向遍历 + templateExportParams.setColForEach(true); + templateExportParams.setTemplateUrl("E:\\env\\福利导出模板.xlsx"); + Workbook workbook = ExcelExportUtil.exportExcel(templateExportParams, data); workbook.write(response.getOutputStream()); } catch (IOException e) { e.printStackTrace(); } + + +// String title = "统计名单"; +// if (StrUtil.isNotBlank(welfareUnitCode)) { +// switch (WelfareUnitMode.getMode().name()) { +// case "UNION" -> { +// Sys_union sysUnion = dao.fetch(Sys_union.class, Cnd.where("unioncode", "=", welfareUnitCode)); +// title = (Lang.isNotEmpty(sysUnion) ? sysUnion.getUnionname() : "") + "统计名单"; +// } +// case "UNIT" -> { +// Sys_unit sysUnit = dao.fetch(Sys_unit.class, Cnd.where("unitcode", "=", welfareUnitCode)); +// title = (Lang.isNotEmpty(sysUnit) ? sysUnit.getName() : "") + "统计名单"; +// } +// } +// +// } + +// NutMap dataMap = welfareSingleService.pageData(projectId, month, welfareUnitCode, unionGroupId,personType); +// List entityList = new ArrayList<>(); +// List labelList = dataMap.getAsList("tableColumn", NutMap.class); +// List list = dataMap.getAsList("tableList", NutMap.class); + +// NutMap map = NutMap.NEW().setv("welfareUnitName", "合计"); +// labelList.forEach(o -> { +// List numList = list.stream().map(v -> v.getInt(o.getString("prop"))).collect(Collectors.toList()); +// int sum = numList.stream().mapToInt(Integer::intValue).sum(); +// map.setv(o.getString("prop"), sum); +// }); +// list.add(map); +// +// labelList.add(0, NutMap.NEW().addv("label", "福利单位").addv("prop", "welfareUnitName")); +// labelList.add(1, NutMap.NEW().addv("label", "福利单位编码").addv("prop", "welfareUnitCode")); +// labelList.forEach(v -> { +// entityList.add(new ExcelExportEntity(v.getString("label"), v.getString("prop"), 20)); +// }); +// +// +// try { +// ViTool.excelResponse(response, "汇总表.xls"); +// Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(title, ""), entityList, list); +// workbook.write(response.getOutputStream()); +// } catch (IOException e) { +// e.printStackTrace(); +// } } @@ -698,10 +798,10 @@ public class WelfareSingleController { wpus.selectNum, wpso.optionName FROM - welfare_project_user_selection_copy wpus + welfare_project_user_selection wpus left join sys_user u on u.id = wpus.selectUserId left join welfare_project_subject_option wpso on wpso.id = wpus.selectOptionId - left join welfare_list wl on wl.userId = wpus.selectUserId + left join welfare_list wl on wl.userId = wpus.selectUserId AND wpus.welfareId = wl.projectId left join sys_union gh on gh.id = wl.welfareUnitId left join sys_unit dw on dw.id = wl.welfareSecondLevelUnitId $condition @@ -724,7 +824,7 @@ public class WelfareSingleController { exportEntities.add(new ExcelExportEntity("姓名", "username", 20)); exportEntities.add(new ExcelExportEntity("电话号码", "mobile", 20)); exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20)); - exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20)); + exportEntities.add(new ExcelExportEntity("人员性质", "personType", 20)); exportEntities.add(new ExcelExportEntity("所在分工会", "unionname", 30)); exportEntities.add(new ExcelExportEntity("所在单位", "unitname", 50)); exportEntities.add(new ExcelExportEntity("选择份数", "selectNum", 20)); diff --git a/src/main/java/io/v/nutz/zhgh/welfare/feature/WelfareFeature.java b/src/main/java/io/v/nutz/zhgh/welfare/feature/WelfareFeature.java index 93355bf..96a02a0 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/feature/WelfareFeature.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/feature/WelfareFeature.java @@ -29,7 +29,7 @@ public interface WelfareFeature { * @return */ static boolean judgmentAuthority() { - return ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionWelfareAdmin,SchoolUnionAdmin,SchoolUnionMemberAdmin"); + return ShiroUtil.hasAnyRoles("sysadmin,A06"); } interface Condition { diff --git a/src/main/java/io/v/nutz/zhgh/welfare/model/WelfareList.java b/src/main/java/io/v/nutz/zhgh/welfare/model/WelfareList.java index f6ec84c..09992ef 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/model/WelfareList.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/model/WelfareList.java @@ -58,7 +58,7 @@ public class WelfareList { private Boolean isAutoSelect; @Column - @Comment("人员类型") + @Comment("人员性质") @ColDefine(type = ColType.VARCHAR) private String personType; diff --git a/src/main/java/io/v/nutz/zhgh/welfare/model/WelfareProject.java b/src/main/java/io/v/nutz/zhgh/welfare/model/WelfareProject.java index 84da064..224198c 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/model/WelfareProject.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/model/WelfareProject.java @@ -1,6 +1,8 @@ package io.v.nutz.zhgh.welfare.model; import io.v.nutz.base.model.ViBaseModel; +import io.v.nutz.sys.models.Sys_home_activity; +import io.v.nutz.sys.services.SysHomeConvert; import io.v.nutz.zhgh.data.model.MatchConditionStructure; import io.v.nutz.zhgh.welfare.mode.WelfareNoticePushMode; import io.v.nutz.zhgh.welfare.mode.WelfareProvideMode; @@ -11,6 +13,7 @@ import lombok.experimental.Accessors; import org.nutz.dao.entity.annotation.*; import org.nutz.dao.interceptor.annotation.PrevInsert; +import java.io.Serializable; import java.util.Date; import java.util.List; @@ -26,7 +29,10 @@ import java.util.List; @Accessors(chain = true) @Table("welfare_project") @Comment("福利项目") -public class WelfareProject extends ViBaseModel { +public class WelfareProject extends ViBaseModel implements Serializable, SysHomeConvert { + + private static final long serialVersionUID = 1L; + @Column @Name @Comment("ID") @@ -215,4 +221,20 @@ public class WelfareProject extends ViBaseModel { @ColDefine(type = ColType.BOOLEAN) private Boolean isDisabled; + + @Override + public Sys_home_activity covertToSysHomeActivity() { + Sys_home_activity sysHomeActivity = new Sys_home_activity(); + sysHomeActivity.setId(this.getId()); + sysHomeActivity.setName(this.getName()); + sysHomeActivity.setCover(this.getCover()); + sysHomeActivity.setUrl("/platform/welfare/userChoose"); + sysHomeActivity.setH5Url("/mobile/welfare/list/receive?projectId=" + this.getId()); + sysHomeActivity.setStartDate(this.getChoiceTimeStart()); + sysHomeActivity.setEndDate(this.getChoiceTimeEnd()); + sysHomeActivity.setAllowUserSql("select userId from welfare_list where projectId = '"+this.getId()+"' and userId = @userId"); + sysHomeActivity.setEnable(true); + sysHomeActivity.setClassPath(this.getClass().getPackageName() + this.getClass().getName()); + return sysHomeActivity; + } } diff --git a/src/main/java/io/v/nutz/zhgh/welfare/service/WelfareSingleService.java b/src/main/java/io/v/nutz/zhgh/welfare/service/WelfareSingleService.java index 9fb3913..3c61e5a 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/service/WelfareSingleService.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/service/WelfareSingleService.java @@ -53,7 +53,7 @@ public interface WelfareSingleService extends ViService { * @param projectId 福利id * @return */ - NutMap pageData(String projectId, String month, String welfareUnitCode, String unionGroupId); + NutMap pageData(String projectId, String month, String welfareUnitCode, String unionGroupId,String personType); NutMap exportByUnit(String projectId, String welfareUnitCode); diff --git a/src/main/java/io/v/nutz/zhgh/welfare/service/impl/WelfareListServiceImpl.java b/src/main/java/io/v/nutz/zhgh/welfare/service/impl/WelfareListServiceImpl.java index 6cf5d67..374a928 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/service/impl/WelfareListServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/service/impl/WelfareListServiceImpl.java @@ -149,6 +149,8 @@ public class WelfareListServiceImpl extends ViServiceImpl implement list.setUserId(user.getString("id")); list.setWelfareUnitId(user.getString(field)); list.setWelfareSecondLevelUnitId(user.getString("unitid")); + list.setUserState(user.getString("userState")); + list.setPersonType(user.getString("personType")); lists.add(list); } dao().insert(lists); diff --git a/src/main/java/io/v/nutz/zhgh/welfare/service/impl/WelfareSingleServiceImpl.java b/src/main/java/io/v/nutz/zhgh/welfare/service/impl/WelfareSingleServiceImpl.java index e551dc4..5fdf19a 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/service/impl/WelfareSingleServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/service/impl/WelfareSingleServiceImpl.java @@ -119,7 +119,7 @@ public class WelfareSingleServiceImpl extends ViServiceImpl impl sys_union un $condition """); - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { if (ShiroUtil.hasAnyRoles("H04,gh12")) { cnd.and("un.id", "=", Vi.getUnionId()); } @@ -184,10 +184,11 @@ public class WelfareSingleServiceImpl extends ViServiceImpl impl wpus.selectUserId, wl.welfareUnitId as unionId FROM - `welfare_project_user_selection_copy` wpus - LEFT JOIN welfare_list wl on wl.userId = wpus.selectUserId + `welfare_project_user_selection` wpus + LEFT JOIN welfare_list wl on wl.userId = wpus.selectUserId AND wpus.welfareId = wl.projectId $condition """); + cnd.groupBy("wpus.id"); sql.setCondition(cnd); return listMap(sql); } @@ -199,7 +200,7 @@ public class WelfareSingleServiceImpl extends ViServiceImpl impl * @return */ @Override - public NutMap pageData(String projectId, String month, String welfareUnitCode, String unionGroupId) { + public NutMap pageData(String projectId, String month, String welfareUnitCode, String unionGroupId, String personType) { boolean isThreeUnit = Globals.MyConfig.getBoolean("isThreeUnit"); Sql welfareUnitSql = Sqls.create(""" SELECT @@ -210,8 +211,8 @@ public class WelfareSingleServiceImpl extends ViServiceImpl impl """); CndPlus cnd = CndPlus.create(); - if(!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionWelfareAdmin")){ - cnd.and("unit.welfareUnitId","=",Vi.getUnionId()); + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,SchoolUnionWelfareAdmin")) { + cnd.and("unit.welfareUnitId", "=", Vi.getUnionId()); } @@ -476,7 +477,7 @@ public class WelfareSingleServiceImpl extends ViServiceImpl impl welfare_project_user_selection wpus LEFT JOIN `user` u ON u.id = wpus.selectUserId LEFT JOIN welfare_project_subject_option wpso ON wpso.id = wpus.selectOptionId - LEFT JOIN view_welfare_list vwl on vwl.id = wpus.selectUserId + LEFT JOIN view_welfare_list vwl on vwl.id = wpus.selectUserId AND wpus.welfareId=vwl.projectId $condition $monthCnd """).setParam("welfareId", projectId); @@ -530,14 +531,6 @@ public class WelfareSingleServiceImpl extends ViServiceImpl impl * 未领取人员信息 * * @param projectId - * - * - * - * - * - * - * - * * @param welfareUnitCode * @return */ @@ -658,27 +651,51 @@ public class WelfareSingleServiceImpl extends ViServiceImpl impl optionSql.setParam("projectId", projectId); List options = (List) Daos.query(dao(), optionSql.toString(), Sqls.callback.maps()); +// Sql sql = Sqls.create(""" +// SELECT +// vwl.loginname, +// vwl.username, +// vwl.unionid, +// vwl.unionname, +// wpus.userSign, +// wpus.selectOptionId, +// wpus.selectNum +// FROM +// view_welfare_list vwl +// LEFT JOIN welfare_project_user_selection wpus ON wpus.selectUserId = vwl.id +// AND wpus.welfareId = @projectId +// WHERE +// projectId = @projectId +// AND vwl.unionid = @unionId +// """); Sql sql = Sqls.create(""" SELECT - vwl.loginname, - vwl.username, - vwl.unionid, - vwl.unionname, + u.loginname, + u.username, + vwl.welfareUnitId as unionid, + gh.unionname as unionname, + vwl.welfareSecondLevelUnitId as unitid, + dw.`name` as unitname, wpus.userSign, wpus.selectOptionId, - wpus.selectNum + wpus.selectNum\s FROM - view_welfare_list vwl - LEFT JOIN welfare_project_user_selection wpus ON wpus.selectUserId = vwl.id - AND wpus.welfareId = @projectId + welfare_list vwl + LEFT join sys_user u on u.id = vwl.userId + left join sys_union gh on gh.id = vwl.welfareUnitId + left join sys_unit dw on dw.id = vwl.welfareSecondLevelUnitId + LEFT JOIN welfare_project_user_selection wpus ON wpus.selectUserId = vwl.userId\s + AND wpus.welfareId = @projectId\s WHERE projectId = @projectId - AND vwl.unionid = @unionId + AND vwl.welfareUnitId = @unionId + order by vwl.welfareUnitId,vwl.welfareSecondLevelUnitId """); + sql.setParam("projectId", projectId); sql.setParam("unionId", welfareUnitId); List list = listMap(sql); - list.forEach(l->{ + list.forEach(l -> { if (StrUtil.isNotBlank(l.getString("userSign"))) { try { ByteArrayOutputStream signOs = new ByteArrayOutputStream(); @@ -698,6 +715,10 @@ public class WelfareSingleServiceImpl extends ViServiceImpl impl List exportEntities = new ArrayList<>(); exportEntities.add(new ExcelExportEntity("序号", "no", 20)); exportEntities.add(new ExcelExportEntity("姓名", "username", 20)); + exportEntities.add(new ExcelExportEntity("工号", "loginname", 20)); + exportEntities.add(new ExcelExportEntity("所在分工会", "unionname", 20)); + exportEntities.add(new ExcelExportEntity("所在单位", "unitname", 20)); + for (NutMap option : options) { exportEntities.add(new ExcelExportEntity(option.getString("optionName"), option.getString("id"), 20)); } @@ -715,6 +736,10 @@ public class WelfareSingleServiceImpl extends ViServiceImpl impl NutMap data = NutMap.NEW(); NutMap userMap = list.stream().filter(x -> x.getString("loginname").equals(v)).findFirst().get(); data.put("username", userMap.getString("username")); + data.put("loginname", userMap.getString("loginname")); + data.put("unitname", userMap.getString("unitname")); + data.put("unionname", userMap.getString("unionname")); + data.put("qzBytes", userMap.get("qzBytes")); for (NutMap option : options) { if (StrUtil.isNotBlank(userMap.getString("selectOptionId"))) { diff --git a/src/main/resources/static/assets/platform/module/mixins/styleMixin.js b/src/main/resources/static/assets/platform/module/mixins/styleMixin.js new file mode 100644 index 0000000..ed0d274 --- /dev/null +++ b/src/main/resources/static/assets/platform/module/mixins/styleMixin.js @@ -0,0 +1,23 @@ +Vue.mixin({ + mounted() { + if (this.$options.style) { + const styleId = `style-${this._uid}` + const style = document.createElement("style") + style.id = styleId + //支持函数和字符串 + const css = typeof this.$options.style === "function" ? this.$options.style.call(this) : this.$options.style + style.textContent = css + document.head.appendChild(style) + } + }, + + beforeDestroy() { + if (this.$options.style) { + const styleId = `style-${this._uid}` + const style = document.getElementById(styleId) + if (style) { + document.head.removeChild(style) + } + } + } +}) diff --git a/src/main/resources/static/components/activityBx/ActivityBxInfo.vue b/src/main/resources/static/components/activityBx/ActivityBxInfo.vue index 4d54324..0f6e5aa 100644 --- a/src/main/resources/static/components/activityBx/ActivityBxInfo.vue +++ b/src/main/resources/static/components/activityBx/ActivityBxInfo.vue @@ -1,548 +1,521 @@ diff --git a/src/main/resources/static/components/activityBx/ActivityBxSearch.vue b/src/main/resources/static/components/activityBx/ActivityBxSearch.vue index c974676..147c262 100644 --- a/src/main/resources/static/components/activityBx/ActivityBxSearch.vue +++ b/src/main/resources/static/components/activityBx/ActivityBxSearch.vue @@ -1,73 +1,68 @@ \ No newline at end of file + diff --git a/src/main/resources/static/components/member/MemberInfo.vue b/src/main/resources/static/components/member/MemberInfo.vue index ed36f10..996a3f9 100644 --- a/src/main/resources/static/components/member/MemberInfo.vue +++ b/src/main/resources/static/components/member/MemberInfo.vue @@ -1,915 +1,636 @@ + - - - + + + - - - + + + - - - - - - - - - + + + + + + + + + + 提交 + - 提交 - +
+

工会会员登记表

+
填表日期:{{ moment(formData.applyTime).format("YYYY年MM月DD日") }}
+ + + {{ formData.username }} + {{ formData.sex }} + {{ formData.nation }} + {{ formData.education }} + {{ formData.political }} + {{ formData.marriage }} + {{ formData.idcard }} + {{ formData.mobile }} + + +
+
+ + +
+
+ + +
{{ formData.unitname + "" + (formData.jobTitle ? "、" + formData.jobTitle : "") }}
+
+ + +
+
+ + +
+
+
+ + + + + + + + + +
- -
- -

工会会员登记表

-
填表日期:{{ moment(formData.applyTime).format('YYYY年MM月DD日') }}
- - - {{ formData.username}} - {{ formData.sex}} - {{ formData.nation}} - {{ formData.education}} - {{ formData.political}} - {{ formData.marriage}} - {{ formData.idcard}} - {{ formData.mobile}} - - -
-
- - -
-
- - -
{{ formData.unitname + '' + (formData.jobTitle ? '、' + formData.jobTitle : "") }}
-
- - -
-
- - -
-
-
- - - - - - - - - - - - - - -
- - diff --git a/src/main/resources/static/components/plugins/TextEditor.vue b/src/main/resources/static/components/plugins/TextEditor.vue index 7abb195..6d03ac6 100644 --- a/src/main/resources/static/components/plugins/TextEditor.vue +++ b/src/main/resources/static/components/plugins/TextEditor.vue @@ -1,230 +1,222 @@ -/** -*Desc: -*Create by: jug -*Create time:2024/1/24/16:40 -*/ - - - - + diff --git a/src/main/resources/static/components/sign/mobileSign.vue b/src/main/resources/static/components/sign/mobileSign.vue index 9342530..fad4cc9 100644 --- a/src/main/resources/static/components/sign/mobileSign.vue +++ b/src/main/resources/static/components/sign/mobileSign.vue @@ -1,166 +1,156 @@ - diff --git a/src/main/resources/static/components/sign/sign.vue b/src/main/resources/static/components/sign/sign.vue index 2785eef..9c77c5a 100644 --- a/src/main/resources/static/components/sign/sign.vue +++ b/src/main/resources/static/components/sign/sign.vue @@ -1,203 +1,201 @@ diff --git a/src/main/resources/views/mobile/activity/Sports/activityEventList.html b/src/main/resources/views/mobile/activity/Sports/activityEventList.html index abe500e..9e5ff53 100644 --- a/src/main/resources/views/mobile/activity/Sports/activityEventList.html +++ b/src/main/resources/views/mobile/activity/Sports/activityEventList.html @@ -24,57 +24,47 @@ layout("/mobile/platform.html"){ .list-card .van-cell__value { flex: 2; } - -
- +
- - - + + +
-
- +
- - + + - - {{o.allName}} - + {{o.allName}} {{o.projectType==1?'单项':'团体'}} - - {{o.activityTeamName?o.activityTeamName:'暂无'}} - + {{o.activityTeamName?o.activityTeamName:'暂无'}} {{o.startAgeDate}}至{{o.endAgeDate}} 暂无 - - {{o.restrictTotalTeam}}队 - + {{o.restrictTotalTeam}}队 {{o.athletesMaxNum}}人 {{o.athletesMaxNum*o.restrictTotalTeam}}人 @@ -87,15 +77,19 @@ layout("/mobile/platform.html"){ {{o.totalApplyNum}}人 0人 -
- + - - - - - +
- \ No newline at end of file +#--> diff --git a/src/main/resources/views/mobile/activity/Sports/activityList.html b/src/main/resources/views/mobile/activity/Sports/activityList.html index eaf7bb9..7b2e67b 100644 --- a/src/main/resources/views/mobile/activity/Sports/activityList.html +++ b/src/main/resources/views/mobile/activity/Sports/activityList.html @@ -18,14 +18,12 @@ layout("/mobile/platform.html"){
- +
- - + +
@@ -34,27 +32,33 @@ layout("/mobile/platform.html"){
- - {{o.NAME}} - + {{o.NAME}} {{o.address}} - {{moment(o.applyStartTime).format('YYYY/MM/DD HH:mm')}} 至 - {{moment(o.applyEndTime).format('YYYY/MM/DD HH:mm')}} + {{moment(o.applyStartTime).format('YYYY/MM/DD HH:mm')}} 至 {{moment(o.applyEndTime).format('YYYY/MM/DD HH:mm')}} - {{moment(o.startTime).format('YYYY/MM/DD HH:mm')}} 至 - {{moment(o.endTime).format('YYYY/MM/DD HH:mm')}} + {{moment(o.startTime).format('YYYY/MM/DD HH:mm')}} 至 {{moment(o.endTime).format('YYYY/MM/DD HH:mm')}} 未开始 - 报名中 - 进行中 + + 报名中 + + + 进行中 + 活动结束 @@ -62,27 +66,24 @@ layout("/mobile/platform.html"){
- - - +
- diff --git a/src/main/resources/views/mobile/activity/Sports/myProject.html b/src/main/resources/views/mobile/activity/Sports/myProject.html index 1464dcb..5d36be4 100644 --- a/src/main/resources/views/mobile/activity/Sports/myProject.html +++ b/src/main/resources/views/mobile/activity/Sports/myProject.html @@ -20,20 +20,19 @@ layout("/mobile/platform.html"){
- +
- + - - {{o.allName}} - + {{o.allName}} {{o.projectType==1?'单项':'团体'}} @@ -47,7 +46,6 @@ layout("/mobile/platform.html"){ {{o.athletesMaxNum}}人 {{o.restrictGirlNum+o.restrictBoyNum}}人 暂无 - {{o.applyNum}}人 @@ -57,24 +55,22 @@ layout("/mobile/platform.html"){
-
- \ No newline at end of file +#--> diff --git a/src/main/resources/views/mobile/activity/site/apply.html b/src/main/resources/views/mobile/activity/site/apply.html index 8a2887f..64e20f0 100644 --- a/src/main/resources/views/mobile/activity/site/apply.html +++ b/src/main/resources/views/mobile/activity/site/apply.html @@ -7,7 +7,6 @@ layout("/mobile/platform.html"){ background: #ececec; } - .tips .content { height: calc(80vh - 49px); overflow-y: scroll; @@ -15,7 +14,12 @@ layout("/mobile/platform.html"){ /*padding: 5px*/ } - .tips .content h1, h2, h3, h4, h5, h6 { + .tips .content h1, + h2, + h3, + h4, + h5, + h6 { font-weight: unset; margin: 10px; } @@ -58,7 +62,6 @@ layout("/mobile/platform.html"){ /*border-left: none;*/ } - .table-container table td { /*background-color: #f2f2f2;*/ } @@ -81,180 +84,188 @@ layout("/mobile/platform.html"){ .siteUsageTabs .van-tabs__line { display: none; } - -
- + - -
- 近一周预约情况 -
+
近一周预约情况
- - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + +
开始时间结束时间联系人联系人部门活动名称活动性质
开始时间结束时间联系人联系人部门活动名称活动性质
{{item.reserve_start_time}}{{item.reserve_end_time}}{{item.reserve_person_username}}{{item.reserve_person_unitname}}{{item.reserve_activity}}{{item.activity_nature}}
{{item.reserve_start_time}}{{item.reserve_end_time}}{{item.reserve_person_username}}{{item.reserve_person_unitname}}{{item.reserve_activity}}{{item.activity_nature}}
-
- 填写预约信息 -
+
填写预约信息
- + - - + - + + - + + + + + + + - - - - - - + - - + + - - - - - - - - - - + + -
+
提交
- - + @@ -354,37 +360,37 @@ layout("/mobile/platform.html"){ + title="请选择活动性质" + show-toolbar + :columns="siteNatureColumns" + @confirm="onsiteNatureConfirm" + @cancel="showSiteNaturePicker = false" + > - - - - - - - - - - - - - - - + + + + + + + + + + + + + + -
+
取消
确认
确认 @@ -402,7 +408,7 @@ layout("/mobile/platform.html"){ diff --git a/src/main/resources/views/mobile/activity/site/mine.html b/src/main/resources/views/mobile/activity/site/mine.html index 4c12ec1..939285c 100644 --- a/src/main/resources/views/mobile/activity/site/mine.html +++ b/src/main/resources/views/mobile/activity/site/mine.html @@ -43,11 +43,9 @@ layout("/mobile/platform.html"){ } .cell .title { - } .cell .content { - } .extra { @@ -56,38 +54,28 @@ layout("/mobile/platform.html"){ justify-content: flex-end; gap: 10px; } -
- +
- + v-model="pageForm.searchKeyword" + shape="round" + maxlength="10" + @search="doSearch" + placeholder="请输入场地名称进行查询" + >
- +
-
- {{item.reserve_cause}} -
- - {{item.state_name}} - +
{{item.reserve_cause}}
+ {{item.state_name}}
预约场地:
@@ -119,9 +107,7 @@ layout("/mobile/platform.html"){
查看详情 - 撤销预约 - + 撤销预约
@@ -132,56 +118,54 @@ layout("/mobile/platform.html"){ diff --git a/src/main/resources/views/mobile/activity/site/retireAudit/audit.html b/src/main/resources/views/mobile/activity/site/retireAudit/audit.html index fcbddb4..3d10195 100644 --- a/src/main/resources/views/mobile/activity/site/retireAudit/audit.html +++ b/src/main/resources/views/mobile/activity/site/retireAudit/audit.html @@ -3,57 +3,47 @@ layout("/mobile/platform.html"){ #-->
- + - -
- - diff --git a/src/main/resources/views/mobile/difficulty/apply.html b/src/main/resources/views/mobile/difficulty/apply.html index 35f1381..e960e25 100644 --- a/src/main/resources/views/mobile/difficulty/apply.html +++ b/src/main/resources/views/mobile/difficulty/apply.html @@ -3,14 +3,15 @@ layout("/mobile/platform.html"){ #-->
- + - + - + - - + - @@ -46,44 +52,62 @@ layout("/mobile/platform.html"){ - - + - - + - + - - + - + - @@ -109,28 +133,22 @@ layout("/mobile/platform.html"){
- - 提 交 - + 提 交
- 困难补助申请 - - - 困难补助记录 - + 困难补助申请 + 困难补助记录
-
diff --git a/src/main/resources/views/mobile/difficulty/apply_info.html b/src/main/resources/views/mobile/difficulty/apply_info.html index 76a9bfd..c01de28 100644 --- a/src/main/resources/views/mobile/difficulty/apply_info.html +++ b/src/main/resources/views/mobile/difficulty/apply_info.html @@ -1,12 +1,10 @@ - +
- +
@@ -15,7 +13,7 @@ layout("/mobile/platform.html"){ \ No newline at end of file +#--> diff --git a/src/main/resources/views/mobile/difficulty/apply_list.html b/src/main/resources/views/mobile/difficulty/apply_list.html index 33ca1b2..c81ccbb 100644 --- a/src/main/resources/views/mobile/difficulty/apply_list.html +++ b/src/main/resources/views/mobile/difficulty/apply_list.html @@ -3,10 +3,10 @@ layout("/mobile/platform.html"){ #-->
- +
@@ -30,14 +29,11 @@ layout("/mobile/platform.html"){
- +
- - {{o.sbzrname}}({{o.sbzrloginname}}) - + {{o.sbzrname}}({{o.sbzrloginname}}) {{o.sqsj}} {{o.unitname}} @@ -50,34 +46,30 @@ layout("/mobile/platform.html"){
- - +
\ No newline at end of file +#--> diff --git a/src/main/resources/views/mobile/difficulty/audit_list.html b/src/main/resources/views/mobile/difficulty/audit_list.html index 929f397..af52def 100644 --- a/src/main/resources/views/mobile/difficulty/audit_list.html +++ b/src/main/resources/views/mobile/difficulty/audit_list.html @@ -3,36 +3,24 @@ layout("/mobile/platform.html"){ #-->
- - +
- - - - - + + + +
- +
- - {{o.sbzrname}}({{o.sbzrloginname}}) - + {{o.sbzrname}}({{o.sbzrloginname}}) {{o.sqrname}} {{o.sqrunionname}} @@ -46,18 +34,13 @@ layout("/mobile/platform.html"){
- - - - +
- \ No newline at end of file +#--> diff --git a/src/main/resources/views/mobile/difficulty/school_Audit.html b/src/main/resources/views/mobile/difficulty/school_Audit.html index c9cd5f0..b501e39 100644 --- a/src/main/resources/views/mobile/difficulty/school_Audit.html +++ b/src/main/resources/views/mobile/difficulty/school_Audit.html @@ -3,35 +3,20 @@ layout("/mobile/platform.html"){ #-->
- - + - -
- - diff --git a/src/main/resources/views/mobile/difficulty/union_Audit.html b/src/main/resources/views/mobile/difficulty/union_Audit.html index 3faad7b..34cd51d 100644 --- a/src/main/resources/views/mobile/difficulty/union_Audit.html +++ b/src/main/resources/views/mobile/difficulty/union_Audit.html @@ -3,34 +3,26 @@ layout("/mobile/platform.html"){ #-->
- - + - + - 拒 绝 - + 拒 绝 - 返回修改 - + 返回修改 - 通 过 - + 通 过 - - -
- - diff --git a/src/main/resources/views/mobile/healthCheckup/checkUp.html b/src/main/resources/views/mobile/healthCheckup/checkUp.html index 53803fc..bf2f65c 100644 --- a/src/main/resources/views/mobile/healthCheckup/checkUp.html +++ b/src/main/resources/views/mobile/healthCheckup/checkUp.html @@ -3,7 +3,6 @@ layout("/mobile/platform.html"){ #-->
- - +
- -
-
- 体检套餐 -
+
体检套餐
@@ -144,9 +137,9 @@ layout("/mobile/platform.html"){ - -
- - diff --git a/src/main/resources/views/mobile/member/school_audit_change_list.html b/src/main/resources/views/mobile/member/school_audit_change_list.html index 5c56611..3e59f07 100644 --- a/src/main/resources/views/mobile/member/school_audit_change_list.html +++ b/src/main/resources/views/mobile/member/school_audit_change_list.html @@ -4,156 +4,89 @@ layout("/mobile/platform.html"){
- +
- - + +
- +
- - {{o.username}}({{o.loginname}}) - + {{o.username}}({{o.loginname}}) {{o.applyTime|date}} {{o.unionname}} - {{changeOrigin[o.applyOrigin]}} - + {{changeOrigin[o.applyOrigin]}} {{ o.stateName }} -
- - +
+ {{o.stateId===60?'审核':'查看'}} -
- - - - +
- - + - -
- \ No newline at end of file +#--> diff --git a/src/main/resources/views/mobile/member/union_Audit.html b/src/main/resources/views/mobile/member/union_Audit.html index 8223761..a7000ba 100644 --- a/src/main/resources/views/mobile/member/union_Audit.html +++ b/src/main/resources/views/mobile/member/union_Audit.html @@ -3,36 +3,26 @@ layout("/mobile/platform.html"){ #-->
- - + - + - 拒 绝 - + 拒 绝 - 通 过 - + 通 过 - - -
- - diff --git a/src/main/resources/views/mobile/member/union_audit_change_list.html b/src/main/resources/views/mobile/member/union_audit_change_list.html index 5862c23..8acdf92 100644 --- a/src/main/resources/views/mobile/member/union_audit_change_list.html +++ b/src/main/resources/views/mobile/member/union_audit_change_list.html @@ -4,159 +4,91 @@ layout("/mobile/platform.html"){
- +
- - + +
- +
- - {{o.username}}({{o.loginname}}) - + {{o.username}}({{o.loginname}}) {{o.applyTime|date}} {{o.unionname}} - {{changeOrigin[o.applyOrigin]}} - + {{changeOrigin[o.applyOrigin]}} {{ o.stateName }} -
- - +
+ {{o.stateId===50?'审核':'查看'}} -
- - - - +
- - + - -
- \ No newline at end of file +#--> diff --git a/src/main/resources/views/mobile/memberCost/memberCostList.html b/src/main/resources/views/mobile/memberCost/memberCostList.html index ee3265b..0e6ed94 100644 --- a/src/main/resources/views/mobile/memberCost/memberCostList.html +++ b/src/main/resources/views/mobile/memberCost/memberCostList.html @@ -23,7 +23,6 @@ layout("/mobile/platform.html"){ position: absolute; right: 10px; bottom: 0px; - } .menu_img_yjf { @@ -46,10 +45,8 @@ layout("/mobile/platform.html"){
- - +
@@ -59,77 +56,54 @@ layout("/mobile/platform.html"){ -