diff --git a/src/main/java/com/budwk/app/base/utils/EasyExcelUtil.java b/src/main/java/com/budwk/app/base/utils/easyexcel/EasyExcelUtil.java similarity index 96% rename from src/main/java/com/budwk/app/base/utils/EasyExcelUtil.java rename to src/main/java/com/budwk/app/base/utils/easyexcel/EasyExcelUtil.java index 7bc9ade3..e0adb5b0 100644 --- a/src/main/java/com/budwk/app/base/utils/EasyExcelUtil.java +++ b/src/main/java/com/budwk/app/base/utils/easyexcel/EasyExcelUtil.java @@ -1,4 +1,4 @@ -package com.budwk.app.base.utils; +package com.budwk.app.base.utils.easyexcel; import com.alibaba.excel.EasyExcelFactory; import org.apache.poi.ss.formula.functions.T; diff --git a/src/main/java/com/budwk/app/base/utils/easyexcel/NoModelDataListener.java b/src/main/java/com/budwk/app/base/utils/easyexcel/NoModelDataListener.java new file mode 100644 index 00000000..97fd8df7 --- /dev/null +++ b/src/main/java/com/budwk/app/base/utils/easyexcel/NoModelDataListener.java @@ -0,0 +1,63 @@ +package com.budwk.app.base.utils.easyexcel; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.read.listener.ReadListener; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; +import org.nutz.lang.util.NutMap; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +/** + * @version 1.0 + * @Author FKY + * @name:NoModelDataListener + * @Date 2025/11/8 15:22 + * @注释 没有定义的数据对象的读取 + */ +@Slf4j +public class NoModelDataListener implements ReadListener> { + + private boolean firstRow = true; + // 表头数据 + @Getter + private List headers = new ArrayList<>(); + // 表内容数据 + @Getter + private List dataList = new ArrayList<>(); + + @Override + public void invoke(Map rowMap, AnalysisContext context) { + if (firstRow) { + // 第一行是表头:按列索引存 header + headers = new ArrayList<>(Collections.nCopies(rowMap.size(), "")); + for (Map.Entry entry : rowMap.entrySet()) { + headers.set(entry.getKey(), entry.getValue()); + } + firstRow = false; + } else { + // 后续行是数据:用 header 作为 key + NutMap nutMap = new NutMap(); + for (Map.Entry entry : rowMap.entrySet()) { + Integer colIndex = entry.getKey(); + String value = entry.getValue(); + String header = colIndex < headers.size() ? headers.get(colIndex) : "Column" + colIndex; + nutMap.put(header, value); + } + dataList.add(nutMap); + } + } + + public List getDataList() { + return dataList; + } + + @Override + public void doAfterAllAnalysed(AnalysisContext context) { + log.info("共读取 {} 行数据(不含表头)", dataList.size()); + } + +} diff --git a/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicScopeController.java b/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicScopeController.java index 60f6f92f..8932dc22 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicScopeController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicScopeController.java @@ -16,7 +16,7 @@ import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; import com.budwk.app.base.service.BaseService; import com.budwk.app.base.utils.CommonDownloadUtil; -import com.budwk.app.base.utils.EasyExcelUtil; +import com.budwk.app.base.utils.easyexcel.EasyExcelUtil; import com.budwk.app.sys.models.Sys_role; import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.zhgh.activity.basic.models.ActivityUserScope; diff --git a/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicScopeUserDataController.java b/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicScopeUserDataController.java index 7d3959af..925fb6c0 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicScopeUserDataController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicScopeUserDataController.java @@ -16,7 +16,7 @@ import com.budwk.app.base.param.PageForm; import com.budwk.app.base.result.Result; import com.budwk.app.base.service.BaseService; import com.budwk.app.base.utils.CommonDownloadUtil; -import com.budwk.app.base.utils.EasyExcelUtil; +import com.budwk.app.base.utils.easyexcel.EasyExcelUtil; import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.zhgh.activity.basic.models.ActivityUserScope; import com.budwk.app.zhgh.activity.basic.template.UserTemp; diff --git a/src/main/java/com/budwk/app/zhgh/benefit/service/impl/BenefitUserServiceImpl.java b/src/main/java/com/budwk/app/zhgh/benefit/service/impl/BenefitUserServiceImpl.java index 34a3a851..f971d93f 100644 --- a/src/main/java/com/budwk/app/zhgh/benefit/service/impl/BenefitUserServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/benefit/service/impl/BenefitUserServiceImpl.java @@ -5,7 +5,7 @@ import cn.hutool.json.JSONUtil; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; import com.budwk.app.base.service.impl.BaseServiceImpl; -import com.budwk.app.base.utils.EasyExcelUtil; +import com.budwk.app.base.utils.easyexcel.EasyExcelUtil; import com.budwk.app.sys.views.View_user; import com.budwk.app.zhgh.benefit.mode.BenefitUserTemp; import com.budwk.app.zhgh.benefit.models.BenefitUser; diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubInfoManageController.java b/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubInfoManageController.java index ee68944e..c6436bb8 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubInfoManageController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/infoManage/ClubInfoManageController.java @@ -9,9 +9,8 @@ import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; import com.budwk.app.base.utils.CommonDownloadUtil; -import com.budwk.app.base.utils.EasyExcelUtil; +import com.budwk.app.base.utils.easyexcel.EasyExcelUtil; import com.budwk.app.sys.models.Sys_role; -import com.budwk.app.sys.models.Sys_user; import com.budwk.app.sys.models.Sys_user_role; import com.budwk.app.sys.services.SysRoleService; import com.budwk.app.sys.services.SysUserService; @@ -30,7 +29,6 @@ import com.budwk.app.zhgh.club.service.SysClubUserService; import com.budwk.app.zhgh.club.vo.ClubCommonPageVo; import com.budwk.app.zhgh.club.vo.ClubUserImportVo; import io.swagger.annotations.ApiOperation; -import org.apache.axis.utils.IDKey; import org.apache.poi.ss.formula.functions.T; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Chain; diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/exerciseCard/service/impl/ExerciseCardServiceImpl.java b/src/main/java/com/budwk/app/zhgh/dayofficework/exerciseCard/service/impl/ExerciseCardServiceImpl.java index 44fce4b3..378fc8c2 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/exerciseCard/service/impl/ExerciseCardServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/exerciseCard/service/impl/ExerciseCardServiceImpl.java @@ -4,7 +4,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.budwk.app.base.service.impl.BaseServiceImpl; -import com.budwk.app.base.utils.EasyExcelUtil; +import com.budwk.app.base.utils.easyexcel.EasyExcelUtil; import com.budwk.app.base.utils.ManyAddOrRenewUtil; import com.budwk.app.sys.models.Sys_user; import com.budwk.app.zhgh.dayofficework.exerciseCard.model.ExerciseCard; diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/healthCheckup/controller/HealthCheckupListController.java b/src/main/java/com/budwk/app/zhgh/dayofficework/healthCheckup/controller/HealthCheckupListController.java index 216e0134..ccfc6645 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/healthCheckup/controller/HealthCheckupListController.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/healthCheckup/controller/HealthCheckupListController.java @@ -14,7 +14,7 @@ import com.budwk.app.base.page.Pagination; import com.budwk.app.base.param.PageForm; import com.budwk.app.base.result.Result; import com.budwk.app.base.utils.CommonDownloadUtil; -import com.budwk.app.base.utils.EasyExcelUtil; +import com.budwk.app.base.utils.easyexcel.EasyExcelUtil; import com.budwk.app.sys.views.View_user; import com.budwk.app.web.commons.auth.utils.AuthUtil; import com.budwk.app.web.commons.auth.utils.SecurityUtil; diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/integral/controller/IntegralManageController.java b/src/main/java/com/budwk/app/zhgh/dayofficework/integral/controller/IntegralManageController.java index 3ae2edca..b5f35910 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/integral/controller/IntegralManageController.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/integral/controller/IntegralManageController.java @@ -15,7 +15,7 @@ import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.budwk.app.base.param.PageForm; import com.budwk.app.base.result.Result; import com.budwk.app.base.utils.CommonDownloadUtil; -import com.budwk.app.base.utils.EasyExcelUtil; +import com.budwk.app.base.utils.easyexcel.EasyExcelUtil; import com.budwk.app.sys.models.Sys_union; import com.budwk.app.sys.views.View_user; import com.budwk.app.zhgh.dayofficework.integral.model.IntegralDetail; diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/retiresouvenirs/controller/RetireSouvenirsBatchController.java b/src/main/java/com/budwk/app/zhgh/dayofficework/retiresouvenirs/controller/RetireSouvenirsBatchController.java index 88804ce3..380037f6 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/retiresouvenirs/controller/RetireSouvenirsBatchController.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/retiresouvenirs/controller/RetireSouvenirsBatchController.java @@ -15,9 +15,8 @@ import com.budwk.app.base.page.Pagination; import com.budwk.app.base.param.PageForm; import com.budwk.app.base.result.Result; import com.budwk.app.base.utils.CommonDownloadUtil; -import com.budwk.app.base.utils.EasyExcelUtil; +import com.budwk.app.base.utils.easyexcel.EasyExcelUtil; import com.budwk.app.sys.views.View_user; -import com.budwk.app.zhgh.dayofficework.healthCheckup.template.HealthCheckupImportTemp; import com.budwk.app.zhgh.dayofficework.retiresouvenirs.model.RetireSouvenirsBatch; import com.budwk.app.zhgh.dayofficework.retiresouvenirs.model.RetireSouvenirsLedger; import com.budwk.app.zhgh.dayofficework.retiresouvenirs.service.RetireSouvenirsBatchService; diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/womanSanitary/service/impl/WomanSanitaryUserServiceImpl.java b/src/main/java/com/budwk/app/zhgh/dayofficework/womanSanitary/service/impl/WomanSanitaryUserServiceImpl.java index 88b52980..561ad46f 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/womanSanitary/service/impl/WomanSanitaryUserServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/womanSanitary/service/impl/WomanSanitaryUserServiceImpl.java @@ -4,11 +4,9 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.budwk.app.base.service.impl.BaseServiceImpl; -import com.budwk.app.base.utils.EasyExcelUtil; +import com.budwk.app.base.utils.easyexcel.EasyExcelUtil; import com.budwk.app.base.utils.ManyAddOrRenewUtil; import com.budwk.app.sys.models.Sys_user; -import com.budwk.app.zhgh.dayofficework.exerciseCard.model.ExerciseCard; -import com.budwk.app.zhgh.dayofficework.exerciseCard.vo.ExercisePeopleImportVo; import com.budwk.app.zhgh.dayofficework.womanSanitary.model.WomanSanitaryUser; import com.budwk.app.zhgh.dayofficework.womanSanitary.service.WomanSanitaryUserService; import com.budwk.app.zhgh.dayofficework.womanSanitary.vo.WomanSanitaryUserImportVo; diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/verification/MemberListVerificationController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/verification/MemberListVerificationController.java index 871398ea..d370ebdc 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/verification/MemberListVerificationController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/verification/MemberListVerificationController.java @@ -9,7 +9,7 @@ import com.budwk.app.base.annotation.SLog; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; import com.budwk.app.base.utils.CommonDownloadUtil; -import com.budwk.app.base.utils.EasyExcelUtil; +import com.budwk.app.base.utils.easyexcel.EasyExcelUtil; import com.budwk.app.sys.models.Sys_union; import com.budwk.app.sys.services.SysDictService; import com.budwk.app.zhgh.benefit.mode.BenefitUserTemp; diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberInfoServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberInfoServiceImpl.java index b295d4c5..a5d227e4 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberInfoServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberInfoServiceImpl.java @@ -11,6 +11,7 @@ import cn.hutool.json.JSONUtil; import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.service.impl.BaseServiceImpl; import com.budwk.app.base.utils.*; +import com.budwk.app.base.utils.easyexcel.EasyExcelUtil; import com.budwk.app.sys.models.Sys_role; import com.budwk.app.sys.models.Sys_unit; import com.budwk.app.sys.models.Sys_user_role; diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/controller/CheckTaskBranchAuditController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/controller/CheckTaskBranchAuditController.java index c5461714..9f5d49ac 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/controller/CheckTaskBranchAuditController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/controller/CheckTaskBranchAuditController.java @@ -1,5 +1,12 @@ package com.budwk.app.zhgh.staffmanage.personnelcheck.controller; +import cn.dev33.satoken.annotation.SaCheckPermission; +import io.swagger.annotations.Api; +import lombok.extern.slf4j.Slf4j; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; + /** * @version 1.0 * @Author FKY @@ -7,5 +14,16 @@ package com.budwk.app.zhgh.staffmanage.personnelcheck.controller; * @Date 2025/10/15 10:48 * @注释 */ +@Slf4j +@IocBean +@Api("分工会审核核对") +@Ok("json:full") +@At("/platform/personnel/check/verification/branch") public class CheckTaskBranchAuditController { + + @At("/") + @SaCheckPermission("personnel.check.verification.branch") + @Ok("beetl:/platform/zhgh/staffmanage/personnelcheck/branch/index.html") + public void index() { + } } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/controller/CheckTaskGroupAuditController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/controller/CheckTaskGroupAuditController.java index 5a1f274c..fd56dbe2 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/controller/CheckTaskGroupAuditController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/controller/CheckTaskGroupAuditController.java @@ -1,6 +1,11 @@ package com.budwk.app.zhgh.staffmanage.personnelcheck.controller; +import cn.dev33.satoken.annotation.SaCheckPermission; +import io.swagger.annotations.Api; +import lombok.extern.slf4j.Slf4j; import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; /** * @version 1.0 @@ -9,6 +14,16 @@ import org.nutz.ioc.loader.annotation.IocBean; * @Date 2025/10/17 16:46 * @注释 */ +@Slf4j @IocBean +@Api("工会小组审核核对") +@Ok("json:full") +@At("/platform/personnel/check/verification/group") public class CheckTaskGroupAuditController { + + @At("/") + @SaCheckPermission("personnel.check.verification.group") + @Ok("beetl:/platform/zhgh/staffmanage/personnelcheck/group/index.html") + public void index() { + } } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/controller/CheckTaskSchoolAuditController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/controller/CheckTaskSchoolAuditController.java index 6b71d780..74548e48 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/controller/CheckTaskSchoolAuditController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/controller/CheckTaskSchoolAuditController.java @@ -1,5 +1,12 @@ package com.budwk.app.zhgh.staffmanage.personnelcheck.controller; +import cn.dev33.satoken.annotation.SaCheckPermission; +import io.swagger.annotations.Api; +import lombok.extern.slf4j.Slf4j; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; + /** * @version 1.0 * @Author FKY @@ -7,5 +14,16 @@ package com.budwk.app.zhgh.staffmanage.personnelcheck.controller; * @Date 2025/10/15 10:48 * @注释 */ +@Slf4j +@IocBean +@Api("校工会审核核对") +@Ok("json:full") +@At("/platform/personnel/check/verification/school") public class CheckTaskSchoolAuditController { + + @At("/") + @SaCheckPermission("personnel.check.verification.school") + @Ok("beetl:/platform/zhgh/staffmanage/personnelcheck/school/index.html") + public void index() { + } } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/controller/CheckTaskSingleController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/controller/CheckTaskSingleController.java index 0b45e379..73ef5857 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/controller/CheckTaskSingleController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/controller/CheckTaskSingleController.java @@ -1,16 +1,26 @@ package com.budwk.app.zhgh.staffmanage.personnelcheck.controller; import cn.dev33.satoken.annotation.SaCheckPermission; +import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; +import com.budwk.app.zhgh.staffmanage.personnelcheck.model.CheckTaskBusinessConfig; import com.budwk.app.zhgh.staffmanage.personnelcheck.service.CheckTaskCommonService; +import com.budwk.app.zhgh.staffmanage.personnelcheck.vo.pageform.CheckTaskCommonPageForm; import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; +import org.nutz.dao.Cnd; import org.nutz.dao.Dao; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.util.NutMap; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; +import javax.validation.Valid; +import java.util.List; + /** * @version 1.0 * @Author FKY @@ -39,7 +49,57 @@ public class CheckTaskSingleController { @At @SaCheckPermission("personnel.check.verification.single") - public Result getSingleCheckTask(){ + public Result pageData(CheckTaskCommonPageForm pageForm) { + Sql sql = Sqls.create(""" + SELECT + u.id AS userId, + u.sex, + u.loginname, + u.username, + u.mobile, + u.unitId, + u.unitName, + u.unionId, + u.unionName, + u.birthday, + u.manyUnit, + u.member, + u.userState, + u.preparedBy, + u.personType, + person.id, + person.currentStep + FROM + check_task_personnel person + LEFT JOIN `user` u ON u.loginname = person.loginname + $condition + """); + CheckTaskBusinessConfig config = dao.fetch(CheckTaskBusinessConfig.class, Cnd.where(CheckTaskBusinessConfig::getCode, "=", pageForm.getTaskCode())); + List list = config.getWorkflowSteps(); + + // 找出第一个步骤 + String stepCode = list.get(0).getString("stepCode"); + + Cnd cnd = Cnd.NEW(); + pageForm.buildSearch(cnd, "u."); + + + sql.setCondition(cnd); + Pagination pagination = checkTaskCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success(pagination); + } + + + @At + @SaCheckPermission("personnel.check.verification.single") + public Result doSave() { + return Result.success(); + } + + + @At + @SaCheckPermission("personnel.check.verification.single") + public Result findOne(@Valid String id){ return Result.success(); } } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/controller/CheckTaskVerificationController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/controller/CheckTaskVerificationController.java index f979b646..b5a1df55 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/controller/CheckTaskVerificationController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/controller/CheckTaskVerificationController.java @@ -9,6 +9,7 @@ import com.budwk.app.base.annotation.SLog; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; import com.budwk.app.flow.engine.FlowEngine; +import com.budwk.app.sys.services.SysFileService; import com.budwk.app.zhgh.staffmanage.personnelcheck.model.CheckTaskBusinessConfig; import com.budwk.app.zhgh.staffmanage.personnelcheck.model.CheckTaskFiledConfig; import com.budwk.app.zhgh.staffmanage.personnelcheck.model.CheckTaskVerification; @@ -26,6 +27,7 @@ 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.random.R; import org.nutz.mvc.annotation.AdaptBy; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; @@ -33,6 +35,8 @@ import org.nutz.mvc.annotation.Param; import org.nutz.mvc.upload.TempFile; import org.nutz.mvc.upload.UploadAdaptor; +import java.util.List; + /** * @version 1.0 * @Author FKY @@ -52,6 +56,8 @@ public class CheckTaskVerificationController { @Inject private FlowEngine flowEngine; @Inject + private SysFileService sysFileService; + @Inject private CheckTaskCommonService checkTaskCommonService; @@ -65,10 +71,12 @@ public class CheckTaskVerificationController { @At @SaCheckPermission("personnel.check.verification.manage") public Result pageData(CheckTaskManagePageForm pageForm){ - Sql sql = Sqls.create("SELECT * FROM check_task $condition"); + Sql sql = Sqls.create("SELECT * FROM check_task_verification $condition"); Cnd cnd = Cnd.NEW(); cnd.andEX("YEAR(createTime)", "=", pageForm.getYear()); - cnd.andEX("taskName", "like", "%" + pageForm.getSearchKeyword() + "%"); + if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) { + cnd.and("taskName", "like", "%" + pageForm.getSearchKeyword() + "%"); + } sql.setCondition(cnd); Pagination pagination = checkTaskCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); return Result.success(pagination); @@ -95,20 +103,38 @@ public class CheckTaskVerificationController { // 1.界面可能会对相关审核步骤做修改,修改审核流程配置 dao.update(vo.getBusinessConfig()); - // 2.新增或者修改事项任务 + // 2.保存文件 + String filePath = sysFileService.uploadReturnUrl("MINIO", file); + + // 3.新增或者修改事项任务 CheckTaskVerification verification = new CheckTaskVerification(); verification.setId(vo.getId()); + verification.setYear(DateUtil.thisYear()); + verification.setTitle(vo.getTitle()); + verification.setBusinessType(vo.getBusinessType()); + // 存储文件名及文件路径 + verification.setFileName(file.getSubmittedFileName()); + verification.setFilePath(filePath); + verification.setStartTime(vo.getStartTime()); + verification.setEndTime(vo.getEndTime()); + verification.setStatus("进行中"); verification.setCreateTime(vo.getCreateTime() == null ? DateUtil.date() : vo.getCreateTime()); verification.setYear(DateUtil.year(verification.getCreateTime())); dao.insertOrUpdate(verification); - // 3.往字段表里面插入数据,最好做下字段映射,把相关字段与数据库的字段对应 + // 4.往字段表里面插入数据,最好做下字段映射,把相关字段与数据库的字段对应(忽略,前端做好了字段对应) // todo 字段映射 + List fieldConfig = vo.getFieldConfig(); + fieldConfig.forEach(v -> { + v.setId(R.UU32()); + v.setTaskId(verification.getId()); + }); + dao.insert(fieldConfig); - - // 4.读取文件,构造数据(动态字段 data),往 CheckTaskPersonnel 表中插入数据 + // 5.读取文件,构造数据(动态字段 data),往 CheckTaskPersonnel 表中插入数据 // todo 读取文件 转换成数据 同时还要把字段转化成数据库的字段来存储 - + List personnelData = checkTaskCommonService.readFile(fieldConfig, file); + dao.fastInsert(personnelData); return Result.success(); } @@ -119,9 +145,9 @@ public class CheckTaskVerificationController { @SaCheckPermission("personnel.check.verification.manage") @SLog(tag = "核对任务", msg = "删除核对任务ID:${args[0]}") public Result onDelete(String id){ - dao.clear(CheckTaskVerification.class, Cnd.where("id", "=", id)); - dao.clear(CheckTaskPersonnel.class, Cnd.where("taskId", "=", id)); - flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id); + dao.clear(CheckTaskVerification.class, Cnd.where(CheckTaskVerification::getId, "=", id)); + dao.clear(CheckTaskPersonnel.class, Cnd.where(CheckTaskPersonnel::getTaskId, "=", id)); + dao.clear(CheckTaskFiledConfig.class, Cnd.where(CheckTaskFiledConfig::getTaskId, "=", id)); return Result.success(); } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/model/CheckTaskFiledConfig.java b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/model/CheckTaskFiledConfig.java index 38ad87fc..fd474dba 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/model/CheckTaskFiledConfig.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/model/CheckTaskFiledConfig.java @@ -51,11 +51,6 @@ public class CheckTaskFiledConfig extends BaseModel { @ColDefine(type = ColType.BOOLEAN) private Boolean isRequired; - @Column - @Comment("是否在核对界面显示") - @ColDefine(type = ColType.BOOLEAN) - private Boolean isVisible; - @Column @Comment("排序") @ColDefine(type = ColType.INT) diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/model/CheckTaskPersonnel.java b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/model/CheckTaskPersonnel.java index 36f9a12c..28127582 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/model/CheckTaskPersonnel.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/model/CheckTaskPersonnel.java @@ -5,6 +5,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import org.nutz.dao.entity.annotation.*; import org.nutz.dao.interceptor.annotation.PrevInsert; +import org.nutz.lang.util.NutMap; import java.util.List; @@ -53,12 +54,7 @@ public class CheckTaskPersonnel extends BaseModel { @Column @Comment("动态扩展字段(用户表其余列)") @ColDefine(type = ColType.MYSQL_JSON) - private List data; - - @Column - @Comment("审核意见") - @ColDefine(type = ColType.VARCHAR, width = 255) - private String remark; + private NutMap data; @Column @Default("0") @@ -72,7 +68,7 @@ public class CheckTaskPersonnel extends BaseModel { private String checkUserId; @Column - @Comment("核对人Id") + @Comment("核对人工号") @ColDefine(type = ColType.VARCHAR, width = 32) private String checkLoginname; @@ -85,4 +81,11 @@ public class CheckTaskPersonnel extends BaseModel { @Comment("变更信息") @ColDefine(type = ColType.MYSQL_JSON) private String changeInfos; + + + @Column + @Comment("审核意见") + @ColDefine(type = ColType.VARCHAR, width = 255) + private String remark; + } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/model/CheckTaskVerification.java b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/model/CheckTaskVerification.java index 4739bd35..4e4be119 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/model/CheckTaskVerification.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/model/CheckTaskVerification.java @@ -52,6 +52,11 @@ public class CheckTaskVerification extends BaseModel { @ColDefine(type = ColType.VARCHAR, width = 255) private String fileName; + @Column + @Comment("文件路径") + @ColDefine(type = ColType.VARCHAR, width = 255) + private String filePath; + @Column @Comment("开始时间") @ColDefine(type = ColType.DATETIME) diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/service/CheckTaskCommonService.java b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/service/CheckTaskCommonService.java index b420b397..4a9c2e7b 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/service/CheckTaskCommonService.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/service/CheckTaskCommonService.java @@ -1,7 +1,11 @@ package com.budwk.app.zhgh.staffmanage.personnelcheck.service; import com.budwk.app.base.service.BaseService; +import com.budwk.app.zhgh.staffmanage.personnelcheck.model.CheckTaskFiledConfig; import com.budwk.app.zhgh.staffmanage.personnelcheck.model.CheckTaskPersonnel; +import org.nutz.mvc.upload.TempFile; + +import java.util.List; /** * @version 1.0 @@ -11,4 +15,14 @@ import com.budwk.app.zhgh.staffmanage.personnelcheck.model.CheckTaskPersonnel; * @注释 */ public interface CheckTaskCommonService extends BaseService { + + /** + * 读取文件 + * @param file 文件 + * @return + */ + List readFile(List fieldConfig, TempFile file); + + + } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/service/impl/CheckTaskCommonServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/service/impl/CheckTaskCommonServiceImpl.java index 08f67f46..667f7ac6 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/service/impl/CheckTaskCommonServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/service/impl/CheckTaskCommonServiceImpl.java @@ -1,10 +1,23 @@ package com.budwk.app.zhgh.staffmanage.personnelcheck.service.impl; +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.TypeReference; import com.budwk.app.base.service.impl.BaseServiceImpl; +import com.budwk.app.base.utils.easyexcel.EasyExcelUtil; +import com.budwk.app.base.utils.easyexcel.NoModelDataListener; +import com.budwk.app.zhgh.staffmanage.personnelcheck.model.CheckTaskFiledConfig; import com.budwk.app.zhgh.staffmanage.personnelcheck.model.CheckTaskPersonnel; import com.budwk.app.zhgh.staffmanage.personnelcheck.service.CheckTaskCommonService; +import org.apache.poi.ss.formula.functions.T; import org.nutz.dao.Dao; import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.random.R; +import org.nutz.lang.util.NutMap; +import org.nutz.mvc.upload.TempFile; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * @version 1.0 @@ -18,4 +31,75 @@ public class CheckTaskCommonServiceImpl extends BaseServiceImpl readFile(List fieldConfig, TempFile file) { + try { + NoModelDataListener listener = new NoModelDataListener(); + + EasyExcel.read(file.getInputStream(), listener) + .sheet() + .headRowNumber(0) + .doRead(); + + // 表格数据列 + List dataList = listener.getDataList(); + + // 处理fieldConfig中存储的字段名称和字段代码 + List result = convertExcelHeadersToFieldCodes(dataList, fieldConfig); + + // 上面取到的result,需要转换成CheckTaskPersonnel插入数据库 + List personnelList = result.stream().map(item -> { + CheckTaskPersonnel personnel = new CheckTaskPersonnel(); + personnel.setId(R.UU32()); + // 工号是必须的,所以不能为空 + personnel.setLoginname(item.getString("loginname")); + personnel.setTaskId(fieldConfig.get(0).getTaskId()); + personnel.setData(item); + // 设置默认的当前步骤 + personnel.setCurrentStep("待核对"); + return personnel; + }).toList(); + + return personnelList; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + + + /** + * 将 Excel 表头转换为字段代码 + * + * @param excelData Excel 表数据 + * @param fieldConfigs 字段配置列表 + * @return 转换后的数据 + */ + public static List convertExcelHeadersToFieldCodes( + List excelData, + List fieldConfigs) { + + Map headerToCode = fieldConfigs.stream() + .collect(Collectors.toMap( + CheckTaskFiledConfig::getFieldName, + CheckTaskFiledConfig::getFieldCode, + (a, b) -> a // 保留第一个 + )); + + return excelData.stream().map(original -> { + NutMap converted = new NutMap(); + original.forEach((header, value) -> { + String code = headerToCode.get(header); + if (code != null) { + converted.put(code, value); + } + // 否则忽略或保留,按需 + }); + return converted; + }).collect(Collectors.toList()); + } + } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/vo/pageform/CheckTaskCommonPageForm.java b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/vo/pageform/CheckTaskCommonPageForm.java new file mode 100644 index 00000000..f7cfe8f9 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/personnelcheck/vo/pageform/CheckTaskCommonPageForm.java @@ -0,0 +1,64 @@ +package com.budwk.app.zhgh.staffmanage.personnelcheck.vo.pageform; + +import cn.hutool.core.util.StrUtil; +import com.budwk.app.base.param.PageForm; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.nutz.dao.Cnd; +import org.nutz.dao.util.cri.SqlExpressionGroup; + +import java.util.List; + +/** + * @version 1.0 + * @Author FKY + * @name:CheckTaskCommonPageForm + * @Date 2025/11/11 10:21 + * @注释 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class CheckTaskCommonPageForm extends PageForm { + + @ApiModelProperty("事项id") + private String taskId; + + @ApiModelProperty("事项CODE") + private String taskCode; + + @ApiModelProperty("工会id") + private String unionId; + + @ApiModelProperty("单位id") + private String unitId; + + @ApiModelProperty("在职状态") + private List userStates; + + @ApiModelProperty("编制类别") + private List preparedBys; + + @ApiModelProperty("教职工类别") + private List personTypes; + + + public void buildSearch(Cnd cnd, String prefix){ + if (cnd == null) { + cnd = Cnd.NEW(); + } + + if (StrUtil.isNotBlank(this.getSearchKeyword())) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.orLike(prefix + "username", this.getSearchKeyword()); + seg.orLike(prefix + "loginname", this.getSearchKeyword()); + cnd.and(seg); + } + + cnd.andEX(prefix + "unionId", "=", this.getUnionId()); + cnd.andEX(prefix + "unitId", "=", this.getUnitId()); + cnd.andEX(prefix + "userState", "in", this.getUserStates()); + cnd.andEX(prefix + "preparedBy", "in", this.getPreparedBys()); + cnd.andEX(prefix + "personType", "in", this.getPersonTypes()); + } +} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/thirtyTeach/controller/ThirtyTeachController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/thirtyTeach/controller/ThirtyTeachController.java index e77fef3f..9f51a38a 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/thirtyTeach/controller/ThirtyTeachController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/thirtyTeach/controller/ThirtyTeachController.java @@ -12,7 +12,7 @@ import com.budwk.app.base.annotation.SLog; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; import com.budwk.app.base.utils.CommonDownloadUtil; -import com.budwk.app.base.utils.EasyExcelUtil; +import com.budwk.app.base.utils.easyexcel.EasyExcelUtil; import com.budwk.app.sys.models.Sys_user; import com.budwk.app.sys.services.SysUserService; import com.budwk.app.zhgh.staffmanage.thirtyTeach.param.ThirtyTeachPageForm; diff --git a/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareListController.java b/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareListController.java index 773bcaf9..e337c17f 100644 --- a/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareListController.java +++ b/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareListController.java @@ -13,7 +13,7 @@ import com.budwk.app.base.model.ExcelImportRes; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; import com.budwk.app.base.utils.CommonDownloadUtil; -import com.budwk.app.base.utils.EasyExcelUtil; +import com.budwk.app.base.utils.easyexcel.EasyExcelUtil; import com.budwk.app.sys.views.View_user; import com.budwk.app.zhgh.welfare.mode.WelfareUserImportExcel; import com.budwk.app.zhgh.welfare.mode.WelfareUserTemp; diff --git a/src/main/resources/views/layouts/v4/home/jcdt.js b/src/main/resources/views/layouts/v4/home/jcdt.js index 5b563237..26561d55 100644 --- a/src/main/resources/views/layouts/v4/home/jcdt.js +++ b/src/main/resources/views/layouts/v4/home/jcdt.js @@ -2,9 +2,9 @@ const jcdt = { template: /*language=HTML*/ `
-
- 基层动态 -
+ + +
@@ -48,6 +48,12 @@ const jcdt = { width: 80%; max-width: 80%; margin: 0 auto; + + background-color: #FFFFFF; + border-radius: 12px; + padding: 20px; + margin-bottom: 10px; + box-shadow: 0 6px 20px rgba(0, 0, 0, 0.06); } .jcdt-title{ @@ -97,6 +103,8 @@ const jcdt = { transition: all 0.3s ease; cursor: pointer; height: auto; + + border-radius: 12px; } .jcdt-item:hover{ diff --git a/src/main/resources/views/layouts/v4/home/user.js b/src/main/resources/views/layouts/v4/home/user.js index e5490e5c..4e7212b1 100644 --- a/src/main/resources/views/layouts/v4/home/user.js +++ b/src/main/resources/views/layouts/v4/home/user.js @@ -133,67 +133,6 @@ const user = { }; }, methods: { - getWeatherEmoji(iconCode) { - // 在 data 或 methods 外部定义(或作为 computed) - const WEATHER_ICON_EMOJI = { - '100': '☀️', // 晴 - '101': '⛅', // 多云 - '102': '🌤️', // 少云 - '103': '🌥️', // 晴间多云 - '104': '☁️', // 阴 - '300': '🌦️', // 阵雨 - '301': '🌧️', // 强阵雨 - '302': '⛈️', // 雷阵雨 - '303': '⛈️', // 强雷阵雨 - '304': '⛈️', // 雷阵雨伴有冰雹 - '305': '🌧️', // 小雨 - '306': '🌧️', // 中雨 - '307': '暴雨', // 暴雨及以上可用文字 - '308': '🌧️', - '309': '🌧️', - '310': '🌧️', - '311': '🌨️', // 雨夹雪 - '312': '🌨️', - '313': '🌨️', - '314': '🌨️', - '315': '🌨️', - '316': '🌨️', - '317': '🌨️', - '318': '🌨️', - '399': '🌧️', // 阵雨(其他) - '400': '🌨️', // 小雪 - '401': '🌨️', // 中雪 - '402': '❄️', // 大雪 - '403': '❄️', // 暴雪 - '404': '🌫️', // 雾 - '405': '🌫️', // 冻雾 - '406': '🌫️', // 强浓雾 - '407': '🌫️', // 霾 - '408': '🌫️', // 浮尘 - '409': '🌫️', // 扬沙 - '410': '🌫️', // 沙尘暴 - '499': '🌫️', - '500': '🌪️', // 龙卷风 - '501': '🌀', // 飓风 - '502': '🌫️', // 热带风暴 - '503': '🌫️', // 热带低压 - '504': '🌫️', // 台风 - '507': '🌫️', // 雾凇 - '508': '🌫️', // 冰粒 - '509': '🌫️', // 米雪 - '510': '🌫️', // 雨凇 - '511': '🌫️', // 冰雹 - '512': '🌫️', // 尘卷风 - '513': '🌫️', // 沙尘 - '514': '🌫️', // 浓积云 - '515': '🌫️', // 积雨云 - '900': '❓', // 未知 - '901': '🌫️', // 热 - '902': '❄️', // 冷 - '999': '❓' - }; - return WEATHER_ICON_EMOJI[iconCode] || '🌤️'; - }, getWeatherInfo(iconCode, temp) { const info = { emoji: '🌤️', @@ -250,8 +189,8 @@ const user = { async fetchWeather() { try { // 存localStorage 112.13,32.01 广州 113.27,23.14 - const AppMapCenterPointX = '113.27' - const AppMapCenterPointY = '23.14' + const AppMapCenterPointX = await this.getConfigKey("AppMapCenterPointX") + const AppMapCenterPointY = await this.getConfigKey("AppMapCenterPointY") // 1. 先通过城市名获取 locationId this.$axios.get("https://mx5rk62kvj.re.qweatherapi.com/geo/v2/city/lookup?location=" + AppMapCenterPointX + "," + AppMapCenterPointY + "&key=" + this.QWEATHER_KEY).then((geoRes) => { @@ -331,7 +270,7 @@ const user = { this.getRoleNames() }, mounted() { - // this.fetchWeather(); + this.fetchWeather() }, style: /*language=CSS*/ ` .user-wrapper { diff --git a/src/main/resources/views/platform/zhgh/staffmanage/personnelcheck/branch/index.html b/src/main/resources/views/platform/zhgh/staffmanage/personnelcheck/branch/index.html new file mode 100644 index 00000000..e69de29b diff --git a/src/main/resources/views/platform/zhgh/staffmanage/personnelcheck/common/commonQuery.js b/src/main/resources/views/platform/zhgh/staffmanage/personnelcheck/common/commonQuery.js new file mode 100644 index 00000000..b8f2498b --- /dev/null +++ b/src/main/resources/views/platform/zhgh/staffmanage/personnelcheck/common/commonQuery.js @@ -0,0 +1,92 @@ +const COMMON_QUERY = { + template: /*language=HTML*/ ` + + + + + + + + `, + store, + mixins: [initTableMixins], + data() { + return{ + unions: [], + units: [], + pageForm: { + searchKeyword: '', + unionId: '', + unitId: '', + userStates: [], + personTypes: [], + preparedBys: [], + } + } + }, + methods: { + doSearch(){ + const pageForm = clone(this.pageForm) + pageForm.userStates = JSON.stringify(this.pageForm.userStates) + pageForm.personTypes = JSON.stringify(this.pageForm.personTypes) + pageForm.preparedBys = JSON.stringify(this.pageForm.preparedBys) + this.$emit('search', pageForm) + }, + async initData(){ + if (this.$auth.hasRoleOr("SYSADMIN, SCHOOL_UNION_ADMIN, SCHOOL_UNION_MEMBER_ADMIN")) { + this.$businessTool.listUnion(this.pageForm.unionId).then((data) => { + this.unions = data + }) + this.$businessTool.listUnit().then((data) => { + this.units = data + }) + } else { + this.$businessTool.listUnion(this.$store.state.user.union.id).then((data) => { + this.unions = data + }) + this.$businessTool.listUnit(this.$store.state.user.union.id).then((data) => { + this.units = data + }) + } + }, + async flushUnits(){ + this.$set(this.pageForm, "unitId", null) + this.units = [] + if (this.pageForm.unionId) { + this.$businessTool.listUnit(this.pageForm.unionId).then((data) => { + this.units = data + }) + } + } + }, + async created() { + this.initData() + } +} diff --git a/src/main/resources/views/platform/zhgh/staffmanage/personnelcheck/common/info.js b/src/main/resources/views/platform/zhgh/staffmanage/personnelcheck/common/info.js new file mode 100644 index 00000000..e69de29b diff --git a/src/main/resources/views/platform/zhgh/staffmanage/personnelcheck/group/index.html b/src/main/resources/views/platform/zhgh/staffmanage/personnelcheck/group/index.html new file mode 100644 index 00000000..e69de29b diff --git a/src/main/resources/views/platform/zhgh/staffmanage/personnelcheck/manage/add/importAndMap.js b/src/main/resources/views/platform/zhgh/staffmanage/personnelcheck/manage/add/importAndMap.js index dd1a5bef..259f3496 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/personnelcheck/manage/add/importAndMap.js +++ b/src/main/resources/views/platform/zhgh/staffmanage/personnelcheck/manage/add/importAndMap.js @@ -81,12 +81,9 @@ const importAndMap = { - {{ field.value }} - {{ field.label }} - + > @@ -104,7 +101,7 @@ const importAndMap = { :key="col" :prop="col" :label="col" - /> + >
@@ -164,7 +161,18 @@ const importAndMap = { { value: "arrivalAtSchoolDate", label: "来校时间" }, { value: "teachingTime", label: "从教年月" }, { value: "expectedLeaveSchoolDate", label: "预计/最后离校时间" }, - ] + ], + + + excelToDbFieldMap:{ + loginname: ['工号', '员工编号', '职工号', '学号', '账号', 'ID', '编号'], + username: ['姓名', '名字', '全名', '人员姓名'], + sex: ['性别', '男女性别'], + birthday: ['出生日期', '出生年月', '生日', 'DOB'], + mobile: ['电话', '手机号', '联系电话', '手机'], + idCard: ['身份证', '身份证号', '证件号码'], + arrivalAtSchoolDate: ['来校时间', '入职时间', '入职日期', '入职年月'], + } } }, computed: { @@ -219,11 +227,12 @@ const importAndMap = { this.headers = jsonData[0].filter(h => h) this.rawData = jsonData.slice(1) - // 初始化字段选择列表(所有字段默认可编辑?或让用户选) + // 初始化字段选择列表 this.headerList = this.headers.map((h, idx) => ({ name: h, sample: this.rawData[0] ? this.rawData[0][idx] : '', - selected: true // 默认都允许修改,也可以让用户决定 + selected: true, + dbField: this.autoMatchDbField(h) })) this.$message.success('成功加载 ' + this.rawData.length + ' 条数据,共 ' + this.headers.length + ' 个字段') @@ -256,6 +265,29 @@ const importAndMap = { this.fileList = [] }, + // 自动匹配数据库字段 + autoMatchDbField(excelHeader) { + const cleanHeader = (excelHeader || '').toString().trim(); + if (!cleanHeader) return ''; + + // 遍历所有数据库字段 + for (const [dbField, keywords] of Object.entries(this.excelToDbFieldMap)) { + if (keywords.some(keyword => cleanHeader.includes(keyword))) { + return dbField; + } + } + + // 如果没匹配上,也可以尝试精确匹配 + const exactMatch = this.dbFieldOptions.find(opt => + opt.label === cleanHeader || opt.value === cleanHeader + ); + if (exactMatch) { + return exactMatch.value; + } + + return ''; // 未匹配 + }, + generatePreview() { try { this.previewData = this.rawData.slice(0, 5).map(row => { @@ -297,7 +329,7 @@ const importAndMap = { try { this.baseData.fieldConfig = this.headerList .map(h => ({ - fieldCode: h.name, + fieldCode: h.dbField, fieldName: h.name, isRequired: h.selected, sortOrder: this.headers.indexOf(h.name) @@ -314,7 +346,7 @@ const importAndMap = { } finally { this.submitting = false } - } + }, }, mounted() { const s = document.createElement("script") diff --git a/src/main/resources/views/platform/zhgh/staffmanage/personnelcheck/manage/index.html b/src/main/resources/views/platform/zhgh/staffmanage/personnelcheck/manage/index.html index fc8d466c..a39c7961 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/personnelcheck/manage/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/personnelcheck/manage/index.html @@ -45,8 +45,12 @@ layout("/layouts/platform.html"){ :prop="column.prop" :width="column.width" :sortable="column.sortable" - > - + > + + +