diff --git a/build.gradle b/build.gradle index ad453f8..297bd9f 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ plugins { id 'java' - //id 'com.weaver.ecode.gradle.plugin.BuildArchPlugin' +// id 'com.weaver.ecode.gradle.plugin.BuildArchPlugin' } group 'com.weaver.seconddev' @@ -22,7 +22,7 @@ def ignoredProjectNames = [] configure(allprojects) { project -> apply plugin: 'java' - //apply plugin: 'com.weaver.ecode.gradle.plugin.BuildArchPlugin' +// apply plugin: 'com.weaver.ecode.gradle.plugin.BuildArchPlugin' compileJava { options.encoding = 'UTF-8' diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/employee/action/FormatChangeFilesAction.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/employee/action/FormatChangeFilesAction.java deleted file mode 100644 index 1e27afd..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/employee/action/FormatChangeFilesAction.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.weaver.seconddev.employee.action; - -import cn.hutool.core.convert.Convert; -import com.alibaba.fastjson.JSON; -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; -import com.weaver.eteams.file.client.file.FileObj; -import com.weaver.eteams.file.client.remote.FileClientService; -import com.weaver.seconddev.employee.mapper.FormatChangeMapper; -import com.weaver.seconddev.portal.entity.param.BaseParam; -import com.weaver.seconddev.portal.util.DateUtil; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.Date; -import java.util.Map; - -/** - * @author:dxfeng - * @createTime: 2025/08/08 - * @version: 1.0 - */ -@Slf4j -@Service("FormatChangeFilesAction") -public class FormatChangeFilesAction implements EsbServerlessRpcRemoteInterface { - - @Autowired - FormatChangeMapper formatEntryFilesMapper; - - @Autowired - FileClientService fileClientService; - - @Override - public WeaResult> execute(Map params) { - log.error("params=>:{}", params); - Long rzjlid = Convert.toLong(params.get("rzjlid")); - log.error("rzjlid=>:{}", rzjlid); - if (null == rzjlid) { - return WeaResult.success(); - } - // 查询入职管理表数据信息 - BaseParam baseParam = new BaseParam(); - Map entryRecord = formatEntryFilesMapper.getChangeRecord(baseParam, rzjlid); - if (entryRecord.isEmpty()) { - log.error("entryRecord is null,{}", params); - return WeaResult.success(); - } - log.error("entryRecord=>:{}", JSON.toJSONString(entryRecord)); - String username = Convert.toStr(entryRecord.get("username")); - String jobNum = Convert.toStr(entryRecord.get("job_num")); - log.error("userName=={}", username); - log.error("jobNum=={}", jobNum); - if (StringUtils.isBlank(jobNum)) { - log.error("jobNum is null,{}", params); - return WeaResult.success(); - } - - String prefix = username + "-" + jobNum; - renameFile(Convert.toStr(entryRecord.get("sfzzpzfm")), prefix, "身份证正面"); - renameFile(Convert.toStr(entryRecord.get("sfzfmghm")), prefix, "身份证反面"); - renameFile(Convert.toStr(entryRecord.get("hzzp")), prefix, "护照"); - renameFile(Convert.toStr(entryRecord.get("zgxlbyzszp")), prefix, "学历证明"); - renameFile(Convert.toStr(entryRecord.get("xxzbs")), prefix, "半身形象照"); - renameFile(Convert.toStr(entryRecord.get("czycbdz")), prefix, "寸照"); - renameFile(Convert.toStr(entryRecord.get("yxkzm")), prefix, "银行卡"); - renameFile(Convert.toStr(entryRecord.get("tjbg")), prefix, "体检报告"); - renameFile(Convert.toStr(entryRecord.get("jkz")), prefix, "健康证"); - renameFile(Convert.toStr(entryRecord.get("sjdwlzzm")), prefix, "离职证明"); - renameFile(Convert.toStr(entryRecord.get("qtfj")), prefix, "其他附件"); - renameFile(Convert.toStr(entryRecord.get("sbzmwj")), prefix, "社保证明"); - renameFile(Convert.toStr(entryRecord.get("xwzszp")), prefix, "学位证书照片"); - - - return WeaResult.success(params); - } - - - /** - * 重命名文件 - * - * @param fileIds 文件ID - * @param prefix 前缀 - * @param fileName 文件名 - */ - private void renameFile(String fileIds, String prefix, String fileName) { - if (StringUtils.isBlank(fileIds)) { - return; - } - - int index = 1; - String[] split = fileIds.split(","); - if (split.length > 0) { - for (String s : split) { - Long fileId = Convert.toLong(s); - if (null == fileId) { - log.error("fileId is null,{}", s); - continue; - } - FileObj fileObj = fileClientService.get(fileId); - if (null == fileObj) { - log.error("fileObj is null,{}", fileId); - continue; - } - Date uploadTime = fileObj.getUploadTime(); - LocalDateTime localDate = DateUtil.toLocalDateTime(uploadTime); - if (null == localDate) { - localDate = DateUtil.toLocalDateTime(new Date()); - } - String formatDate = DateUtil.formatDateTime(localDate, DateTimeFormatter.ofPattern("yyyyMMddHHmm")); - int lastDotIndex = fileObj.getName().lastIndexOf("."); - String suffix = fileObj.getName().substring(lastDotIndex); - String newFileName = prefix + "-" + fileName + "-" + formatDate + suffix; - fileObj.setName(newFileName); - fileClientService.update(fileObj); - } - } - - } - - -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/employee/mapper/FormatChangeMapper.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/employee/mapper/FormatChangeMapper.java deleted file mode 100644 index 7e62a9a..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/employee/mapper/FormatChangeMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.weaver.seconddev.employee.mapper; - -import com.weaver.seconddev.portal.entity.param.BaseParam; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Map; - -/** - * @author:dxfeng - * @createTime: 2025/08/08 - * @version: 1.0 - */ -@Mapper -public interface FormatChangeMapper { - - Map getChangeRecord(@Param("param") BaseParam param, @Param("id") Long id); - -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/action/BankCardRecognitionAction.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/action/BankCardRecognitionAction.java deleted file mode 100644 index 12976c6..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/action/BankCardRecognitionAction.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.weaver.seconddev.entry.action; - -import cn.hutool.core.convert.Convert; -import cn.hutool.core.io.IoUtil; -import cn.hutool.http.HttpRequest; -import cn.hutool.http.HttpResponse; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; -import com.weaver.eteams.file.client.file.FileData; -import com.weaver.eteams.file.client.file.FileObj; -import com.weaver.file.ud.api.FileDownloadService; -import com.weaver.seconddev.portal.constant.ApplicationConfigConstant; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.io.IOException; -import java.io.InputStream; -import java.util.HashMap; -import java.util.Map; - -/** - * @author:dxfeng - * @createTime: 2025/07/29 - * @version: 1.0 - */ -@Slf4j -@Service("bankCardRecognitionAction") -public class BankCardRecognitionAction implements EsbServerlessRpcRemoteInterface { - - @Autowired - FileDownloadService fileDownloadService; - - @Override - public WeaResult> execute(Map params) { - Map returnMap = new HashMap<>(); - Long fileId = Convert.toLong(params.get("fileId"), null); - log.error("fileId==" + fileId); - if (null == fileId) { - return WeaResult.success(returnMap); - } - FileData fileData = fileDownloadService.downloadFile(fileId); - FileObj fileObj = fileData.getFileObj(); - InputStream inputStream = fileData.getInputStream(); - String fileName = fileObj.getName(); - log.error("fileName==" + fileName); - try { - log.error("inputStream==" + inputStream.available()); - } catch (IOException e) { - log.error("inputStream获取异常", e); - throw new RuntimeException(e); - } - - String response = callBankCardOcrApi(inputStream, fileName); - log.error("response==" + response); - // 正面响应数据 - JSONObject jsonObject = JSONObject.parseObject(response); - if (jsonObject.getBoolean("isSuccess")) { - JSONObject data = jsonObject.getJSONObject("data"); - JSONArray resultArray = data.getJSONArray("result"); - if (resultArray.size() > 0) { - JSONObject result = resultArray.getJSONObject(0); - returnMap.put("org", result.get("org")); - returnMap.put("number", result.get("number")); - returnMap.put("valid_thru", result.get("valid_thru")); - returnMap.put("type", result.get("type")); - returnMap.put("valid_from", result.get("valid_from")); - returnMap.put("holder", result.get("holder")); - } - - } - log.error("returnMap==" + JSON.toJSONString(returnMap)); - return WeaResult.success(returnMap); - } - - /** - * 调用千里聆身份证识别接口 - * - * @param inputStream 文件输入流 - * @param fileName 文件名 - * @return - */ - public static String callBankCardOcrApi(InputStream inputStream, String fileName) { - byte[] bytes = IoUtil.readBytes(inputStream); - long currentTime = System.currentTimeMillis(); - HttpResponse response = HttpRequest.post(ApplicationConfigConstant.BANK_CARD_OCR_URL) - .header("Content-Type", "multipart/form-data") - .header("sign", IDCardRecognitionAction.getSign(currentTime)) - .header("appId", ApplicationConfigConstant.OCR_APP_ID) - .header("timestamp", String.valueOf(currentTime)) - .form("image_file", bytes, fileName) - .execute(); - return response.body(); - } - -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/action/EmailAccountGenerateAction.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/action/EmailAccountGenerateAction.java deleted file mode 100644 index 0994366..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/action/EmailAccountGenerateAction.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.weaver.seconddev.entry.action; - -import cn.hutool.core.convert.Convert; -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; -import com.weaver.seconddev.entry.mapper.EmailAccountGenerateMapper; -import com.weaver.seconddev.portal.entity.param.BaseParam; -import com.weaver.seconddev.portal.util.ChineseNameToPinyin; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.HashMap; -import java.util.Map; - -/** - * @author:dxfeng - * @createTime: 2025/07/28 - * @version: 1.0 - */ -@Slf4j -@Service("emailAccountGenerateAction") -public class EmailAccountGenerateAction implements EsbServerlessRpcRemoteInterface { - private static final String EMAIL_DOMAIN = "@chabaidao.com"; - - @Autowired - EmailAccountGenerateMapper emailAccountGenerateMapper; - - BaseParam baseParam = new BaseParam(); - - @Override - public WeaResult> execute(Map params) { - // 获取参数 - String xm = Convert.toStr(params.get("xm"), ""); - Long requestId = Convert.toLong(params.get("requestId")); - - if (StringUtils.isBlank(xm)) { - return WeaResult.success(); - } - - // 生成基础邮箱账号 - String pinyinName = ChineseNameToPinyin.convertChineseNameToPinyin(xm); - - // 检查并生成唯一邮箱账号 - String uniqueEmail = generateUniqueEmail(pinyinName, requestId); - - Map dataMap = new HashMap<>(); - // 将生成的邮箱账号放入返回结果中 - dataMap.put("email", uniqueEmail); - return WeaResult.success(dataMap); - } - - /** - * 生成唯一的邮箱账号 - * - * @param pinyinName 拼音姓名 - * @return 唯一邮箱账号 - */ - private String generateUniqueEmail(String pinyinName, Long requestId) { - String baseEmail = pinyinName + EMAIL_DOMAIN; - - // 首先检查基础邮箱是否已存在 - if (!isEmailExists(baseEmail, requestId)) { - return baseEmail; - } - - // 如果基础邮箱已存在,则尝试添加数字后缀 - int suffix = 1; - String emailWithSuffix; - do { - emailWithSuffix = pinyinName + suffix + EMAIL_DOMAIN; - suffix++; - } while (isEmailExists(emailWithSuffix, requestId)); - - return emailWithSuffix; - } - - /** - * 检查入职管理表是否已存在相同邮箱 - * - * @param email 邮箱账号 - * @return 是否存在 - */ - private boolean isEmailExists(String email, Long requestId) { - Integer checkCount = emailAccountGenerateMapper.checkSameEmailAccount(baseParam, email, requestId); - log.error("检查入职表邮箱账号是否已存在: {}", email); - log.error("检查结果: {}", checkCount); - boolean isSame = checkCount != null && checkCount > 0; - if (isSame) { - return true; - } - return isEmailExists(email); - - } - - /** - * 校验花名册是否存在相同邮箱 - * - * @param email - * @return - */ - private boolean isEmailExists(String email) { - Integer checkCount = emailAccountGenerateMapper.checkEmployeeSameEmail(baseParam, email); - log.error("检查花名册邮箱账号是否已存在: {}", email); - log.error("检查结果: {}", checkCount); - return checkCount != null && checkCount > 0; - } -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/action/FormatEntryFilesAction.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/action/FormatEntryFilesAction.java deleted file mode 100644 index faab70e..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/action/FormatEntryFilesAction.java +++ /dev/null @@ -1,127 +0,0 @@ -package com.weaver.seconddev.entry.action; - -import cn.hutool.core.convert.Convert; -import com.alibaba.fastjson.JSON; -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; -import com.weaver.eteams.file.client.file.FileObj; -import com.weaver.eteams.file.client.remote.FileClientService; -import com.weaver.seconddev.entry.mapper.FormatEntryFilesMapper; -import com.weaver.seconddev.portal.entity.param.BaseParam; -import com.weaver.seconddev.portal.util.DateUtil; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.Date; -import java.util.Map; - -/** - * FormatEntryFilesActionGroup - * - * @author:dxfeng - * @createTime: 2025/07/30 - * @version: 1.0 - */ -@Slf4j -@Service("FormatEntryFilesAction") -public class FormatEntryFilesAction implements EsbServerlessRpcRemoteInterface { - - @Autowired - FormatEntryFilesMapper formatEntryFilesMapper; - - @Autowired - FileClientService fileClientService; - - @Override - public WeaResult> execute(Map params) { - log.error("params=>:{}", params); - Long rzjlid = Convert.toLong(params.get("rzjlid")); - log.error("rzjlid=>:{}", rzjlid); - if (null == rzjlid) { - return WeaResult.success(); - } - // 查询入职管理表数据信息 - BaseParam baseParam = new BaseParam(); - Map entryRecord = formatEntryFilesMapper.getEntryRecord(baseParam, rzjlid); - if (entryRecord.isEmpty()) { - log.error("entryRecord is null,{}", params); - return WeaResult.success(); - } - log.error("entryRecord=>:{}", JSON.toJSONString(entryRecord)); - String username = Convert.toStr(entryRecord.get("username")); - String jobNum = Convert.toStr(entryRecord.get("job_num")); - log.error("userName=={}", username); - log.error("jobNum=={}", jobNum); - if (StringUtils.isBlank(jobNum)) { - log.error("jobNum is null,{}", params); - return WeaResult.success(); - } - - String prefix = username + "-" + jobNum; - renameFile(Convert.toStr(entryRecord.get("sfzzpzfm")), prefix, "身份证正面"); - renameFile(Convert.toStr(entryRecord.get("sfzfmghm")), prefix, "身份证反面"); - renameFile(Convert.toStr(entryRecord.get("hzzp")), prefix, "护照"); - renameFile(Convert.toStr(entryRecord.get("zgxlbyzszp")), prefix, "学历证明"); - renameFile(Convert.toStr(entryRecord.get("xxzbs")), prefix, "半身形象照"); - renameFile(Convert.toStr(entryRecord.get("czycbdz")), prefix, "寸照"); - renameFile(Convert.toStr(entryRecord.get("yxkzm")), prefix, "银行卡"); - renameFile(Convert.toStr(entryRecord.get("tjbg")), prefix, "体检报告"); - renameFile(Convert.toStr(entryRecord.get("jkz")), prefix, "健康证"); - renameFile(Convert.toStr(entryRecord.get("sjdwlzzm")), prefix, "离职证明"); - renameFile(Convert.toStr(entryRecord.get("qtfj")), prefix, "其他附件"); - renameFile(Convert.toStr(entryRecord.get("sbzmwj")), prefix, "社保证明"); - renameFile(Convert.toStr(entryRecord.get("xwzszp")), prefix, "学位证书照片"); - - - return WeaResult.success(params); - } - - - /** - * 重命名文件 - * - * @param fileIds 文件ID - * @param prefix 前缀 - * @param fileName 文件名 - */ - private void renameFile(String fileIds, String prefix, String fileName) { - if (StringUtils.isBlank(fileIds)) { - return; - } - - int index = 1; - String[] split = fileIds.split(","); - if (split.length > 0) { - for (String s : split) { - Long fileId = Convert.toLong(s); - if (null == fileId) { - log.error("fileId is null,{}", s); - continue; - } - FileObj fileObj = fileClientService.get(fileId); - if (null == fileObj) { - log.error("fileObj is null,{}", fileId); - continue; - } - Date uploadTime = fileObj.getUploadTime(); - LocalDateTime localDate = DateUtil.toLocalDateTime(uploadTime); - if (null == localDate) { - localDate = DateUtil.toLocalDateTime(new Date()); - } - String formatDate = DateUtil.formatDateTime(localDate, DateTimeFormatter.ofPattern("yyyyMMddHHmm")); - int lastDotIndex = fileObj.getName().lastIndexOf("."); - String suffix = fileObj.getName().substring(lastDotIndex); - String newFileName = prefix + "-" + fileName + "-" + formatDate + suffix; - fileObj.setName(newFileName); - fileClientService.update(fileObj); - } - } - - } - - -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/action/IDCardRecognitionAction.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/action/IDCardRecognitionAction.java deleted file mode 100644 index 11effb7..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/action/IDCardRecognitionAction.java +++ /dev/null @@ -1,295 +0,0 @@ -package com.weaver.seconddev.entry.action; - -import cn.hutool.core.convert.Convert; -import cn.hutool.core.io.IoUtil; -import cn.hutool.http.HttpRequest; -import cn.hutool.http.HttpResponse; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; -import com.weaver.eteams.file.client.file.FileData; -import com.weaver.eteams.file.client.file.FileObj; -import com.weaver.file.ud.api.FileDownloadService; -import com.weaver.seconddev.portal.constant.ApplicationConfigConstant; -import com.weaver.seconddev.portal.entity.param.BaseParam; -import com.weaver.seconddev.portal.mapper.dictionary.DataConvertMapper; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.math.BigInteger; -import java.nio.file.Files; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.time.LocalDate; -import java.time.Period; -import java.time.format.DateTimeFormatter; -import java.util.HashMap; -import java.util.Map; - -/** - * @author:dxfeng - * @createTime: 2025/07/29 - * @version: 1.0 - */ -@Slf4j -@Service("idCardRecognitionAction") -public class IDCardRecognitionAction implements EsbServerlessRpcRemoteInterface { - - @Autowired - FileDownloadService fileDownloadService; - @Autowired - DataConvertMapper dataConvertMapper; - - BaseParam baseParam = new BaseParam(); - - @Override - public WeaResult> execute(Map params) { - Map returnMap = new HashMap<>(); - Long fileId = Convert.toLong(params.get("fileId"), null); - log.error("fileId==" + fileId); - String nationalityConvert = Convert.toStr(params.get("nationalityConvert"), ""); - log.error("nationalityConvert==" + nationalityConvert); - if (null == fileId) { - return WeaResult.success(returnMap); - } - FileData fileData = fileDownloadService.downloadFile(fileId); - FileObj fileObj = fileData.getFileObj(); - InputStream inputStream = fileData.getInputStream(); - String fileName = fileObj.getName(); - log.error("fileName==" + fileName); - try { - log.error("inputStream==" + inputStream.available()); - } catch (IOException e) { - log.error("inputStream获取异常", e); - throw new RuntimeException(e); - } - - String response = callIdCardOcrApi(inputStream, fileName); - // 正面响应数据 - //String response = "{\"isSuccess\": true, \"data\": {\"page_num\": \"1\", \"result\": [{\"姓名\": \"王某某\", \"性别\": \"男\", \"民族\": \"汉\", \"出生\": \"1989年3月21日\", \"住址\": \"上海市浦东新区塘桥街道蓝村路xxx号\", \"公民身份号码\": \"370112198903217890\", \"标签\": \"头像面\"}]}, \"status_code\": 5200}"; - log.error("response==" + response); - - JSONObject jsonObject = JSONObject.parseObject(response); - if (jsonObject.getBoolean("isSuccess")) { - JSONObject data = jsonObject.getJSONObject("data"); - JSONArray resultArray = data.getJSONArray("result"); - if (resultArray.size() > 0) { - JSONObject result = resultArray.getJSONObject(0); - returnMap.put("name", result.getString("姓名")); - returnMap.put("sex", result.getString("性别")); - String nation = result.getString("民族"); - if (StringUtils.isNotBlank(nation) && StringUtils.isNotBlank(nationalityConvert)) { - Long nationId = dataConvertMapper.getIdByName(baseParam, "nation", nation + "族"); - log.error("nationId==" + nationId); - nation = Convert.toStr(nationId, ""); - log.error("nation==" + nation); - - } - returnMap.put("nation", nation); - - returnMap.put("birthday", Convert.toStr(result.getString("出生"), "").replace("年", "-").replace("月", "-").replace("日", "-")); - returnMap.put("address", result.getString("住址")); - String idNumber = result.getString("公民身份号码"); - returnMap.put("idCard", idNumber); - // 根据身份证号,计算年龄、 性别 - if (StringUtils.isNotBlank(idNumber)) { - returnMap.put("age", getAge(idNumber)); - returnMap.put("gender", getGender(idNumber)); - } - - returnMap.put("issueAuthority", result.getString("签发机关")); - String validity = result.getString("有效期限"); - checkValidity(validity, returnMap); - returnMap.put("validity", validity); - } - }else{ - log.error("response==" + response); - return WeaResult.fail(500, jsonObject.getString("errorMsg"), true); - } - log.error("returnMap==" + JSON.toJSONString(returnMap)); - return WeaResult.success(returnMap); - } - - /** - * 调用千里聆身份证识别接口 - * - * @param inputStream 文件输入流 - * @param fileName 文件名 - * @return - */ - public static String callIdCardOcrApi(InputStream inputStream, String fileName) { - byte[] bytes = IoUtil.readBytes(inputStream); - long currentTime = System.currentTimeMillis(); - HttpResponse response = HttpRequest.post(ApplicationConfigConstant.ID_CARD_OCR_URL) - .header("Content-Type", "multipart/form-data") - .header("sign", getSign(currentTime)) - .header("appId", ApplicationConfigConstant.OCR_APP_ID) - .header("timestamp", String.valueOf(currentTime)) - .form("img", bytes, fileName) - .execute(); - return response.body(); - } - - /** - * 千里聆签名 - * - * @param timestamp 当前时间戳(毫秒数) - * @return - */ - public static String getSign(long timestamp) { - try { - MessageDigest md5 = MessageDigest.getInstance("MD5"); - md5.update(ApplicationConfigConstant.OCR_APP_ID.getBytes()); - md5.update((timestamp + "").getBytes()); - md5.update(ApplicationConfigConstant.OCR_APP_SECRET.getBytes()); - byte[] bytes = md5.digest(); - return (new BigInteger(1, bytes)).toString(16); - } catch (NoSuchAlgorithmException var8) { - throw new RuntimeException("不支持的加密算法", var8); - } - } - - /** - * 根据身份证号获取性别 - * - * @param idCard 身份证号 - * @return 性别:"男"或"女" - * @throws IllegalArgumentException 身份证号不合法时抛出 - */ - public static String getGender(String idCard) { - // 校验身份证号长度 - if (idCard == null || (idCard.length() != 18 && idCard.length() != 15)) { - throw new IllegalArgumentException("身份证号长度不合法"); - } - - // 18位身份证取第17位,15位身份证取第15位 - char genderChar; - if (idCard.length() == 18) { - genderChar = idCard.charAt(16); - } else { - genderChar = idCard.charAt(14); - } - - // 奇数为男,偶数为女 - return (Integer.parseInt(String.valueOf(genderChar)) % 2 == 1) ? "male" : "female"; - } - - /** - * 根据身份证号计算年龄 - * - * @param idCard 身份证号 - * @return 年龄 - * @throws IllegalArgumentException 身份证号不合法时抛出 - */ - public static int getAge(String idCard) { - // 校验身份证号长度 - if (idCard == null || (idCard.length() != 18 && idCard.length() != 15)) { - throw new IllegalArgumentException("身份证号长度不合法"); - } - - // 解析出生日期 - LocalDate birthDate; - if (idCard.length() == 18) { - // 18位身份证:第7-14位为出生日期(yyyyMMdd) - String birthStr = idCard.substring(6, 14); - birthDate = LocalDate.parse(birthStr, DateTimeFormatter.ofPattern("yyyyMMdd")); - } else { - // 15位身份证:第7-12位为出生日期(yyMMdd),默认19xx年 - String birthStr = "19" + idCard.substring(6, 12); - birthDate = LocalDate.parse(birthStr, DateTimeFormatter.ofPattern("yyyyMMdd")); - } - - // 计算与当前日期的差距 - LocalDate now = LocalDate.now(); - Period period = Period.between(birthDate, now); - - return period.getYears(); - } - - /** - * 检查有效期 - * - * @param validity - * @param returnMap - */ - private static void checkValidity(String validity, Map returnMap) { - if(StringUtils.isBlank(validity)){ - return; - } - String[] validityArr = validity.split("-"); - if (validityArr.length < 2) { - return; - } - String startDate = Convert.toStr(validityArr[0], "").replace(".", "-"); - String endDate = Convert.toStr(validityArr[1], "").replace(".", "-"); - returnMap.put("validityType", "0"); - if ("长期".equals(endDate)) { - endDate = "9999-12-31"; - returnMap.put("validityType", "1"); - } - returnMap.put("validityStart", startDate); - returnMap.put("validityEnd", endDate); - } - - - - public static void main(String[] args) throws IOException { - // TODO - Map returnMap = new HashMap<>(); - File file = new File("C:\\Users\\dxfeng\\Desktop\\茶百道\\长期身份证.jpg"); - InputStream inputStream = Files.newInputStream(file.toPath()); - - //String response = callIdCardOcrApi(inputStream, file.getName()); - // 正面响应数据 - //String response = "{\"isSuccess\": true, \"data\": {\"page_num\": \"1\", \"result\": [{\"姓名\": \"王某某\", \"性别\": \"男\", \"民族\": \"汉\", \"出生\": \"1989年3月21日\", \"住址\": \"上海市浦东新区塘桥街道蓝村路xxx号\", \"公民身份号码\": \"370112198903217890\", \"标签\": \"头像面\"}]}, \"status_code\": 5200}"; - //String response = "{\"isSuccess\": true, \"data\": {\"page_num\": \"1\", \"result\": [{\"签发机关\": \"东港市公安局\", \"有效期限\": \"2014.07.09-长期\", \"标签\": \"国徽面\"}]}, \"status_code\": 5200}"; - String response = "{\"isSuccess\": true, \"data\": {\"page_num\": \"1\", \"result\": [{\"签发机关\": \"东港市公安局\", \"有效期限\": \"2013.03.05-2023.03.05\", \"标签\": \"国徽面\"}]}, \"status_code\": 5200}"; - System.out.println("response==" + response); - - JSONObject jsonObject = JSONObject.parseObject(response); - if (jsonObject.getBoolean("isSuccess")) { - JSONObject data = jsonObject.getJSONObject("data"); - JSONArray resultArray = data.getJSONArray("result"); - if (resultArray.size() > 0) { - JSONObject result = resultArray.getJSONObject(0); - returnMap.put("name", result.getString("姓名")); - returnMap.put("sex", result.getString("性别")); - String nation = result.getString("民族"); - //if (StringUtils.isNotBlank(nation) && StringUtils.isNotBlank(nationalityConvert)) { - // Long nationId = dataConvertMapper.getIdByName(baseParam, "nation", nation + "族"); - // log.error("nationId==" + nationId); - // nation = Convert.toStr(nationId, ""); - // log.error("nation==" + nation); - // - //} - returnMap.put("nation", nation); - - returnMap.put("birthday", Convert.toStr(result.getString("出生"), "").replace("年", "-").replace("月", "-").replace("日", "-")); - returnMap.put("address", result.getString("住址")); - String idNumber = result.getString("公民身份号码"); - returnMap.put("idCard", idNumber); - // 根据身份证号,计算年龄、 性别 - if (StringUtils.isNotBlank(idNumber)) { - returnMap.put("age", getAge(idNumber)); - returnMap.put("gender", getGender(idNumber)); - } - - returnMap.put("issueAuthority", result.getString("签发机关")); - String validity = result.getString("有效期限"); - checkValidity(validity, returnMap); - returnMap.put("validity", validity); - } - } - System.out.println("returnMap==" + JSON.toJSONString(returnMap)); - - - } - -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/action/PermissionDetailAction.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/action/PermissionDetailAction.java deleted file mode 100644 index 361a8ff..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/action/PermissionDetailAction.java +++ /dev/null @@ -1,176 +0,0 @@ -package com.weaver.seconddev.entry.action; - -import cn.hutool.core.convert.Convert; -import cn.hutool.http.HttpRequest; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; -import com.weaver.seconddev.entry.entity.PermissionTransferModule; -import com.weaver.seconddev.entry.entity.RoleDetail; -import com.weaver.seconddev.portal.constant.ApplicationConfigConstant; -import com.weaver.seconddev.portal.util.PapiUtil; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * @author:dxfeng - * @createTime: 2025/08/04 - * @version: 1.0 - */ -@Slf4j -@Service("PermissionDetailAction") -public class PermissionDetailAction implements EsbServerlessRpcRemoteInterface { - @Override - public WeaResult> execute(Map params) { - Map returnMap = new HashMap<>(); - // 离职员工ID - String employeeId = Convert.toStr(params.get("employeeId"), null); - - // 权限转移操作人员ID - String optUserId = Convert.toStr(params.get("optUserId"), null); - - String papiCode = PapiUtil.getPapiCode(ApplicationConfigConstant.APP_URL, ApplicationConfigConstant.CORP_ID, "B2b"); - String papiToken = PapiUtil.getPapiToken(ApplicationConfigConstant.APP_URL, ApplicationConfigConstant.ORGANIZATION_APP_KEY, ApplicationConfigConstant.ORGANIZATION_APP_SECRET, papiCode); - - // 查询某个人员组织的可以转移的权限数据 - JSONObject jsonObject = new JSONObject(); - // {"type":"resource","opt":"1","targetId":"959466419596591105"} - jsonObject.put("type", "resource"); - jsonObject.put("opt", "1"); - jsonObject.put("targetId", employeeId); - jsonObject.put("access_token", papiToken); - - log.info("jsonObject===" + jsonObject); - String response = HttpRequest.post(ApplicationConfigConstant.APP_URL + "/papi/openapi/api/architecture/permission/transfer/query/v1/module") - .header("Content-Type", "application/json") - .header("optUserId", optUserId) - .body(jsonObject.toJSONString()) - .execute() - .body(); - log.info("response===" + response); - - JSONObject responseJson = JSONObject.parseObject(response); - if (responseJson.getIntValue("code") != 200) { - // 请求失败直接响应失败数据 - return WeaResult.fail(response, true); - } - JSONObject data = responseJson.getJSONObject("data"); - List permissionTransferModuleList = new ArrayList<>(); - PermissionTransferModule roleModule = null; - if (data != null) { - JSONArray permissionTransferModules = data.getJSONArray("permissionTransferModules"); - for (Object permissionTransferModule : permissionTransferModules) { - JSONObject permissionTransferModuleJson = (JSONObject) permissionTransferModule; - PermissionTransferModule module = PermissionTransferModule.builder() - .deleteType(permissionTransferModuleJson.getInteger("deleteType")) - .opt(permissionTransferModuleJson.getInteger("opt")) - .module(permissionTransferModuleJson.getString("module")) - .moduleName(permissionTransferModuleJson.getString("moduleName")) - .subModule(permissionTransferModuleJson.getString("subModule")) - .subModuleName(permissionTransferModuleJson.getString("subModuleName")) - .type(permissionTransferModuleJson.getString("type")) - .content(permissionTransferModuleJson.getString("content")) - .count(permissionTransferModuleJson.getInteger("count")) - .build(); - if ("hrm_role".equals(module.getSubModule())) { - roleModule = module; - } else { - permissionTransferModuleList.add(module); - } - } - } - - // 查询角色明细数据 - List roleDetailList = new ArrayList<>(); - getRoleDetail(employeeId, optUserId, 1, roleDetailList); - - returnMap.put("permissionTransferModuleList", permissionTransferModuleList); - returnMap.put("roleDetailList", roleDetailList); - log.info("returnMap==" + JSON.toJSONString(returnMap)); - return WeaResult.success(returnMap); - } - - - /** - * 获取角色明细数据 - * - * @param employeeId 员工ID - * @param optUserId 操作用户ID - * @param pageNum 当前页码 - * @param roleDetailList 角色明细列表 - * @param roleDetailList - */ - private void getRoleDetail(String employeeId, String optUserId, int pageNum, List roleDetailList) { - String papiCode = PapiUtil.getPapiCode(ApplicationConfigConstant.APP_URL, ApplicationConfigConstant.CORP_ID, "B3b"); - String papiToken = PapiUtil.getPapiToken(ApplicationConfigConstant.APP_URL, ApplicationConfigConstant.ORGANIZATION_APP_KEY, ApplicationConfigConstant.ORGANIZATION_APP_SECRET, papiCode); - - JSONObject jsonObject = new JSONObject(); - jsonObject.put("access_token", papiToken); - jsonObject.put("pageNum", pageNum); - jsonObject.put("pageSize", 10); - jsonObject.put("targetId", employeeId); - jsonObject.put("param", new JSONObject()); - jsonObject.put("opt", "1"); - jsonObject.put("module", "hrm"); - jsonObject.put("subModule", "hrm_role"); - jsonObject.put("type", "resource"); - log.info("getRoleDetail>>jsonObject===" + jsonObject); - String response = HttpRequest.post(ApplicationConfigConstant.APP_URL + "/papi/openapi/api/architecture/permission/transfer/query/v1/module/content") - .header("Content-Type", "application/json") - .header("optUserId", optUserId) - .body(jsonObject.toJSONString()) - .execute() - .body(); - log.info("getRoleDetail>>response===" + response); - - JSONObject responseJson = JSONObject.parseObject(response); - if (responseJson.getIntValue("code") != 200) { - // 请求失败直接响应失败数据 - log.error("response==" + response); - roleDetailList = new ArrayList<>(); - return; - } - JSONObject data = responseJson.getJSONObject("data"); - if (data != null) { - JSONObject page = data.getJSONObject("page"); - JSONArray records = page.getJSONArray("records"); - if (records.size() > 0) { - for (Object record : records) { - JSONObject recordJson = (JSONObject) record; - JSONArray columnValueList = recordJson.getJSONArray("columnValueList"); - if (columnValueList.size() > 0) { - JSONObject columnValue = columnValueList.getJSONObject(0); - RoleDetail roleDetail = RoleDetail.builder() - .sourceId(columnValue.getString("sourceId")) - .roleName(columnValue.getString("dataIndex_0")) - .functionCount(columnValue.getInteger("dataIndex_1")) - .memberCount(columnValue.getInteger("dataIndex_2")) - .build(); - roleDetailList.add(roleDetail); - } - } - } - - int pages = page.getIntValue("pages"); - if (pages > pageNum) { - getRoleDetail(employeeId, optUserId, pageNum + 1, roleDetailList); - } - } - } - - public static void main(String[] args) { - Map params = new HashMap<>(); - params.put("employeeId", "1147262704872284161"); - params.put("optUserId", "1147262704872284161"); - PermissionTransferAction permissionTransferAction = new PermissionTransferAction(); - WeaResult> execute = permissionTransferAction.execute(params); - System.out.println(JSON.toJSONString(execute)); - } -} \ No newline at end of file diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/action/PermissionTransferAction.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/action/PermissionTransferAction.java deleted file mode 100644 index c588b85..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/action/PermissionTransferAction.java +++ /dev/null @@ -1,201 +0,0 @@ -package com.weaver.seconddev.entry.action; - -import cn.hutool.core.convert.Convert; -import cn.hutool.http.HttpRequest; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; -import com.weaver.seconddev.entry.entity.PermissionTransferModule; -import com.weaver.seconddev.entry.mapper.ResignationApplyMapper; -import com.weaver.seconddev.portal.constant.ApplicationConfigConstant; -import com.weaver.seconddev.portal.entity.param.BaseParam; -import com.weaver.seconddev.portal.util.DateUtil; -import com.weaver.seconddev.portal.util.PapiUtil; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * @author:dxfeng - * @createTime: 2025/08/04 - * @version: 1.0 - */ -@Slf4j -@Service("PermissionTransferAction") -public class PermissionTransferAction implements EsbServerlessRpcRemoteInterface { - - @Autowired - ResignationApplyMapper resignationApplyMapper; - - @Override - public WeaResult> execute(Map params) { - log.error("开始执行权限转移操作:{}", DateUtil.getCurrentDateTimeStr()); - // 权限转移操作人员ID - String optUserId = Convert.toStr(params.get("optUserId"), null); - - Map returnMap = new HashMap<>(); - BaseParam baseParam = new BaseParam(); - // 查询已经提交的离职申请流程,且权限转移生效时间在今天之前的数据 - List permissionTransferModuleList = resignationApplyMapper.getPermissionTransferModuleList(baseParam, DateUtil.getCurrentDateStr()); - // 遍历数据 执行权限转移操作,并反写权限转移结果 - for (PermissionTransferModule permissionTransferModule : permissionTransferModuleList) { - log.error("permissionTransferModule==={}", JSON.toJSONString(permissionTransferModule)); - // 转移该模块全部数据权限 - transferPermission(permissionTransferModule, optUserId, "0"); - // 更新 数据 存储权限转移结果 - resignationApplyMapper.updatePermissionTransferModule(baseParam, permissionTransferModule); - } - - - // 查询角色权限转移数据 - List roleTransferModuleList = resignationApplyMapper.getRoleTransferModuleList(baseParam, DateUtil.getCurrentDateStr()); - for (PermissionTransferModule roleTransferModule : roleTransferModuleList) { - log.error("roleTransferModule==={}", JSON.toJSONString(roleTransferModule)); - transferPermission(roleTransferModule, optUserId, roleTransferModule.getSourceId()); - resignationApplyMapper.updateRoleTransferModule(baseParam, roleTransferModule); - } - - log.error("结束执行权限转移操作:{}", DateUtil.getCurrentDateTimeStr()); - return WeaResult.success(returnMap); - } - - /** - * 权限转移 - * - * @param permissionTransferModule - * @param optUserId - * @param sourceId - */ - private static void transferPermission(PermissionTransferModule permissionTransferModule, String optUserId, String sourceId) { - String papiCode = PapiUtil.getPapiCode(ApplicationConfigConstant.APP_URL, ApplicationConfigConstant.CORP_ID, "C3c"); - String papiToken = PapiUtil.getPapiToken(ApplicationConfigConstant.APP_URL, ApplicationConfigConstant.ORGANIZATION_APP_KEY, ApplicationConfigConstant.ORGANIZATION_APP_SECRET, papiCode); - - // 查询某个人员组织的可以转移的权限数据 - JSONObject jsonObject = new JSONObject(); - jsonObject.put("access_token", papiToken); - jsonObject.put("module", permissionTransferModule.getModule()); - jsonObject.put("subModule", permissionTransferModule.getSubModule()); - jsonObject.put("transferId", sourceId); - jsonObject.put("type", "resource"); - jsonObject.put("opt", "1"); - jsonObject.put("targetIdFrom", permissionTransferModule.getEmployeeId()); - jsonObject.put("targetIdTo", permissionTransferModule.getHandoverId()); - - JSONArray array = new JSONArray(); - array.add(jsonObject); - - log.error("array===" + array); - String response = HttpRequest.post(ApplicationConfigConstant.APP_URL + "/papi/openapi/api/architecture/permission/transfer/module/v1/opt/extend?access_token=" + papiToken) - .header("Content-Type", "application/json") - .header("optUserId", optUserId) - .body(array.toJSONString()) - .execute() - .body(); - log.error("response===" + response); - - JSONObject responseJson = JSONObject.parseObject(response); - if (responseJson.getIntValue("code") != 200) { - log.error("权限转移失败,接口响应结果=={}", response); - permissionTransferModule.setSuccessCount(-1); - permissionTransferModule.setFailReason("权限转移失败,接口响应结果:" + response); - return; - } - - JSONObject data = responseJson.getJSONObject("data"); - if (data != null) { - String transferId = data.getString("transferId"); - log.error("transferId===" + transferId); - // 查询权限转移执行结果 - queryPermissionTransferResult(permissionTransferModule, optUserId, transferId); - } - - - } - - - /** - * 查询权限转移执行结果 - */ - private static void queryPermissionTransferResult(PermissionTransferModule permissionTransferModule, String optUserId, String transferId) { - queryPermissionTransferResult(permissionTransferModule, optUserId, transferId, 0); - } - - private static void queryPermissionTransferResult(PermissionTransferModule permissionTransferModule, String optUserId, String transferId, int retryCount) { - // 限制重试次数,防止无限递归 - if (retryCount >= 5) { - log.error("权限转移查询超过最大重试次数"); - permissionTransferModule.setSuccessCount(-1); - permissionTransferModule.setFailReason("权限转移查询超过最大重试次数"); - return; - } - - String papiCode = PapiUtil.getPapiCode(ApplicationConfigConstant.APP_URL, ApplicationConfigConstant.CORP_ID, "D4d"); - String papiToken = PapiUtil.getPapiToken(ApplicationConfigConstant.APP_URL, ApplicationConfigConstant.ORGANIZATION_APP_KEY, ApplicationConfigConstant.ORGANIZATION_APP_SECRET, papiCode); - - JSONObject jsonObject = new JSONObject(); - jsonObject.put("access_token", papiToken); - - log.error("jsonObject===" + jsonObject); - - try { - String response = HttpRequest.post(ApplicationConfigConstant.APP_URL + "/papi/openapi/api/architecture/permission/transfer/module/v1/opt/extend/refresh?transferId=" + transferId) - .header("Content-Type", "application/json") - .header("optUserId", optUserId) - .body(jsonObject.toJSONString()) - .timeout(10000) - .execute() - .body(); - log.error("response===" + response); - - JSONObject responseJson = JSONObject.parseObject(response); - if (responseJson.getIntValue("code") != 200) { - log.error("权限转移失败,接口响应结果=={}", response); - permissionTransferModule.setSuccessCount(-1); - permissionTransferModule.setFailReason("权限转移失败," + response); - return; - } - JSONObject data = responseJson.getJSONObject("data"); - JSONArray dataSource = data.getJSONArray("dataSource"); - if (dataSource != null && dataSource.size() > 0) { - JSONObject dataSourceObj = dataSource.getJSONObject(0); - Integer success = dataSourceObj.getInteger("success"); - Integer fail = dataSourceObj.getInteger("fail"); - String cause = dataSourceObj.getString("cause"); - permissionTransferModule.setSuccessCount(success); - permissionTransferModule.setFailCount(fail); - permissionTransferModule.setFailReason(cause); - } else if ("false".equals(data.getString("finished"))) { - // 没有返回dataSource数组,重复调用,增加重试计数 - Thread.sleep(1000); - queryPermissionTransferResult(permissionTransferModule, optUserId, transferId, retryCount + 1); - } else { - log.error("权限转移查询异常,接口响应:" + response); - permissionTransferModule.setSuccessCount(-1); - permissionTransferModule.setFailReason("权限转移查询异常,接口响应:" + response); - } - } catch (Exception e) { - log.error("权限转移查询异常", e); - permissionTransferModule.setSuccessCount(-1); - permissionTransferModule.setFailReason("权限转移查询异常: " + e.getMessage()); - } - } - - //public static void main(String[] args) { - // // - // PermissionTransferModule permissionTransferModule = new PermissionTransferModule(); - // permissionTransferModule.setModule("doc"); - // permissionTransferModule.setSubModule("doc_doc_author_permission"); - // permissionTransferModule.setEmployeeId("1160242985059614723"); - // permissionTransferModule.setHandoverId("1155098662311870470"); - // //transferPermission(permissionTransferModule, "1147262704872284161", "0"); - // - // queryPermissionTransferResult(permissionTransferModule, "1147262704872284161", "1164707182682865680"); - //} - -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/controller/EntryManageController.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/controller/EntryManageController.java deleted file mode 100644 index cd9bca7..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/controller/EntryManageController.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.weaver.seconddev.entry.controller; - -import com.weaver.common.authority.annotation.WeaPermission; -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.seconddev.entry.service.EntryManageService; -import com.weaver.teams.hrapp.service.HrComEstService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.Map; - -/** - * @author:dxfeng - * @createTime: 2025/07/31 - * @version: 1.0 - */ -@Slf4j -@RestController -@RequestMapping("/api/secondev/entry/manage") -@WeaPermission(publicPermission = true) -public class EntryManageController { - - @Autowired - EntryManageService entryManageService; - @Autowired - HrComEstService hrComEstService; - - @GetMapping("/checkJobNum") - public WeaResult> checkJobNum(@RequestParam("jobNum") String jobNum) { - return entryManageService.checkJobNum(jobNum); - } - - @PostMapping("/uploadFiles") - private WeaResult> uploadFiles(@RequestBody Map params) { - return entryManageService.uploadFiles(params); - } - -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/entity/FileUploadLoad.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/entity/FileUploadLoad.java deleted file mode 100644 index 6b4792d..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/entity/FileUploadLoad.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.weaver.seconddev.entry.entity; - -import lombok.Data; - -/** - * @author:dxfeng - * @createTime: 2025/07/31 - * @version: 1.0 - */ -@Data -public class FileUploadLoad { - - public FileUploadLoad(String fileName, String formatDate, Long fileId) { - this.fileId = fileId; - this.formatDate = formatDate; - - // 获取文件后缀 - String suffix = ""; - String fileNameWithoutSuffix = fileName; - if (fileName.contains(".")) { - int lastDotIndex = fileName.lastIndexOf("."); - suffix = fileName.substring(lastDotIndex); - fileNameWithoutSuffix = fileName.substring(0, lastDotIndex); - } - - // 按"-"分割文件名 - String[] split = fileNameWithoutSuffix.split("-"); - - // 判断是否包含时间字符串(最后一个部分是否为时间格式) - boolean hasDateFormat = false; - if (split.length > 0) { - String lastPart = split[split.length - 1]; - // 简单判断是否为时间格式(12位数字) - if (lastPart.matches("\\d{12}")) { - hasDateFormat = true; - } - } - - if (hasDateFormat && split.length >= 3) { - // 包含时间格式,直接使用 - this.jobNum = split[0]; - this.userName = split[1]; - // 重新组合文件类型部分(处理可能包含"-"的文件类型名称) - StringBuilder fileTypeBuilder = new StringBuilder(); - for (int i = 2; i < split.length - 1; i++) { - if (fileTypeBuilder.length() > 0) { - fileTypeBuilder.append("-"); - } - fileTypeBuilder.append(split[i]); - } - this.fileTypeName = fileTypeBuilder.toString(); - // 文件名保持原样 - this.fileName = fileName; - } else if (!hasDateFormat && split.length >= 3) { - // 不包含时间格式,需要添加formatDate - this.jobNum = split[0]; - this.userName = split[1]; - // 重新组合文件类型部分(处理可能包含"-"的文件类型名称) - StringBuilder fileTypeBuilder = new StringBuilder(); - for (int i = 2; i < split.length; i++) { - if (fileTypeBuilder.length() > 0) { - fileTypeBuilder.append("-"); - } - fileTypeBuilder.append(split[i]); - } - this.fileTypeName = fileTypeBuilder.toString(); - // 添加时间格式到文件名 - this.fileName = fileNameWithoutSuffix + "-" + formatDate + suffix; - } else if (!hasDateFormat && split.length == 2) { - // 特殊情况:只有工号和姓名,没有文件类型 - this.jobNum = split[0]; - this.userName = split[1]; - this.fileTypeName = ""; - // 添加时间格式到文件名 - this.fileName = fileNameWithoutSuffix + "-" + formatDate + suffix; - } else { - // 其他情况,设置默认值 - this.jobNum = split.length > 0 ? split[0] : ""; - this.userName = split.length > 1 ? split[1] : ""; - this.fileTypeName = ""; - // 添加时间格式到文件名 - this.fileName = fileNameWithoutSuffix + (split.length > 0 ? "-" + formatDate : "") + suffix; - } - } - - private String fileName; - private String formatDate; - private String userName; - private String jobNum; - private String fileTypeName; - private Long fileId; - private String uploadTime; -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/entity/PermissionTransferModule.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/entity/PermissionTransferModule.java deleted file mode 100644 index a146a8d..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/entity/PermissionTransferModule.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.weaver.seconddev.entry.entity; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author:dxfeng - * @createTime: 2025/08/04 - * @version: 1.0 - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class PermissionTransferModule { - private Integer deleteType; - private Integer opt; - private String module; - private String moduleName; - private String subModule; - private String subModuleName; - private String type; - private String content; - private Integer count; - - /** - * 交接人 - */ - private String handoverId; - /** - * 生效类型 - */ - private Integer effectType; - /** - * 生效日期 - */ - private String effectDate; - /** - * 离职员工 - */ - private String employeeId; - /** - * 最后工作日 - */ - private String lastWorkDate; - /** - * 明细表ID - */ - private Long detailId; - /** - * 主表ID - */ - private Long formDataId; - - /** - * 角色数据ID - */ - private String sourceId; - - private Integer successCount; - private Integer failCount; - private String failReason; - - -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/entity/RoleDetail.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/entity/RoleDetail.java deleted file mode 100644 index 578b2e9..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/entity/RoleDetail.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.weaver.seconddev.entry.entity; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author:dxfeng - * @createTime: 2025/08/04 - * @version: 1.0 - */ -@Data -@Builder -@AllArgsConstructor -@NoArgsConstructor -public class RoleDetail { - private String sourceId; - private String roleName; - /** - * 功能权限数量 - */ - private Integer functionCount; - /** - * 成员数量 - */ - private Integer memberCount; -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/enums/FileUploadType.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/enums/FileUploadType.java deleted file mode 100644 index f177440..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/enums/FileUploadType.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.weaver.seconddev.entry.enums; - -/** - * @author:dxfeng - * @createTime: 2025/07/31 - * @version: 1.0 - */ -public enum FileUploadType { - // ['身份证正面', '身份证反面', '护照', '学历证明', '半身形象照', '寸照', '银行卡', '体检报告', '健康证', '离职证明', '其他附件'] - IDENTITY_CARD_FRONT("身份证正面","sfzzpzfm"), - IDENTITY_CARD_BACK("身份证反面","sfzfmghm"), - PASSPORT("护照","hzzp"), - EDUCATION_PROOF("学历证明","zgxlbyzszp"), - FACE_IMAGE("半身形象照","xxzbs"), - PORTRAIT("寸照","czycbdz"), - BANK_CARD("银行卡","yxkzm"), - PHYSICAL_EXAMINATION_REPORT("体检报告","tjbg"), - HEALTH_CERTIFICATE("健康证","jkz"), - RESIGNATION_PROOF("离职证明","sjdwlzzm"), - OTHER_ATTACHMENT("其他附件","qtfj"); - - private final String name; - private final String dbName; - - FileUploadType(String name, String dbName) { - this.name = name; - this.dbName = dbName; - } - - public String getName() { - return name; - } - - public String getDbName() { - return dbName; - } - - public static FileUploadType getByName(String name) { - for (FileUploadType value : FileUploadType.values()) { - if (value.getName().equals(name)) { - return value; - } - } - return null; - } -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/mapper/EmailAccountGenerateMapper.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/mapper/EmailAccountGenerateMapper.java deleted file mode 100644 index 2f1cc41..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/mapper/EmailAccountGenerateMapper.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.weaver.seconddev.entry.mapper; - -import com.weaver.seconddev.portal.entity.param.BaseParam; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -/** - * @author:dxfeng - * @createTime: 2025/07/28 - * @version: 1.0 - */ -@Mapper -public interface EmailAccountGenerateMapper { - - Integer checkSameEmailAccount(@Param("param") BaseParam param, @Param("email") String email, @Param("requestId") Long requestId); - - Integer checkEmployeeSameEmail(@Param("param") BaseParam param, @Param("email") String email); -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/mapper/EntryManageMapper.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/mapper/EntryManageMapper.java deleted file mode 100644 index 0fd4540..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/mapper/EntryManageMapper.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.weaver.seconddev.entry.mapper; - -import com.weaver.seconddev.portal.entity.param.BaseParam; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -/** - * @author:dxfeng - * @createTime: 2025/07/31 - * @version: 1.0 - */ -@Mapper -public interface EntryManageMapper { - - /** - * 根据工号查询员工ID - * - * @param param - * @param jobNum - * @return - */ - Long getEntryRecordIdByJobNum(@Param("param") BaseParam param, @Param("jobNum") String jobNum); -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/mapper/FormatEntryFilesMapper.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/mapper/FormatEntryFilesMapper.java deleted file mode 100644 index a23f419..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/mapper/FormatEntryFilesMapper.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.weaver.seconddev.entry.mapper; - -import com.weaver.seconddev.portal.entity.param.BaseParam; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Map; - -/** - * @author:dxfeng - * @createTime: 2025/07/30 - * @version: 1.0 - */ -@Mapper -public interface FormatEntryFilesMapper { - - Map getEntryRecord(@Param("param") BaseParam param, @Param("id") Long id); -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/mapper/ResignationApplyMapper.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/mapper/ResignationApplyMapper.java deleted file mode 100644 index 940768f..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/mapper/ResignationApplyMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.weaver.seconddev.entry.mapper; - -import com.weaver.seconddev.entry.entity.PermissionTransferModule; -import com.weaver.seconddev.portal.entity.param.BaseParam; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * @author:dxfeng - * @createTime: 2025/08/05 - * @version: 1.0 - */ -@Mapper -public interface ResignationApplyMapper { - - List getPermissionTransferModuleList(@Param("param") BaseParam param, @Param("currentDate") String currentDate); - - List getRoleTransferModuleList(@Param("param") BaseParam param, @Param("currentDate") String currentDate); - - - int updatePermissionTransferModule(@Param("param") BaseParam param, @Param("module") PermissionTransferModule module); - - int updateRoleTransferModule(@Param("param") BaseParam param, @Param("module") PermissionTransferModule module); -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/service/EntryManageService.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/service/EntryManageService.java deleted file mode 100644 index 60c1725..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/service/EntryManageService.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.weaver.seconddev.entry.service; - -import com.weaver.common.base.entity.result.WeaResult; - -import java.util.Map; - -/** - * @author:dxfeng - * @createTime: 2025/07/31 - * @version: 1.0 - */ -public interface EntryManageService { - - /** - * 校验工号 - * - * @param jobNum 工号 - * @return - */ - WeaResult> checkJobNum(String jobNum); - - /** - * 上传文件 - * - * @param params - * @return - */ - WeaResult> uploadFiles(Map params); -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/service/impl/EntryManageServiceImpl.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/service/impl/EntryManageServiceImpl.java deleted file mode 100644 index dff53ff..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/entry/service/impl/EntryManageServiceImpl.java +++ /dev/null @@ -1,215 +0,0 @@ -package com.weaver.seconddev.entry.service.impl; - -import cn.hutool.core.convert.Convert; -import cn.hutool.http.HttpRequest; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.common.form.metadata.field.FormField; -import com.weaver.eteams.file.client.file.FileData; -import com.weaver.eteams.file.client.file.FileObj; -import com.weaver.eteams.file.client.param.RemoteUploadParam; -import com.weaver.eteams.file.client.remote.FileClientService; -import com.weaver.file.ud.api.FileDownloadService; -import com.weaver.file.ud.api.FileUploadService; -import com.weaver.seconddev.entry.entity.FileUploadLoad; -import com.weaver.seconddev.entry.enums.FileUploadType; -import com.weaver.seconddev.entry.mapper.EntryManageMapper; -import com.weaver.seconddev.entry.service.EntryManageService; -import com.weaver.seconddev.portal.constant.ApplicationConfigConstant; -import com.weaver.seconddev.portal.entity.param.BaseParam; -import com.weaver.seconddev.portal.mapper.portal.EbuilderBaseMapper; -import com.weaver.seconddev.portal.util.DateUtil; -import com.weaver.seconddev.portal.util.PapiUtil; -import com.weaver.teams.security.context.UserContext; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.io.InputStream; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.*; -import java.util.stream.Collectors; - -/** - * @author:dxfeng - * @createTime: 2025/07/31 - * @version: 1.0 - */ -@Slf4j -@Service -public class EntryManageServiceImpl implements EntryManageService { - - @Autowired - EntryManageMapper entryManageMapper; - - @Autowired - FileClientService fileClientService; - - @Autowired - FileUploadService fileUploadService; - - @Autowired - private FileDownloadService fileDownloadService; - - @Autowired - EbuilderBaseMapper ebuilderBaseMapper; - - BaseParam baseParam = new BaseParam(); - - @Override - public WeaResult> checkJobNum(String jobNum) { - Map dataMap = new HashMap<>(); - dataMap.put("isExist", false); - if (StringUtils.isBlank(jobNum)) { - return WeaResult.fail("工号获取异常", true); - } - - Long empIdByJobNum = entryManageMapper.getEntryRecordIdByJobNum(baseParam, jobNum); - dataMap.put("isExist", null != empIdByJobNum); - dataMap.put("empId", empIdByJobNum); - return WeaResult.success(dataMap); - } - - @Override - public WeaResult> uploadFiles(Map params) { - String fileIds = params.get("fileIds"); - if (StringUtils.isBlank(fileIds)) { - return WeaResult.fail("请选择文件后上传", true); - } - String[] fieldArray = fileIds.split(","); - List fileUploadLoadList = new ArrayList<>(); - for (String fieldStr : fieldArray) { - Long field = Convert.toLong(fieldStr); - FileObj fileObj = fileClientService.get(field); - if (null == fileObj) { - log.error("文件不存在,field={}", field); - continue; - } - Date uploadTime = fileObj.getUploadTime(); - LocalDateTime localDate = DateUtil.toLocalDateTime(uploadTime); - if (null == localDate) { - localDate = DateUtil.toLocalDateTime(new Date()); - } - String formatDate = DateUtil.formatDateTime(localDate, DateTimeFormatter.ofPattern("yyyyMMddHHmm")); - - FileUploadLoad fileUploadLoad = new FileUploadLoad(fileObj.getName(), formatDate, field); - fileObj.setName(fileUploadLoad.getFileName()); - fileClientService.update(fileObj); - fileUploadLoadList.add(fileUploadLoad); - } - - Map> fileUploadMap = fileUploadLoadList.stream().collect(Collectors.groupingBy(FileUploadLoad::getJobNum)); - - - JSONArray datas = new JSONArray(); - Long formId = ebuilderBaseMapper.getFormIdByTableName(baseParam, "uf_jcl_rzgl"); - - for (Map.Entry> entry : fileUploadMap.entrySet()) { - String jobNum = entry.getKey(); - // 入职记录ID - Long entryRecordId = entryManageMapper.getEntryRecordIdByJobNum(baseParam, jobNum); - if (null == entryRecordId) { - continue; - } - List personFileUploadLoadList = entry.getValue(); - - // 根据文件类型分组,并将同一类别的附件ID用逗号分隔 - Map> fileTypeMap = personFileUploadLoadList.stream().collect(Collectors.groupingBy(FileUploadLoad::getFileTypeName)); - // 组合更新的JOSN对象 - JSONObject mainDataObj = new JSONObject(); - mainDataObj.put("id", entryRecordId); - fileTypeMap.forEach((fileTypeName, list) -> { - FileUploadType byName = FileUploadType.getByName(fileTypeName); - if (null != byName) { - String fieldIds = reUploadFiled(entryRecordId, list, formId, byName.getDbName()); - mainDataObj.put(byName.getDbName(), fieldIds); - } - }); - JSONObject dataObj = new JSONObject(); - dataObj.put("mainTable", mainDataObj); - log.error("dataObj===" + dataObj); - datas.add(dataObj); - } - - Long objId = ebuilderBaseMapper.getObjIdByTableName(baseParam, "uf_jcl_rzgl"); - Long userId = UserContext.getCurrentUser().getEmployeeId(); - - String updateMsg = updateEbTable(datas, String.valueOf(objId), String.valueOf(userId)); - Map actionMap = new HashMap<>(); - actionMap.put("updateMsg", updateMsg); - return WeaResult.success(actionMap); - } - - /** - * 更新EB表单数据 - * - * @param datas - * @param objId - * @param userId - * @return - */ - private String updateEbTable(JSONArray datas, String objId, String userId) { - JSONObject dataJson = new JSONObject(); - JSONObject operationinfo = new JSONObject(); - operationinfo.put("fieldNoFindIgnore", "true"); - operationinfo.put("doAction", "false"); - JSONObject header = new JSONObject(); - header.put("objId", objId); - - dataJson.put("datas", datas); - dataJson.put("header", header); - dataJson.put("operationinfo", operationinfo); - - JSONObject jsonObject = new JSONObject(); - jsonObject.put("datajson", dataJson); - jsonObject.put("userid", userId); - // 请求授权 - String papiCode = PapiUtil.getPapiCode(ApplicationConfigConstant.APP_URL, ApplicationConfigConstant.CORP_ID, "A1a"); - String papiToken = PapiUtil.getPapiToken(ApplicationConfigConstant.APP_URL, ApplicationConfigConstant.ORGANIZATION_APP_KEY, ApplicationConfigConstant.ORGANIZATION_APP_SECRET, papiCode); - jsonObject.put("access_token", papiToken); - - log.error("jsonObject===" + jsonObject); - - return HttpRequest.post(ApplicationConfigConstant.APP_URL + "/papi/openapi/api/ebuilder/form/dataset/v2/updateFormData") - .header("Content-Type", "application/json") - .body(jsonObject.toJSONString()) - .execute() - .body(); - } - - /** - * 将文件上传到EB - * - * @param entryRecordId - * @param fileUploadLoadList - * @param formId - * @param fieldName - * @return - */ - private String reUploadFiled(Long entryRecordId, List fileUploadLoadList, Long formId, String fieldName) { - List newFieldIds = new ArrayList<>(); - FormField formField = ebuilderBaseMapper.getFormFieldByFieldName(baseParam, formId, fieldName); - if (null != formField) { - Long folderIdByFieldId = ebuilderBaseMapper.getFolderIdByFieldId(baseParam, formField.getId()); - for (FileUploadLoad fileUploadLoad : fileUploadLoadList) { - FileData fileData = fileDownloadService.downloadFile(fileUploadLoad.getFileId()); - FileObj fileObj = fileData.getFileObj(); - RemoteUploadParam uploadParam = new RemoteUploadParam(fileObj.getName(), String.valueOf(System.currentTimeMillis()), "ebuilderform"); - uploadParam.setRefId(entryRecordId); - uploadParam.setFolderId(folderIdByFieldId); - - InputStream inputStream = fileData.getInputStream(); - FileObj fileObj1 = fileUploadService.uploadLocalFile(inputStream, UserContext.getCurrentUser().getEmployeeId(), fileObj.getType(), uploadParam); - if (null != fileObj1) { - newFieldIds.add(fileObj1.getId().toString()); - } - } - } - return StringUtils.join(newFieldIds, ","); - } - - -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/constant/ApplicationConfigConstant.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/constant/ApplicationConfigConstant.java deleted file mode 100644 index d8dbb39..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/constant/ApplicationConfigConstant.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.weaver.seconddev.portal.constant; - -/** - * @author:dxfeng - * @createTime: 2025/07/28 - * @version: 1.0 - */ - -public class ApplicationConfigConstant { - /** - * 应用端URL - */ - public static final String APP_URL = "http://10.60.4.124:30609"; - /** - * Corp id - */ - public static final String CORP_ID = "ec7de918480e79abe774982cf075c045"; - /** - * 组织中心APP Key - */ - public static final String ORGANIZATION_APP_KEY = "c003f58a174a12abebb9fdfa5ba800c2"; - /** - * 组织中心APP Secret - */ - public static final String ORGANIZATION_APP_SECRET = "332ed6328a15f6189efa4d2ac5935bc1"; - - - /** - * 千里聆服务APP ID - */ - public static final String OCR_APP_ID = "6ou6wvl8"; - /** - * 千里聆服务APP SECRET - */ - public static final String OCR_APP_SECRET = "53fc247ffe4f3e8d6c96a5d0a9a222a7"; - - public static final String ID_CARD_OCR_URL = "https://open.easst.cn/openapi/rest/common/idcardocr"; - public static final String BANK_CARD_OCR_URL = "https://open.easst.cn/openapi/rest/common/bank_card_ocr"; -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/controller/EmployeePortalController.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/controller/EmployeePortalController.java deleted file mode 100644 index 4b459f3..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/controller/EmployeePortalController.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.weaver.seconddev.portal.controller; - -import com.weaver.common.authority.annotation.WeaPermission; -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.seconddev.portal.entity.po.EmployeeBasicInfoPo; -import com.weaver.seconddev.portal.service.EmployeePortalService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.Map; - -/** - * @author:dxfeng - * @createTime: 2025/07/11 - * @version: 1.0 - */ -@Slf4j -@RestController -@RequestMapping("/api/secondev/portal/employee") -@WeaPermission(publicPermission = true) -public class EmployeePortalController { - - @Autowired - EmployeePortalService employeePortalService; - - @PostMapping("/getDurationOfEmployment") - private WeaResult> getDurationOfEmployment(@RequestBody Map params) { - return employeePortalService.getDurationOfEmployment(params); - } - - - @PostMapping("/getEmployeeInfo") - private WeaResult getEmployeeInfo(@RequestHeader Map header, @RequestBody Map params) { - String origin = header.get("origin"); - // 考勤标准接口 - String otherApiUrl = origin + "/api/attend/web/attendInfoV2/getAttendInfoStatis"; - params.put("otherApiUrl", otherApiUrl); - params.put("header",header); - return employeePortalService.getEmployeeInfo(params); - } - -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/controller/HrbpPortalController.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/controller/HrbpPortalController.java deleted file mode 100644 index 5f5418b..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/controller/HrbpPortalController.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.weaver.seconddev.portal.controller; - -import com.weaver.common.authority.annotation.WeaPermission; -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.seconddev.portal.service.HrbpPortalService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.Map; - -/** - * @author:dxfeng - * @createTime: 2025/07/10 - * @version: 1.0 - */ - -@Slf4j -@RestController -@RequestMapping("/api/secondev/portal/hrbp") -@WeaPermission(publicPermission = true) -public class HrbpPortalController { - - @Autowired - HrbpPortalService hrPortalService; - - - @PostMapping("/getToDo") - private WeaResult> getToDo(@RequestBody Map params) { - return hrPortalService.getToDo(params); - } - - @PostMapping("/getEmployeeData") - private WeaResult> getEmployeeData(@RequestBody Map params) { - return hrPortalService.getEmployeeData(params); - } - - @PostMapping("/getTodayOverview") - private WeaResult> getTodayOverview(@RequestBody Map params) { - return hrPortalService.getTodayOverview(params); - } -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/controller/LeaderCockpitController.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/controller/LeaderCockpitController.java deleted file mode 100644 index 76c0333..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/controller/LeaderCockpitController.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.weaver.seconddev.portal.controller; - -import com.weaver.common.authority.annotation.WeaPermission; -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.seconddev.portal.entity.po.PortalPO; -import com.weaver.seconddev.portal.service.LeaderCockpitService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.List; -import java.util.Map; - -/** - * @author:dxfeng - * @createTime: 2025/07/07 - * @version: 1.0 - */ -@Slf4j -@RestController -@RequestMapping("/api/secondev/portal/leader") -@WeaPermission(publicPermission = true) -public class LeaderCockpitController { - - @Autowired - LeaderCockpitService leaderCockpitService; - - @PostMapping("/getOnJobNumber") - private WeaResult> getOnJobNumber(@RequestBody Map params) { - return leaderCockpitService.getOnJobNumber(params); - } - - @PostMapping("/getLaborCost") - private WeaResult> getLaborCost(@RequestBody Map params) { - return leaderCockpitService.getLaborCost(params); - } - - @PostMapping("/getTurnoverRate") - private WeaResult> getTurnoverRate(@RequestBody Map params) { - return leaderCockpitService.getTurnoverRate(params); - } - - @PostMapping("/getAttendanceRate") - private WeaResult> getAttendanceRate(@RequestBody Map params) { - return leaderCockpitService.getAttendanceRate(params); - } - - @PostMapping("/getFullStaffingRate") - private WeaResult> getFullStaffingRate(@RequestHeader Map header, @RequestBody Map params) { - return leaderCockpitService.getFullStaffingRate(header, params); - } - - @PostMapping("/getEmploymentStatus") - private WeaResult> getEmploymentStatus(@RequestBody Map params) { - return leaderCockpitService.getEmploymentStatus(params); - } - - @PostMapping("/getResignationSituation") - private WeaResult> getResignationSituation(@RequestBody Map params) { - return leaderCockpitService.getResignationSituation(params); - } -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/controller/ManagerPortalController.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/controller/ManagerPortalController.java deleted file mode 100644 index 5ec8ae0..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/controller/ManagerPortalController.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.weaver.seconddev.portal.controller; - -import com.weaver.common.authority.annotation.WeaPermission; -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.seconddev.portal.entity.component.Option; -import com.weaver.seconddev.portal.service.ManagerPortalService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.List; -import java.util.Map; - -/** - * @author:dxfeng - * @createTime: 2025/07/09 - * @version: 1.0 - */ -@Slf4j -@RestController -@RequestMapping("/api/secondev/portal/manager") -@WeaPermission(publicPermission = true) -public class ManagerPortalController { - - @Autowired - ManagerPortalService managerPortalService; - - @PostMapping("/getMangerInfo") - private WeaResult> getMangerInfo(@RequestBody Map params) { - return managerPortalService.getMangerInfo(params); - } - - @PostMapping("/getTodayOverview") - private WeaResult> getTodayOverview(@RequestBody Map params) { - return managerPortalService.getTodayOverview(params); - } - - @PostMapping("/getBasicPersonnel") - private WeaResult> getBasicPersonnel(@RequestBody Map params) { - return managerPortalService.getBasicPersonnel(params); - } - - @PostMapping("/getBasicPersonnelSql") - private WeaResult getBasicPersonnelSql(@RequestBody Map params) { - return managerPortalService.getBasicPersonnelSql(params); - } - - @PostMapping("/getTeamMemorialDay") - private WeaResult> getTeamMemorialDay(@RequestBody Map params) { - return managerPortalService.getTeamMemorialDay(params); - } - @PostMapping("/getTeamMemorialDaySql") - private WeaResult getTeamMemorialDaySql(@RequestBody Map params) { - return managerPortalService.getTeamMemorialDaySql(params); - } - - @PostMapping("/getEducationInfo") - private WeaResult> getEducationInfo(@RequestBody Map params) { - return managerPortalService.getEducationInfo(params); - } - - @PostMapping("/getAttendanceInfo") - private WeaResult> getAttendanceInfo(@RequestBody Map params) { - return managerPortalService.getAttendanceInfo(params); - } - - @PostMapping("/getTeamEmployee") - private WeaResult> getTeamEmployee(@RequestBody Map params) { - return managerPortalService.getTeamEmployee(params); - } - - @PostMapping("/getEbFieldOptions") - private WeaResult> getEbFieldOptions(@RequestBody Map params) { - return managerPortalService.getEbFieldOptions(params); - } - -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/controller/SscPortalController.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/controller/SscPortalController.java deleted file mode 100644 index 94d8380..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/controller/SscPortalController.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.weaver.seconddev.portal.controller; - -import com.weaver.common.authority.annotation.WeaPermission; -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.seconddev.portal.entity.po.ExpirationReminderPo; -import com.weaver.seconddev.portal.service.SscPortalService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.Map; - -/** - * @author:dxfeng - * @createTime: 2025/07/15 - * @version: 1.0 - */ -@Slf4j -@RestController -@RequestMapping("/api/secondev/portal/ssc") -@WeaPermission(publicPermission = true) -public class SscPortalController { - - @Autowired - SscPortalService sscPortalService; - - @PostMapping("/getExpirationReminder") - private WeaResult getExpirationReminder(@RequestBody Map params) { - return sscPortalService.getExpirationReminder(params); - } -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/bo/EmployeeStaffBo.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/bo/EmployeeStaffBo.java deleted file mode 100644 index e276886..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/bo/EmployeeStaffBo.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.weaver.seconddev.portal.entity.bo; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.weaver.seconddev.portal.entity.po.cfg.EmployeeStaff; - -import java.util.List; - -/** - * @author:dxfeng - * @createTime: 2025/07/23 - * @version: 1.0 - */ -public class EmployeeStaffBo { - public static List mapEmployeeStaffData(String responseJson) { - // 解析接口返回的 JSON 数据 - JSONObject responseObj = JSON.parseObject(responseJson); - - // 判断接口是否响应成功 - if (responseObj.containsKey("code") && responseObj.getIntValue("code") == 200 && responseObj.containsKey("status") && responseObj.getBooleanValue("status")) { - // 判断是否存在 data 和 displayData 字段 - if (responseObj.containsKey("data")) { - JSONObject dataObj = responseObj.getJSONObject("data"); - if (dataObj.containsKey("displayData")) { - // 解析 displayData 对象集合 - return dataObj.getJSONArray("displayData").toJavaList(EmployeeStaff.class); - } else { - // displayData 字段不存在 - throw new IllegalArgumentException("displayData 字段不存在"); - } - } else { - // data 字段不存在 - throw new IllegalArgumentException("data 字段不存在"); - } - } else { - // 接口响应失败 - String errorMsg = responseObj.getString("msg"); - throw new RuntimeException("接口调用失败: " + errorMsg); - } - } -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/component/Option.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/component/Option.java deleted file mode 100644 index d7c6ea7..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/component/Option.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.weaver.seconddev.portal.entity.component; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author:dxfeng - * @createTime: 2025/07/16 - * @version: 1.0 - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class Option { - private String id; - private String content; -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/param/BaseParam.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/param/BaseParam.java deleted file mode 100644 index 941daac..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/param/BaseParam.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.weaver.seconddev.portal.entity.param; - -import lombok.Data; -import org.apache.commons.lang.StringUtils; - -/** - * @author:dxfeng - * @createTime: 2025/07/11 - * @version: 1.0 - */ -@Data -public class BaseParam { - private String e10_common = "e10_common"; - private String e10_core_business = "e10_core_business"; - private String e10_other_business = "e10_other_business"; - private String ec_secondev = "ec_secondev"; - private String eteams = "eteams"; - - /** - * 部门自定义表 - */ - private String table_dept_cus = "ft_1154218872715993098"; - /** - * 岗位自定义表 - */ - private String table_job_cus = "ft_1155455711525494797"; - - /** - * 请假表单 - */ - private String leaveFormCus = "ft_1151420254779654145"; - ///** - // * 员工自定义表 - // */ - //private String table_emp_cus = "ft_1152026012537184302"; - /** - * 租户标识 - */ - private String tenantKey; - - public String getTenantKey() { - if (StringUtils.isBlank(tenantKey)) { - // 租户默认值 - return "t024j0gfn0"; - } - return tenantKey; - } -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/param/BasicPersonnelParam.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/param/BasicPersonnelParam.java deleted file mode 100644 index 42886b2..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/param/BasicPersonnelParam.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.weaver.seconddev.portal.entity.param; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.Set; - -/** - * @author:dxfeng - * @createTime: 2025/07/08 - * @version: 1.0 - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class BasicPersonnelParam extends BaseParam { - private Set departmentIdList; - private String searchType; - private String startDate; - private String endDate; - private String pieType; - private Integer startIndex; - private Integer endIndex; - private String belongYear; - - /*分页查询*/ - - private String searchKey; - private String departmentId; - private Integer current; - private Integer offset; - private Integer pageSize; - - public Integer getOffset() { - return (current - 1) * pageSize; - } -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/param/EmployeePortalParam.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/param/EmployeePortalParam.java deleted file mode 100644 index 286571a..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/param/EmployeePortalParam.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.weaver.seconddev.portal.entity.param; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * @author:dxfeng - * @createTime: 2025/07/14 - * @version: 1.0 - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class EmployeePortalParam extends BaseParam { - private Long employeeId; -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/param/HrbpParam.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/param/HrbpParam.java deleted file mode 100644 index 30d5d07..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/param/HrbpParam.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.weaver.seconddev.portal.entity.param; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.Set; - -/** - * @author:dxfeng - * @createTime: 2025/07/10 - * @version: 1.0 - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class HrbpParam extends BaseParam{ - private Set departmentIdList; - private Long matrixId; - private Long matrixValueConfigId; - private Long userId; -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/param/SearchConditionParam.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/param/SearchConditionParam.java deleted file mode 100644 index 680e994..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/param/SearchConditionParam.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.weaver.seconddev.portal.entity.param; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.Set; - -/** - * @author:dxfeng - * @createTime: 2025/07/07 - * @version: 1.0 - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class SearchConditionParam extends BaseParam{ - private String departmentId; - private Set departmentIdList; - private String searchDate; - private String startDate; - private String endDate; - - private Set selectDepartmentId; - /** - * 是否关键人员 - */ - private String isKeyPerson; -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/param/SscParam.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/param/SscParam.java deleted file mode 100644 index 26df448..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/param/SscParam.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.weaver.seconddev.portal.entity.param; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.Set; - -/** - * @author:dxfeng - * @createTime: 2025/07/15 - * @version: 1.0 - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class SscParam extends BaseParam { - private Set departmentIdList; - private String currentDate; -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/EmployeeBasicInfoPo.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/EmployeeBasicInfoPo.java deleted file mode 100644 index d97e578..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/EmployeeBasicInfoPo.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.weaver.seconddev.portal.entity.po; - -import com.weaver.teams.domain.user.Avatar; -import lombok.Data; - -/** - * @author:dxfeng - * @createTime: 2025/07/14 - * @version: 1.0 - */ -@Data -public class EmployeeBasicInfoPo { - private Long employeeId; - - /** - * 姓名 - */ - private String userName; - /** - * 头像 - */ - private Avatar avatar; - /** - * 工号 - */ - private String workCode; - /** - * 公司名称 - */ - private String companyName; - private String departmentName; - /** - * 入职日期 - */ - private String hireDate; - /** - * 人员状态 - */ - private String employeeStatus; - /** - * 直接上级 - */ - private String directSuperior; - /** - * 年假余额 - */ - private String annualLeaveBalance; - private String annualLeaveBalanceUrl; - /** - * 调休余额 - */ - private String leaveBalance; - private String leaveBalanceUrl; - /** - * 带薪病假余额 - */ - private String paidSickLeaveBalance; - private String paidSickLeaveBalanceUrl; - /** - * 应出勤天数 - */ - private String expectedAttendance; - private String expectedAttendanceUrl; - /** - * 实际出勤 - */ - private String actualAttendance; - private String actualAttendanceUrl; - /** - * 请假 - */ - private String leave; - private String leaveUrl; - /** - * 出差 - */ - private String travel; - private String travelUrl; - /** - * 加班 - */ - private String overtime; - private String overtimeUrl; - /** - * 公出 - */ - private String publicLeave; - private String publicLeaveUrl; - /** - * 异常出勤 - */ - private String exceptionalAttendance; - private String exceptionalAttendanceUrl; -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/ExpirationReminderPo.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/ExpirationReminderPo.java deleted file mode 100644 index a4be73e..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/ExpirationReminderPo.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.weaver.seconddev.portal.entity.po; - -import lombok.Data; - -/** - * @author:dxfeng - * @createTime: 2025/07/15 - * @version: 1.0 - */ -@Data -public class ExpirationReminderPo { - /** - * 合同到期 - */ - private int contractExpiration; - private String contractExpirationUrl; - /** - * 身份证到期 - */ - private int idCardExpiration; - private String idCardExpirationUrl; - /** - * 健康证到期 - */ - private int healthCertificateExpiration; - private String healthCertificateExpirationUrl; - /** - * 入职周年提醒 - */ - private int employmentAnniversary; - private String employmentAnniversaryUrl; - /** - * 管理层生日提醒 - */ - private int birthdayNum; - private String birthdayNumUrl; -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/LateAndEarlyRankPo.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/LateAndEarlyRankPo.java deleted file mode 100644 index a840ca2..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/LateAndEarlyRankPo.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.weaver.seconddev.portal.entity.po; - -import lombok.Data; - -/** - * @author:dxfeng - * @createTime: 2025/07/29 - * @version: 1.0 - */ -@Data -public class LateAndEarlyRankPo { - private Long empId; - private String empName; - private String departmentName; - private Integer times; - private Integer minutes; -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/PieChartConfig.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/PieChartConfig.java deleted file mode 100644 index 115a0a8..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/PieChartConfig.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.weaver.seconddev.portal.entity.po; - -import lombok.Data; - -/** - * @author:dxfeng - * @createTime: 2025/07/10 - * @version: 1.0 - */ -@Data -public class PieChartConfig { - private String type; - private String name; - private String educationIds; - private Integer startIndex; - private Integer endIndex; - private String gradeIds; - private Integer orderNum; -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/PortalData.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/PortalData.java deleted file mode 100644 index 2cdfef7..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/PortalData.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.weaver.seconddev.portal.entity.po; - -import lombok.Data; - -/** - * @author:dxfeng - * @createTime: 2025/07/07 - * @version: 1.0 - */ -@Data -public class PortalData { - private String index; - private String date; - private String depart; - private String posi; - private String leader; - private String count; - private Integer all; - private Integer key; -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/PortalPO.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/PortalPO.java deleted file mode 100644 index c1d76e1..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/PortalPO.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.weaver.seconddev.portal.entity.po; - -import lombok.Data; - -/** - * @author:dxfeng - * @createTime: 2025/07/07 - * @version: 1.0 - */ -@Data -public class PortalPO { - private String value; - private String name; - private String id; -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/PortalUrlDetail.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/PortalUrlDetail.java deleted file mode 100644 index d816b32..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/PortalUrlDetail.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.weaver.seconddev.portal.entity.po; - -import lombok.Data; - -/** - * @author:dxfeng - * @createTime: 2025/07/11 - * @version: 1.0 - */ -@Data -public class PortalUrlDetail { - private String id; - private String detailKey; - private String urlAddress; - private String detailName; -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/Position.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/Position.java deleted file mode 100644 index 9358327..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/Position.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.weaver.seconddev.portal.entity.po; - -import lombok.Data; - -/** - * @author:dxfeng - * @createTime: 2025/07/08 - * @version: 1.0 - */ -@Data -public class Position { - private Long positionId; - private String positionName; - private Long departmentId; - private String departmentName; - private Long gradeId; - private String gradeName; -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/TeamEmployeePo.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/TeamEmployeePo.java deleted file mode 100644 index 3c671a5..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/TeamEmployeePo.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.weaver.seconddev.portal.entity.po; - -import lombok.Data; -import org.apache.commons.lang.StringUtils; - -/** - * @author:dxfeng - * @createTime: 2025/07/15 - * @version: 1.0 - */ -@Data -public class TeamEmployeePo { - /** - * 姓名 - */ - private String userName; - /** - * 部门 - */ - private String departmentName; - /** - * 岗位 - */ - private String jobPositionName; - /** - * 职级 - */ - private String jobLevelName; - /** - * 入职日期 - */ - private String hireDate; - /** - * 学校 - */ - private String schoolName; - /** - * 学历 - */ - private String educationName; - /** - * 年龄 - */ - private String age; - - public String getAge() { - if (StringUtils.isNotBlank(age)) { - return age + "岁"; - } - return age; - } -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/EmployeeStaff.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/EmployeeStaff.java deleted file mode 100644 index aeafba8..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/EmployeeStaff.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.weaver.seconddev.portal.entity.po.cfg; - -import lombok.Data; - -/** - * @author:dxfeng - * @createTime: 2025/07/23 - * @version: 1.0 - */ -@Data -public class EmployeeStaff { - /** - * 主键id - */ - private String id; - /** - * 组织ID - */ - private String orgId; - /** - * 组织 - */ - private String orgName; - /** - * 组织全名 - */ - private String orgFullName; - private String isParent; - /** - * 编制方案ID - */ - private String planId; - /** - * 编制方案名称 - */ - private String planName; - /** - * 年份 - */ - private Integer year; - /** - * 超编管控 - */ - private String overCtrl; - /** - * 编制数(含下级) - */ - private Integer estCountWithSub; - /** - * 编制数(本级) - */ - private Integer estCount; - /** - * 在编数(本级) - */ - private Integer numberingCount; - /** - * 在编数(含下级) - */ - private Integer numberingCountWithSub; - /** - * 预增数(本级) - */ - private Integer preAddEmpCount; - /** - * 预增数(含下级) - */ - private Integer preAddEmpCountWithSub; - /** - * 预减数(本级) - */ - private Integer preSubEmpCount; - /** - * 预减数(含下级) - */ - private Integer preSubEmpCountWithSub; - /** - * 缺编数(本级) - */ - private Integer estLackCount; - /** - * 缺编数(含下级) - */ - private Integer estLackCountWithSub; - /** - * 超编数(本级) - */ - private Integer estOverCount; - /** - * 超编数(含下级) - */ - private Integer estOverCountWithSub; - private Integer hasLink; - private Integer hasDc; -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/FormDatas.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/FormDatas.java deleted file mode 100644 index 186953d..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/FormDatas.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.weaver.seconddev.portal.entity.po.cfg; - -/** - * @author: dxfeng - * @createTime: 2025/07/23 - * @version: 1.0 - */ -public class FormDatas { - private FormDatasDetail formDatas; - private QuickSearchDatas quickSearchDatas; - - // Getters and Setters - public FormDatasDetail getFormDatas() { - return formDatas; - } - - public void setFormDatas(FormDatasDetail formDatas) { - this.formDatas = formDatas; - } - - public QuickSearchDatas getQuickSearchDatas() { - return quickSearchDatas; - } - - public void setQuickSearchDatas(QuickSearchDatas quickSearchDatas) { - this.quickSearchDatas = quickSearchDatas; - } -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/FormDatasDetail.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/FormDatasDetail.java deleted file mode 100644 index 308cb0f..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/FormDatasDetail.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.weaver.seconddev.portal.entity.po.cfg; - -import java.util.List; - -public class FormDatasDetail { - private List org; - private List overCtrl; - private List month; - - // Getters and Setters - public List getOrg() { - return org; - } - - public void setOrg(List org) { - this.org = org; - } - - public List getOverCtrl() { - return overCtrl; - } - - public void setOverCtrl(List overCtrl) { - this.overCtrl = overCtrl; - } - - public List getMonth() { - return month; - } - - public void setMonth(List month) { - this.month = month; - } -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/MonthWrapper.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/MonthWrapper.java deleted file mode 100644 index 7628f69..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/MonthWrapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.weaver.seconddev.portal.entity.po.cfg; - -public class MonthWrapper { - private String month; - - // Getters and Setters - public String getMonth() { - return month; - } - - public void setMonth(String month) { - this.month = month; - } -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/OrgItem.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/OrgItem.java deleted file mode 100644 index 9b6c08d..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/OrgItem.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.weaver.seconddev.portal.entity.po.cfg; - -public class OrgItem { - private String id; - - // Getters and Setters - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/OrgWrapper.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/OrgWrapper.java deleted file mode 100644 index b3af890..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/OrgWrapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.weaver.seconddev.portal.entity.po.cfg; - -import java.util.List; - -public class OrgWrapper { - private List org; - - // Getters and Setters - public List getOrg() { - return org; - } - - public void setOrg(List org) { - this.org = org; - } -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/OverCtrlWrapper.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/OverCtrlWrapper.java deleted file mode 100644 index b8e602f..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/OverCtrlWrapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.weaver.seconddev.portal.entity.po.cfg; - -public class OverCtrlWrapper { - private String overCtrl; - - // Getters and Setters - public String getOverCtrl() { - return overCtrl; - } - - public void setOverCtrl(String overCtrl) { - this.overCtrl = overCtrl; - } -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/QuickSearchDatas.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/QuickSearchDatas.java deleted file mode 100644 index 87f6ba8..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/entity/po/cfg/QuickSearchDatas.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.weaver.seconddev.portal.entity.po.cfg; - -public class QuickSearchDatas { -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/enums/PersonnelStatusEnum.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/enums/PersonnelStatusEnum.java deleted file mode 100644 index 21cbee2..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/enums/PersonnelStatusEnum.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.weaver.seconddev.portal.enums; - -/** - * @author:dxfeng - * @createTime: 2025/07/14 - * @version: 1.0 - */ -public enum PersonnelStatusEnum { - /** - * 1 试用、2 试用延期、3 正式、4 临时、5 实习、6 离职、7 退休、9 解聘、10 无效 - */ - TRY_OUT("1", "试用"), - TRY_OUT_DELAY("2", "试用延期"), - FORMAL("3", "正式"), - TEMPORARY("4", "临时"), - INTERNSHIP("5", "实习"), - LEAVE("6", "离职"), - RETIRED("7", "退休"), - INVALID("9", "解聘"), - QUIT("10", "无效"); - - PersonnelStatusEnum(String value, String showName) { - this.value = value; - this.showName = showName; - } - - private String value; - private String showName; - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public String getShowName() { - return showName; - } - - public void setShowName(String showName) { - this.showName = showName; - } - - /** - * 根据value获取showName - * - * @param value - * @return - */ - public static String getShowNameByValue(String value) { - for (PersonnelStatusEnum item : PersonnelStatusEnum.values()) { - if (item.getValue().equalsIgnoreCase(value)) { - return item.getShowName(); - } - } - return ""; - } -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/dictionary/DataConvertMapper.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/dictionary/DataConvertMapper.java deleted file mode 100644 index faa1c8e..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/dictionary/DataConvertMapper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.weaver.seconddev.portal.mapper.dictionary; - -import com.weaver.seconddev.portal.entity.param.BaseParam; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -/** - * @author:dxfeng - * @createTime: 2025/07/29 - * @version: 1.0 - */ -@Mapper -public interface DataConvertMapper { - /** - * 根据名称、类型获取ID - * - * @param param - * @param type - * @param name - * @return - */ - Long getIdByName(@Param("param") BaseParam param, @Param("type") String type, @Param("name") String name); - - /** - * 获取假期类型 - * @param param - * @param name - * @return - */ - Long getHolidayType(@Param("param") BaseParam param, @Param("name") String name); -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/EbuilderBaseMapper.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/EbuilderBaseMapper.java deleted file mode 100644 index 2f34dc8..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/EbuilderBaseMapper.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.weaver.seconddev.portal.mapper.portal; - -import com.weaver.common.form.datasource.FormdataTemplateDetails; -import com.weaver.common.form.metadata.field.FormField; -import com.weaver.seconddev.portal.entity.param.BaseParam; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * @author:dxfeng - * @createTime: 2025/07/16 - * @version: 1.0 - */ -@Mapper -public interface EbuilderBaseMapper { - /** - * 根据表名获取表ID - * - * @param param - * @param tableName - * @return - */ - long getFormIdByTableName(@Param("param") BaseParam param, @Param("tableName") String tableName); - - /** - * 根据表ID和字段名获取字段信息 - * - * @param param - * @param formId - * @param fieldName - * @return - */ - FormField getFormFieldByFieldName(@Param("param") BaseParam param, @Param("formId") long formId, @Param("fieldName") String fieldName); - - /** - * 根据模板ID获取模板详情 - * - * @param param - * @param templateId - * @return - */ - List getFormdataTemplateDetails(@Param("param") BaseParam param, @Param("templateId") long templateId); - - /** - * 根据表名获取对象ID - * - * @param param - * @param tableName - * @return - */ - Long getObjIdByTableName(@Param("param") BaseParam param, @Param("tableName") String tableName); - - Long getFolderIdByFieldId(@Param("param") BaseParam param, @Param("fieldId") Long fieldId); -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/EmployeePortalMapper.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/EmployeePortalMapper.java deleted file mode 100644 index 62ad718..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/EmployeePortalMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.weaver.seconddev.portal.mapper.portal; - -import org.apache.ibatis.annotations.Mapper; - -/** - * @author:dxfeng - * @createTime: 2025/07/11 - * @version: 1.0 - */ -@Mapper -public interface EmployeePortalMapper { - -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/EteamsBaseMapper.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/EteamsBaseMapper.java deleted file mode 100644 index 8f4d95b..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/EteamsBaseMapper.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.weaver.seconddev.portal.mapper.portal; - -import com.weaver.common.form.metadata.field.FormField; -import com.weaver.seconddev.portal.entity.param.BaseParam; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -/** - * @author:dxfeng - * @createTime: 2025/07/18 - * @version: 1.0 - */ -@Mapper -public interface EteamsBaseMapper { - /** - * 根据表名获取表ID - * - * @param param - * @param tableName - * @return - */ - long getFormIdByTableName(@Param("param") BaseParam param, @Param("tableName") String tableName); - - /** - * 根据表ID和字段名获取字段信息 - * - * @param param - * @param formId - * @param fieldName - * @return - */ - FormField getFormFieldByFieldName(@Param("param") BaseParam param, @Param("formId") long formId, @Param("fieldName") String fieldName); -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/HrbpPortalMapper.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/HrbpPortalMapper.java deleted file mode 100644 index c9ba2bb..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/HrbpPortalMapper.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.weaver.seconddev.portal.mapper.portal; - -import com.weaver.seconddev.portal.entity.param.HrbpParam; -import org.apache.ibatis.annotations.Mapper; - -/** - * @author:dxfeng - * @createTime: 2025/07/10 - * @version: 1.0 - */ -@Mapper -public interface HrbpPortalMapper { - - /** - * 待入职 - * - * @param param - * @return - */ - int getToEntryCount(HrbpParam param); - - /** - * 待转正 - * - * @param param - * @return - */ - int getToRegularCount(HrbpParam param); - - /** - * 待离职 - * - * @param param - * @return - */ - int getToLeaveCount(HrbpParam param); - - /** - * 待签订 - * - * @param param - * @return - */ - int getToSignCount(HrbpParam param); - - /** - * 代理期转正 - * - * @param param - * @return - */ - int getToProxyCount(HrbpParam param); - - /** - * 员工人数 - * - * @param param - * @return - */ - int getAllEmployeeCount(HrbpParam param); - - /** - * 正式员工 - * - * @param param - * @return - */ - int getFormalEmployeeCount(HrbpParam param); - - /** - * 实习生 - * - * @param param - * @return - */ - int getInternEmployeeCount(HrbpParam param); - - /** - * 外包 - * - * @param param - * @return - */ - int getOutsourcingCount(HrbpParam param); - - /** - * 劳务 - * - * @param param - * @return - */ - int getLaborCount(HrbpParam param); - - /** - * 试用 - * - * @param param - * @return - */ - int getProbationCount(HrbpParam param); - - /** - * 正式 - * - * @param param - * @return - */ - int getFormalCount(HrbpParam param); - - /** - * 实习 - * - * @param param - * @return - */ - int getInternCount(HrbpParam param); - - /** - * 离职 - * - * @param param - * @return - */ - int getLeaveCount(HrbpParam param); - - /** - * hrbp可查看的应出勤人数 - * @param param - * @return - */ - int getKqRequireByBp(HrbpParam param); - -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/LeaderCockpitMapper.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/LeaderCockpitMapper.java deleted file mode 100644 index 99d7834..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/LeaderCockpitMapper.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.weaver.seconddev.portal.mapper.portal; - -import com.weaver.seconddev.portal.entity.param.SearchConditionParam; -import com.weaver.seconddev.portal.entity.po.PortalPO; -import com.weaver.seconddev.portal.entity.po.Position; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Set; - -/** - * @author:dxfeng - * @createTime: 2025/07/07 - * @version: 1.0 - */ -@Mapper -public interface LeaderCockpitMapper { - - /** - * 按类型统计在职人数 - * - * @param conditionParam - * @return - */ - List getOnJobNumber(SearchConditionParam conditionParam); - - /** - * 查询在职人数 - * - * @param conditionParam - * @return - */ - int getOnJobCount(SearchConditionParam conditionParam); - - /** - * 查询入职人数 - * - * @param param - * @param departmentIdList - * @param startDate - * @param endDate - * @return - */ - int getEmploymentCount(@Param("param") SearchConditionParam param, @Param("departmentIdList") Collection departmentIdList, @Param("startDate") String startDate, @Param("endDate") String endDate); - - /** - * 查询入职人数列表 - * - * @param param - * @param departmentIdList - * @param startDate - * @param endDate - * @return - */ - List getEmploymentListByPosition(@Param("param") SearchConditionParam param, @Param("departmentIdList") Collection departmentIdList, @Param("startDate") String startDate, @Param("endDate") String endDate); - - /** - * 查询关键入职人数 - * - * @param param - * @param departmentIdList - * @param startDate - * @param endDate - * @return - */ - int getKeyEmploymentCount(@Param("param") SearchConditionParam param, @Param("departmentIdList") Collection departmentIdList, @Param("startDate") String startDate, @Param("endDate") String endDate); - - - /** - * 查询离职人数 - * - * @param param - * @param departmentIdList - * @param startDate - * @param endDate - * @return - */ - int getResignCount(@Param("param") SearchConditionParam param, @Param("departmentIdList") Collection departmentIdList, @Param("startDate") String startDate, @Param("endDate") String endDate); - - /** - * 查询关键离职人数 - * - * @param param - * @param departmentIdList - * @param startDate - * @param endDate - * @return - */ - int getKeyResignCount(@Param("param") SearchConditionParam param, @Param("departmentIdList") Collection departmentIdList, @Param("startDate") String startDate, @Param("endDate") String endDate); - - /** - * 查询离职人数列表 - * - * @param param - * @param departmentIdList - * @param startDate - * @param endDate - * @return - */ - List getResignListByPosition(@Param("param") SearchConditionParam param, @Param("departmentIdList") Collection departmentIdList, @Param("startDate") String startDate, @Param("endDate") String endDate); - - - Position getPositionById(@Param("param") SearchConditionParam param, @Param("positionId") String positionId); - - /** - * 获取顶级部门id列表 - * - * @param param - * @return - */ - Set getTopDepartmentIds(@Param("param") SearchConditionParam param); - - /** - * 人力成本 - */ - Map getLaborCost(SearchConditionParam param); - -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/ManagerPortalMapper.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/ManagerPortalMapper.java deleted file mode 100644 index e83ff6e..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/ManagerPortalMapper.java +++ /dev/null @@ -1,181 +0,0 @@ -package com.weaver.seconddev.portal.mapper.portal; - -import com.weaver.seconddev.portal.entity.param.BasicPersonnelParam; -import com.weaver.seconddev.portal.entity.po.LateAndEarlyRankPo; -import com.weaver.seconddev.portal.entity.po.PieChartConfig; -import com.weaver.seconddev.portal.entity.po.PortalPO; -import com.weaver.seconddev.portal.entity.po.TeamEmployeePo; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Collection; -import java.util.List; - -/** - * @author:dxfeng - * @createTime: 2025/07/08 - * @version: 1.0 - */ -@Mapper -public interface ManagerPortalMapper { - /** - * 在职人数 - * - * @param param - * @return - */ - int getOnJobNum(BasicPersonnelParam param); - - /** - * 离职人数 - * - * @param param - * @return - */ - int getResignNumber(BasicPersonnelParam param); - - /** - * 离职流程中人数 - * - * @param param - * @return - */ - int getResigningNumber(BasicPersonnelParam param); - - /** - * 入职流程中人数 - * - * @param param - * @return - */ - int getEntryingNumber(BasicPersonnelParam param); - - /** - * 入职人数 - * - * @param param - * @return - */ - int getEntryNumber(BasicPersonnelParam param); - - /** - * 获取所负责的顶级部门 - * - * @param param - * @param emdId - * @return - */ - List getManageDeptIds(@Param("param") BasicPersonnelParam param, @Param("empId") Long emdId); - - /** - * 获取生日人数 - * - * @param param - * @return - */ - int getBirthdayNum(BasicPersonnelParam param); - - - /** - * 获取预计转正员工人数 - * - * @param param - * @return - */ - int getRegularEmployeeNum(BasicPersonnelParam param); - - /** - * 获取入职周年人数 - * - * @param param - * @return - */ - int getEmploymentAnniversary(BasicPersonnelParam param); - - /** - * 获取学历信息 - * - * @param param - * @return - */ - List getEducationInfo(BasicPersonnelParam param); - - List getPerformanceInfo(BasicPersonnelParam param); - - /** - * 获取年龄统计数据 - * - * @param param - * @param departmentIdList - * @param startIndex - * @param endIndex - * @return - */ - Integer getAgeCount(@Param("param") BasicPersonnelParam param, @Param("departmentIdList") Collection departmentIdList, @Param("startIndex") Integer startIndex, @Param("endIndex") Integer endIndex); - - /** - * 获取司龄统计数据 - * - * @param param - * @param departmentIdList - * @param startIndex - * @param endIndex - * @return - */ - Integer getComapnyCount(@Param("param") BasicPersonnelParam param, @Param("departmentIdList") Collection departmentIdList, @Param("startIndex") Integer startIndex, @Param("endIndex") Integer endIndex); - - /** - * 饼状图配置信息 - * - * @param param - * @return - */ - List getPieTypeConfig(BasicPersonnelParam param); - - /** - * 获取团队成员信息 - * - * @param param - * @return - */ - List getTeamEmployee(BasicPersonnelParam param); - - /** - * 获取团队成员总数 - * - * @param param - * @return - */ - int getTeamEmployeeTotal(BasicPersonnelParam param); - - - Integer sumLateTimes(BasicPersonnelParam param); - - Integer sumLeaveEarlyTimes(BasicPersonnelParam param); - - Integer sumAbsenteeismTimes(BasicPersonnelParam param); - - Integer sumReissueCardTimes(BasicPersonnelParam param); - - Integer sumTotalAttendanceTimes(BasicPersonnelParam param); - - List getLateAndEarlyRankList(BasicPersonnelParam param); - - Integer sumWorkdayOvertimeDuration(BasicPersonnelParam param); - - Integer sumWeekendOvertimeDuration(BasicPersonnelParam param); - - Integer sumLegalHolidayOvertimeDuration(BasicPersonnelParam param); - - Integer sumHolidayTimes(@Param("param") BasicPersonnelParam param, @Param("holidayIds") Collection holidayIds); - - Integer sumPersonalLeaveDuration(BasicPersonnelParam param); - - //Integer sumSickLeaveCount(@Param("param") BasicPersonnelParam param,@Param("holidayIds") Collection holidayIds); - - Integer sumSickLeaveDuration(BasicPersonnelParam param); - - //Integer sumAnnualLeaveCount(@Param("param") BasicPersonnelParam param,@Param("holidayIds") Collection holidayIds); - - Integer sumAnnualLeaveDuration(BasicPersonnelParam param); -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/PortalMapper.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/PortalMapper.java deleted file mode 100644 index e0fde60..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/PortalMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.weaver.seconddev.portal.mapper.portal; - -import com.weaver.seconddev.portal.entity.po.PortalUrlDetail; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * @author:dxfeng - * @createTime: 2025/07/11 - * @version: 1.0 - */ -@Mapper -public interface PortalMapper { - List getPortalUrlDetail(@Param("tenantKey") String tenantKey,@Param("portalKey") String portalKey,@Param("componentKey") String componentKey); -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/SscPortalMapper.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/SscPortalMapper.java deleted file mode 100644 index 3cb1be0..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/mapper/portal/SscPortalMapper.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.weaver.seconddev.portal.mapper.portal; - -import com.weaver.seconddev.portal.entity.param.SscParam; -import org.apache.ibatis.annotations.Mapper; - -/** - * @author:dxfeng - * @createTime: 2025/07/15 - * @version: 1.0 - */ -@Mapper -public interface SscPortalMapper { - - /** - * 合同到期 - * - * @param param - * @return - */ - int getExpirationReminderCount(SscParam param); - - /** - * 身份证到期 - * - * @param param - * @return - */ - int getIdCardExpirationCount(SscParam param); - - /** - * 健康证到期 - * - * @param param - * @return - */ - int getHealthCertificateExpirationCount(SscParam param); - - /** - * 入职周年提醒 - * @param param - * @return - */ - int getEmploymentAnniversaryCount(SscParam param); - - - -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/EmployeePortalService.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/EmployeePortalService.java deleted file mode 100644 index b158fb5..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/EmployeePortalService.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.weaver.seconddev.portal.service; - -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.seconddev.portal.entity.po.EmployeeBasicInfoPo; - -import java.util.Map; - -/** - * @author:dxfeng - * @createTime: 2025/07/11 - * @version: 1.0 - */ -public interface EmployeePortalService { - /** - * 获取员工工作时长 - * - * @param params - * @return - */ - WeaResult> getDurationOfEmployment(Map params); - - /** - * 获取员工信息 - * - * @param params - * @return - */ - WeaResult getEmployeeInfo(Map params); - -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/HrbpPortalService.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/HrbpPortalService.java deleted file mode 100644 index 8d0685b..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/HrbpPortalService.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.weaver.seconddev.portal.service; - -import com.weaver.common.base.entity.result.WeaResult; - -import java.util.Map; - -/** - * @author:dxfeng - * @createTime: 2025/07/10 - * @version: 1.0 - */ -public interface HrbpPortalService { - - /** - * 获取待办事项 - * - * @param params - * @return - */ - WeaResult> getToDo(Map params); - - /** - * 获取员工数据 - * - * @param params - * @return - */ - WeaResult> getEmployeeData(Map params); - - /** - * 今日概况 - * - * @param params - * @return - */ - WeaResult> getTodayOverview(Map params); -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/LeaderCockpitService.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/LeaderCockpitService.java deleted file mode 100644 index 50e5979..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/LeaderCockpitService.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.weaver.seconddev.portal.service; - -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.seconddev.portal.entity.po.PortalPO; - -import java.util.List; -import java.util.Map; - -/** - * 领导驾驶舱门户 - * - * @author:dxfeng - * @createTime: 2025/07/07 - * @version: 1.0 - */ -public interface LeaderCockpitService { - - /** - * 获取在职人数 - * - * @param params - * @return - */ - WeaResult> getOnJobNumber(Map params); - - /** - * 获取人工成本 - * - * @param params - * @return - */ - WeaResult> getLaborCost(Map params); - - /** - * 获取离职率 - * - * @param params - * @return - */ - WeaResult> getTurnoverRate(Map params); - - /** - * 获取出勤率 - * - * @param params - * @return - */ - WeaResult> getAttendanceRate(Map params); - - /** - * 获取满编率 - * - * @param params - * @param header - * @return - */ - WeaResult> getFullStaffingRate(Map header, Map params); - - /** - * 获取入职情况 - * - * @param params - * @return - */ - WeaResult> getEmploymentStatus(Map params); - - /** - * 获取离职情况 - * - * @param params - * @return - */ - WeaResult> getResignationSituation(Map params); - -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/ManagerPortalService.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/ManagerPortalService.java deleted file mode 100644 index df1578f..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/ManagerPortalService.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.weaver.seconddev.portal.service; - -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.seconddev.portal.entity.component.Option; - -import java.util.List; -import java.util.Map; - -/** - * 经理门户 - * - * @author:dxfeng - * @createTime: 2025/07/08 - * @version: 1.0 - */ -public interface ManagerPortalService { - - /** - * 经理信息 - * - * @param params - * @return - */ - WeaResult> getMangerInfo(Map params); - - /** - * 今日概况 - * - * @param params - * @return - */ - WeaResult> getTodayOverview(Map params); - - /** - * 基础人事 - * - * @param params - * @return - */ - WeaResult> getBasicPersonnel(Map params); - - /** - * 基础人事SQL - * - * @param params - * @return - */ - WeaResult getBasicPersonnelSql(Map params); - - - /** - * 团队纪念日 - * - * @param params - * @return - */ - WeaResult> getTeamMemorialDay(Map params); - - WeaResult getTeamMemorialDaySql(Map params); - - - /** - * 数据看板 - * - * @param params - * @return - */ - WeaResult> getEducationInfo(Map params); - - /** - * 考勤看板 - * - * @param params - * @return - */ - WeaResult> getAttendanceInfo(Map params); - - /** - * 团队员工 - * - * @param params - * @return - */ - WeaResult> getTeamEmployee(Map params); - - /** - * 获取EB表单字段下拉选项 - * - * @param params - * @return - */ - WeaResult> getEbFieldOptions(Map params); -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/SscPortalService.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/SscPortalService.java deleted file mode 100644 index 843db3e..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/SscPortalService.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.weaver.seconddev.portal.service; - -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.seconddev.portal.entity.po.ExpirationReminderPo; - -import java.util.Map; - -/** - * @author:dxfeng - * @createTime: 2025/07/15 - * @version: 1.0 - */ -public interface SscPortalService { - /** - * 到期提醒 - * - * @param params - * @return - */ - WeaResult getExpirationReminder(Map params); -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/impl/EmployeePortalServiceImpl.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/impl/EmployeePortalServiceImpl.java deleted file mode 100644 index a76f220..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/impl/EmployeePortalServiceImpl.java +++ /dev/null @@ -1,207 +0,0 @@ -package com.weaver.seconddev.portal.service.impl; - -import cn.hutool.http.HttpRequest; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.common.hr.util.Util; -import com.weaver.common.hrm.dao.HrmCommonEmployeeDao; -import com.weaver.seconddev.portal.entity.po.EmployeeBasicInfoPo; -import com.weaver.seconddev.portal.entity.po.PortalUrlDetail; -import com.weaver.seconddev.portal.enums.PersonnelStatusEnum; -import com.weaver.seconddev.portal.mapper.portal.PortalMapper; -import com.weaver.seconddev.portal.service.EmployeePortalService; -import com.weaver.seconddev.portal.util.DateUtil; -import com.weaver.teams.domain.department.SimpleDepartment; -import com.weaver.teams.domain.user.Avatar; -import com.weaver.teams.domain.user.SimpleEmployee; -import com.weaver.teams.security.context.UserContext; -import com.weaver.teams.security.user.User; -import com.weaver.workflow.common.cfg.org.service.DepartMentService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.time.LocalDate; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -/** - * @author:dxfeng - * @createTime: 2025/07/11 - * @version: 1.0 - */ -@Slf4j -@Service -public class EmployeePortalServiceImpl implements EmployeePortalService { - - private static final String PORTAL_KEY = "employeePortal"; - - @Autowired - HrmCommonEmployeeDao hrmCommonEmployeeDao; - - @Autowired - DepartMentService departMentService; - - @Autowired - PortalMapper portalMapper; - - @Override - public WeaResult> getDurationOfEmployment(Map params) { - User currentUser = UserContext.getCurrentUser(); - SimpleEmployee byId = hrmCommonEmployeeDao.getById(currentUser.getEmployeeId()); - - LocalDate localDate = DateUtil.toLocalDate(byId.getHiredate()); - // 计算入职日期到现在的天数 - long days = DateUtil.daysBetween(DateUtil.formatDate(localDate), DateUtil.getCurrentDateStr()); - - Map returnMap = new HashMap<>(1); - returnMap.put("days", days); - return WeaResult.success(returnMap); - } - - @Override - public WeaResult getEmployeeInfo(Map params) { - User currentUser = UserContext.getCurrentUser(); - EmployeeBasicInfoPo employeeBasicInfoPo = new EmployeeBasicInfoPo(); - employeeBasicInfoPo.setEmployeeId(currentUser.getEmployeeId()); - - SimpleEmployee byId = hrmCommonEmployeeDao.getById(currentUser.getEmployeeId()); - SimpleDepartment department = byId.getDepartment(); - Avatar avatar = byId.getAvatar(); - employeeBasicInfoPo.setAvatar(avatar); - employeeBasicInfoPo.setUserName(byId.getUsername()); - employeeBasicInfoPo.setWorkCode(byId.getJobNum()); - //WeaDepartMent departmentById = departMentService.getDepartMentById(byId.getDepartmentId()); - //employeeBasicInfoPo.setCompanyName(null != departmentById ? departmentById.getDepartMentName() : ""); - employeeBasicInfoPo.setDepartmentName(null==department?"":department.getName()); - - employeeBasicInfoPo.setHireDate(cn.hutool.core.date.DateUtil.formatDate(byId.getHiredate())); - employeeBasicInfoPo.setEmployeeStatus(PersonnelStatusEnum.getShowNameByValue(byId.getPersonnelStatus())); - - SimpleEmployee superior = byId.getSuperior(); - - employeeBasicInfoPo.setDirectSuperior(null != superior ? superior.getUsername() : ""); - - - // 考勤信息 - buildAttendance(params, employeeBasicInfoPo); - - // 穿透地址处理 - List portalUrlDetails = portalMapper.getPortalUrlDetail(currentUser.getTenantKey(), PORTAL_KEY, "getEmployeeInfo"); - Map urlMap = portalUrlDetails.stream().collect(Collectors.toMap(PortalUrlDetail::getDetailKey, PortalUrlDetail::getUrlAddress)); - employeeBasicInfoPo.setAnnualLeaveBalanceUrl(urlMap.get("annualLeaveBalance")); - employeeBasicInfoPo.setLeaveBalanceUrl(urlMap.get("leaveBalance")); - employeeBasicInfoPo.setPaidSickLeaveBalanceUrl(urlMap.get("paidSickLeaveBalance")); - employeeBasicInfoPo.setExpectedAttendanceUrl(urlMap.get("expectedAttendance")); - employeeBasicInfoPo.setActualAttendanceUrl(urlMap.get("actualAttendance")); - employeeBasicInfoPo.setLeaveUrl(urlMap.get("leave")); - employeeBasicInfoPo.setTravelUrl(urlMap.get("travel")); - employeeBasicInfoPo.setOvertimeUrl(urlMap.get("overtime")); - employeeBasicInfoPo.setPublicLeaveUrl(urlMap.get("publicLeave")); - employeeBasicInfoPo.setExceptionalAttendanceUrl(urlMap.get("exceptionalAttendance")); - - - return WeaResult.success(employeeBasicInfoPo); - } - - /** - * 构建考勤信息 - * - * @param params - * @param employeeBasicInfoPo - */ - private void buildAttendance(Map params, EmployeeBasicInfoPo employeeBasicInfoPo) { - String url = Util.null2String(params.get("otherApiUrl")); - Map header = (Map) params.get("header"); - - String beginDate = DateUtil.getFirstDayOfMonth(); - String endDate = DateUtil.getLastDayOfMonth(); - Long userId = employeeBasicInfoPo.getEmployeeId(); - - JSONObject jsonObject = new JSONObject(); - jsonObject.put("beginDate", beginDate); - jsonObject.put("endDate", endDate); - jsonObject.put("userId", String.valueOf(userId)); - - String resultStr = HttpRequest.post(url).headerMap(header, true) - .body(jsonObject.toJSONString()).execute().body(); - - if (resultStr != null) { - JSONObject response = JSON.parseObject(resultStr); - if (response.getBoolean("status") && 200 == response.getIntValue("code")) { - JSONObject data = response.getJSONObject("data"); - - // 考勤信息 - JSONObject attendStatis = data.getJSONObject("attendStatis"); - if (attendStatis != null) { - JSONObject periodLength = attendStatis.getJSONObject("periodLength"); - employeeBasicInfoPo.setExpectedAttendance(null == periodLength ? "0" : periodLength.getString("value")); - JSONObject actual = attendStatis.getJSONObject("actual"); - employeeBasicInfoPo.setActualAttendance(null == actual ? "0" : actual.getString("value")); - JSONObject lostLength = attendStatis.getJSONObject("lostLength"); - employeeBasicInfoPo.setExceptionalAttendance(null == lostLength ? "0" : lostLength.getString("value")); - } - - JSONArray attendSummaryData = data.getJSONObject("attendSummary").getJSONArray("data"); - if (attendSummaryData != null) { - for (int i = 0; i < attendSummaryData.size(); i++) { - JSONObject item = attendSummaryData.getJSONObject(i); - String key = item.getString("key"); - String value = item.getString("value"); - - switch (key) { - case "LEAVE": - employeeBasicInfoPo.setLeave(value); - break; - case "BUSINESS": - employeeBasicInfoPo.setTravel(value); - break; - case "OUT_SIDE": - employeeBasicInfoPo.setPublicLeave(value); - break; - case "OVERTIME": - employeeBasicInfoPo.setOvertime(value); - break; - default: - break; - } - } - } - - // 假期余额信息 - JSONArray vacationBalanceList = data.getJSONArray("vacationBalanceList"); - if (vacationBalanceList != null) { - for (int i = 0; i < vacationBalanceList.size(); i++) { - JSONObject vacationItem = vacationBalanceList.getJSONObject(i); - String title = vacationItem.getString("title"); - JSONArray dataArray = vacationItem.getJSONArray("data"); - - if (dataArray != null && dataArray.size() > 0) { - JSONObject totalItem = dataArray.getJSONObject(dataArray.size() - 1); - String totalValue = totalItem.getString("value"); - - switch (title) { - case "年假": - employeeBasicInfoPo.setAnnualLeaveBalance(totalValue); - break; - case "调休假": - employeeBasicInfoPo.setLeaveBalance(totalValue); - break; - case "带薪病假": - employeeBasicInfoPo.setPaidSickLeaveBalance(totalValue); - break; - default: - break; - } - } - } - } - } - } - } - -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/impl/HrbpPortalServiceImpl.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/impl/HrbpPortalServiceImpl.java deleted file mode 100644 index 5a21a6f..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/impl/HrbpPortalServiceImpl.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.weaver.seconddev.portal.service.impl; - -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.seconddev.portal.entity.param.HrbpParam; -import com.weaver.seconddev.portal.entity.po.PortalUrlDetail; -import com.weaver.seconddev.portal.mapper.portal.HrbpPortalMapper; -import com.weaver.seconddev.portal.mapper.portal.PortalMapper; -import com.weaver.seconddev.portal.service.HrbpPortalService; -import com.weaver.teams.security.context.UserContext; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -/** - * @author:dxfeng - * @createTime: 2025/07/10 - * @version: 1.0 - */ -@Slf4j -@Service -public class HrbpPortalServiceImpl implements HrbpPortalService { - - private static final String PORTAL_KEY = "hrbpPortal"; - - @Autowired - HrbpPortalMapper hrbpPortalMapper; - - @Autowired - PortalMapper portalMapper; - - @Value("#{'${portal.dept.matrixId}'}") - private String matrixId; - @Value("#{'${portal.dept.matrixValueConfigId}'}") - private String matrixValueConfigId; - - @Override - public WeaResult> getToDo(Map params) { - - Map map = new HashMap<>(); - HrbpParam hrbpParam = new HrbpParam(); - hrbpParam.setTenantKey(UserContext.getCurrentUser().getTenantKey()); - // 权限条件 - - - int toEntryCount = hrbpPortalMapper.getToEntryCount(hrbpParam); - int toRegularCount = hrbpPortalMapper.getToRegularCount(hrbpParam); - int toLeaveCount = hrbpPortalMapper.getToLeaveCount(hrbpParam); - int toSignCount = hrbpPortalMapper.getToSignCount(hrbpParam); - int toProxyCount = hrbpPortalMapper.getToProxyCount(hrbpParam); - - List portalUrlDetails = portalMapper.getPortalUrlDetail(hrbpParam.getTenantKey(), PORTAL_KEY, "getToDo"); - Map urlMap = portalUrlDetails.stream().collect(Collectors.toMap(PortalUrlDetail::getDetailKey, PortalUrlDetail::getUrlAddress)); - - // 待入职 - map.put("entry", toEntryCount); - map.put("entryUrl", urlMap.get("entry")); - // 待转正 - map.put("regular", toRegularCount); - map.put("regularUrl", urlMap.get("regular")); - // 待离职 - map.put("leave", toLeaveCount); - map.put("leaveUrl", urlMap.get("leave")); - // 待签订 - map.put("sign", toSignCount); - map.put("signUrl", urlMap.get("sign")); - // 代理期转正 - map.put("proxy", toProxyCount); - map.put("proxyUrl", urlMap.get("proxy")); - return WeaResult.success(map); - } - - @Override - public WeaResult> getEmployeeData(Map params) { - - Map map = new HashMap<>(); - HrbpParam hrbpParam = new HrbpParam(); - hrbpParam.setTenantKey(UserContext.getCurrentUser().getTenantKey()); - - List portalUrlDetails = portalMapper.getPortalUrlDetail(hrbpParam.getTenantKey(), PORTAL_KEY, "getEmployeeData"); - Map urlMap = portalUrlDetails.stream().collect(Collectors.toMap(PortalUrlDetail::getDetailKey, PortalUrlDetail::getUrlAddress)); - - - // 员工人数 - int allEmployeeCount = hrbpPortalMapper.getAllEmployeeCount(hrbpParam); - map.put("allEmployee", allEmployeeCount); - map.put("allEmployeeUrl", urlMap.get("allEmployee")); - // 正式员工 - int formalEmployeeCount = hrbpPortalMapper.getFormalEmployeeCount(hrbpParam); - map.put("formalEmployee", formalEmployeeCount); - map.put("formalEmployeeUrl", urlMap.get("formalEmployee")); - // 实习生 - map.put("internEmployee", hrbpPortalMapper.getInternEmployeeCount(hrbpParam)); - map.put("internEmployeeUrl", urlMap.get("internEmployee")); - // 外包 - map.put("outsourcing", hrbpPortalMapper.getOutsourcingCount(hrbpParam)); - map.put("outsourcingUrl", urlMap.get("outsourcing")); - // 劳务 - map.put("labor", hrbpPortalMapper.getLaborCount(hrbpParam)); - map.put("laborUrl", urlMap.get("labor")); - // 试用 - map.put("probation", hrbpPortalMapper.getProbationCount(hrbpParam)); - map.put("probationUrl", urlMap.get("probation")); - // 正式 - map.put("formal", hrbpPortalMapper.getFormalCount(hrbpParam)); - map.put("formalUrl", urlMap.get("formal")); - // 实习 - map.put("intern", hrbpPortalMapper.getInternCount(hrbpParam)); - map.put("internUrl", urlMap.get("intern")); - // 离职 - map.put("leave", hrbpPortalMapper.getLeaveCount(hrbpParam)); - map.put("leaveUrl", urlMap.get("leave")); - return WeaResult.success(map); - } - - @Override - public WeaResult> getTodayOverview(Map params) { - Map resultMap = new HashMap<>(); - - //部门矩阵中,hrbp负责的部门 - //应出勤人数,部门在职人数 - HrbpParam hrbpParam = new HrbpParam(); - hrbpParam.setTenantKey(UserContext.getCurrentUser().getTenantKey()); - hrbpParam.setMatrixId(Long.valueOf(matrixId)); - hrbpParam.setMatrixValueConfigId(Long.valueOf(matrixValueConfigId)); - hrbpParam.setUserId(UserContext.getCurrentUser().getUserId()); - int totalRequire = hrbpPortalMapper.getKqRequireByBp(hrbpParam); - resultMap.put("totalRequire", totalRequire); - return WeaResult.success(resultMap); - } -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/impl/LeaderCockpitServiceImpl.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/impl/LeaderCockpitServiceImpl.java deleted file mode 100644 index 25489e0..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/impl/LeaderCockpitServiceImpl.java +++ /dev/null @@ -1,373 +0,0 @@ -package com.weaver.seconddev.portal.service.impl; - -import cn.hutool.core.convert.Convert; -import cn.hutool.http.HttpRequest; -import com.alibaba.fastjson.JSON; -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.common.hrm.dao.HrmCommonEmployeeDao; -import com.weaver.seconddev.portal.entity.bo.EmployeeStaffBo; -import com.weaver.seconddev.portal.entity.param.SearchConditionParam; -import com.weaver.seconddev.portal.entity.po.PortalData; -import com.weaver.seconddev.portal.entity.po.PortalPO; -import com.weaver.seconddev.portal.entity.po.cfg.*; -import com.weaver.seconddev.portal.mapper.portal.LeaderCockpitMapper; -import com.weaver.seconddev.portal.service.LeaderCockpitService; -import com.weaver.seconddev.portal.util.DateUtil; -import com.weaver.teams.security.StringUtils; -import com.weaver.teams.security.context.UserContext; -import com.weaver.workflow.common.cfg.org.service.DepartMentService; -import com.weaver.workflow.common.entity.org.WeaDepartMent; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.time.LocalDate; -import java.util.*; - -/** - * 领导驾驶舱门户 - * - * @author:dxfeng - * @createTime: 2025/07/07 - * @version: 1.0 - */ -@Slf4j -@Service -public class LeaderCockpitServiceImpl implements LeaderCockpitService { - @Autowired - LeaderCockpitMapper leaderCockpitMapper; - - @Autowired - HrmCommonEmployeeDao hrmCommonEmployeeDao; - - @Autowired - DepartMentService departMentService; - - @Override - public WeaResult> getOnJobNumber(Map params) { - SearchConditionParam searchConditionParam = new SearchConditionParam(); - initSearchConditionParam(searchConditionParam, params, null); - log.error("searchConditionParam===" + JSON.toJSONString(searchConditionParam)); - List onJobNumber = leaderCockpitMapper.getOnJobNumber(searchConditionParam); - Map returnMap = new HashMap<>(); - returnMap.put("data", onJobNumber); - returnMap.put("total", onJobNumber.stream().mapToInt(item -> Convert.toInt(item.getValue(), 0)).sum()); - return WeaResult.success(returnMap); - } - - @Override - public WeaResult > getLaborCost(Map params) { - SearchConditionParam searchConditionParam = new SearchConditionParam(); - initSearchConditionParam(searchConditionParam, params, null); - log.error("searchConditionParam===" + JSON.toJSONString(searchConditionParam)); - - Map laborCost = leaderCockpitMapper.getLaborCost(searchConditionParam); - return WeaResult.success(laborCost); - } - - @Override - public WeaResult> getTurnoverRate(Map params) { - SearchConditionParam searchConditionParam = new SearchConditionParam(); - initSearchConditionParam(searchConditionParam, params, null); - log.error("searchConditionParam===" + JSON.toJSONString(searchConditionParam)); - // 查询范围内在职人员 - int onJobCount = leaderCockpitMapper.getOnJobCount(searchConditionParam); - // 查询范围内离职人员 - int resignCount = leaderCockpitMapper.getResignCount(searchConditionParam, searchConditionParam.getDepartmentIdList(), searchConditionParam.getStartDate(), searchConditionParam.getEndDate()); - // 查询关键离职率 - int keyResignCount = leaderCockpitMapper.getKeyResignCount(searchConditionParam, searchConditionParam.getDepartmentIdList(), searchConditionParam.getStartDate(), searchConditionParam.getEndDate()); - // 计算离职率 - double turnoverRate = calculateRate(keyResignCount, onJobCount); - //TODO 计算关键离职率 - double keyTurnoverRate = calculateRate(keyResignCount, resignCount); - - Map returnMap = new HashMap<>(2); - returnMap.put("turnoverRate", formatPercentage(turnoverRate)); - returnMap.put("keyTurnoverRate", formatPercentage(keyTurnoverRate)); - return WeaResult.success(returnMap); - } - - @Override - public WeaResult> getAttendanceRate(Map params) { - return null; - } - - @Override - public WeaResult> getFullStaffingRate(Map header, Map params) { - String origin = header.get("origin"); - // 人员编制 - String employeeStaffUrl = origin + "/api/bs/hr/est/cfg/table"; - // 人员编制具体信息 - String getEmployeeDetailUrl = origin + "/api/bs/hr/est/cfg/emp/table"; - - String beginDate = DateUtil.getFirstDayOfMonth(); - String endDate = DateUtil.getLastDayOfMonth(); - SearchConditionParam searchConditionParam = new SearchConditionParam(); - initSearchConditionParam(searchConditionParam, params, null); - log.error("searchConditionParam===" + JSON.toJSONString(searchConditionParam)); - //postEmployeeStaff(employeeStaffUrl, header, searchConditionParam.getDepartmentIdList(), month); - - - return null; - } - - private void postEmployeeStaff(String employeeStaffUrl,Map header, Set departmentIdList, String month) { - - FormDatas formDatas = new FormDatas(); - FormDatasDetail formDatasDetail = new FormDatasDetail(); - formDatas.setFormDatas(formDatasDetail); - List orgItemList = new ArrayList<>(); - for (Long aLong : departmentIdList) { - OrgItem orgItem = new OrgItem(); - orgItem.setId(aLong + ""); - orgItemList.add(orgItem); - } - OrgWrapper orgWrapper = new OrgWrapper(); - orgWrapper.setOrg(orgItemList); - formDatasDetail.setOrg(Collections.singletonList(orgWrapper)); - MonthWrapper monthWrapper = new MonthWrapper(); - monthWrapper.setMonth(month); - formDatasDetail.setMonth(Collections.singletonList(monthWrapper)); - OverCtrlWrapper overCtrlWrapper = new OverCtrlWrapper(); - overCtrlWrapper.setOverCtrl("all"); - formDatasDetail.setOverCtrl(Collections.singletonList(overCtrlWrapper)); - - - String resultStr = HttpRequest.post(employeeStaffUrl).headerMap(header, true) - .body(JSON.toJSONString(formDatas)).execute().body(); - List employeeStaffs = EmployeeStaffBo.mapEmployeeStaffData(resultStr); - - - } - - - @Override - public WeaResult> getEmploymentStatus(Map params) { - SearchConditionParam searchConditionParam = new SearchConditionParam(); - initSearchConditionParam(searchConditionParam, params, 0); - - log.error("searchConditionParam===" + JSON.toJSONString(searchConditionParam)); - String searchDate = params.get("searchDate"); - if (StringUtils.isBlank(searchDate)) { - searchDate = DateUtil.getCurrentDateStr(); - } - LocalDate localDate = DateUtil.parseDate(searchDate); - - String month = DateUtil.formatToYearMonth_ZH(localDate); - Map allDataMap = new LinkedHashMap<>(3); - Map keyDataMap = new LinkedHashMap<>(3); - allDataMap.put(month, leaderCockpitMapper.getEmploymentCount(searchConditionParam, searchConditionParam.getDepartmentIdList(), searchConditionParam.getStartDate(), searchConditionParam.getEndDate())); - keyDataMap.put(month, leaderCockpitMapper.getKeyEmploymentCount(searchConditionParam, searchConditionParam.getDepartmentIdList(), searchConditionParam.getStartDate(), searchConditionParam.getEndDate())); - - String firstDayOfMonthStr = DateUtil.getFirstDayOfPreviousMonthStr(searchConditionParam.getStartDate()); - String lastDayOfMonthStr = DateUtil.getLastDayOfPreviousMonthStr(searchConditionParam.getEndDate()); - // 前面5个月 - for (int i = 1; i < 7; i++) { - allDataMap.put(DateUtil.formatToYearMonth_ZH(firstDayOfMonthStr), leaderCockpitMapper.getEmploymentCount(searchConditionParam, searchConditionParam.getDepartmentIdList(), firstDayOfMonthStr, lastDayOfMonthStr)); - keyDataMap.put(DateUtil.formatToYearMonth_ZH(firstDayOfMonthStr), leaderCockpitMapper.getKeyEmploymentCount(searchConditionParam, searchConditionParam.getDepartmentIdList(), firstDayOfMonthStr, lastDayOfMonthStr)); - firstDayOfMonthStr = DateUtil.getFirstDayOfPreviousMonthStr(searchConditionParam.getStartDate(), i); - lastDayOfMonthStr = DateUtil.getLastDayOfPreviousMonthStr(searchConditionParam.getEndDate(), i); - } - - // 查询台账 - String currentMonth = DateUtil.formatToYearMonth(searchConditionParam.getStartDate()); - - Set selectDepartmentId = searchConditionParam.getSelectDepartmentId(); - log.error("selectDepartmentId===" + JSON.toJSONString(selectDepartmentId)); - if (CollectionUtils.isEmpty(selectDepartmentId)) { - // 未选择部门,查询所有一级部门数据 - selectDepartmentId = leaderCockpitMapper.getTopDepartmentIds(searchConditionParam); - log.error("topDepartmentId===" + JSON.toJSONString(selectDepartmentId)); - } - - // 查询每个部门 时间范围内的入职人数 - List portalList = new ArrayList<>(); - for (Long topDepartmentId : selectDepartmentId) { - List beLongDeps = departMentService.getBeLongDeps(topDepartmentId, searchConditionParam.getTenantKey(), false); - beLongDeps.add(topDepartmentId); - WeaDepartMent departMentById = departMentService.getDepartMentById(topDepartmentId); - PortalData portalData = new PortalData(); - portalData.setDate(currentMonth); - portalData.setDepart(departMentById.getDepartMentName()); - // 关键 - int keyEmploymentCount = leaderCockpitMapper.getKeyEmploymentCount(searchConditionParam, beLongDeps, searchConditionParam.getStartDate(), searchConditionParam.getEndDate()); - // 非关键 - int employmentCount = leaderCockpitMapper.getEmploymentCount(searchConditionParam, beLongDeps, searchConditionParam.getStartDate(), searchConditionParam.getEndDate()); - portalData.setKey(keyEmploymentCount); - portalData.setAll(employmentCount); - portalList.add(portalData); - } - - // portalList按照all排序 - portalList.sort((o1, o2) -> o2.getAll().compareTo(o1.getAll())); - - Map returnMap = new HashMap<>(3); - returnMap.put("dataSource", portalList); - returnMap.put("all", allDataMap); - returnMap.put("key", keyDataMap); - return WeaResult.success(returnMap); - } - - @Override - public WeaResult> getResignationSituation(Map params) { - SearchConditionParam searchConditionParam = new SearchConditionParam(); - initSearchConditionParam(searchConditionParam, params, 0); - log.error("searchConditionParam===" + JSON.toJSONString(searchConditionParam)); - - String searchDate = params.get("searchDate"); - if (StringUtils.isBlank(searchDate)) { - searchDate = DateUtil.getCurrentDateStr(); - } - LocalDate localDate = DateUtil.parseDate(searchDate); - - String month = DateUtil.formatToYearMonth_ZH(localDate); - Map allDataMap = new LinkedHashMap<>(3); - Map keyDataMap = new LinkedHashMap<>(3); - allDataMap.put(month, leaderCockpitMapper.getResignCount(searchConditionParam, searchConditionParam.getDepartmentIdList(), searchConditionParam.getStartDate(), searchConditionParam.getEndDate())); - keyDataMap.put(month, leaderCockpitMapper.getKeyResignCount(searchConditionParam, searchConditionParam.getDepartmentIdList(), searchConditionParam.getStartDate(), searchConditionParam.getEndDate())); - - String firstDayOfMonthStr = DateUtil.getFirstDayOfPreviousMonthStr(searchConditionParam.getStartDate()); - String lastDayOfMonthStr = DateUtil.getLastDayOfPreviousMonthStr(searchConditionParam.getEndDate()); - // 前五个月 - for (int i = 1; i < 7; i++) { - allDataMap.put(DateUtil.formatToYearMonth_ZH(firstDayOfMonthStr), leaderCockpitMapper.getResignCount(searchConditionParam, searchConditionParam.getDepartmentIdList(), firstDayOfMonthStr, lastDayOfMonthStr)); - keyDataMap.put(DateUtil.formatToYearMonth_ZH(firstDayOfMonthStr), leaderCockpitMapper.getKeyResignCount(searchConditionParam, searchConditionParam.getDepartmentIdList(), firstDayOfMonthStr, lastDayOfMonthStr)); - - firstDayOfMonthStr = DateUtil.getFirstDayOfPreviousMonthStr(searchConditionParam.getStartDate(), i); - lastDayOfMonthStr = DateUtil.getLastDayOfPreviousMonthStr(searchConditionParam.getEndDate(), i); - } - - - String currentMonth = DateUtil.formatToYearMonth(searchConditionParam.getStartDate()); - Set selectDepartmentId = searchConditionParam.getSelectDepartmentId(); - log.error("selectDepartmentId===" + JSON.toJSONString(selectDepartmentId)); - if (CollectionUtils.isEmpty(selectDepartmentId)) { - // 未选择部门,查询所有一级部门数据 - selectDepartmentId = leaderCockpitMapper.getTopDepartmentIds(searchConditionParam); - log.error("topDepartmentId===" + JSON.toJSONString(selectDepartmentId)); - } - // 查询每个部门 时间范围内的离职人数 - List portalList = new ArrayList<>(); - for (Long topDepartmentId : selectDepartmentId) { - List beLongDeps = departMentService.getBeLongDeps(topDepartmentId, searchConditionParam.getTenantKey(), false); - beLongDeps.add(topDepartmentId); - WeaDepartMent departMentById = departMentService.getDepartMentById(topDepartmentId); - PortalData portalData = new PortalData(); - portalData.setDate(currentMonth); - portalData.setDepart(departMentById.getDepartMentName()); - // 关键 - int keyEmploymentCount = leaderCockpitMapper.getKeyResignCount(searchConditionParam, beLongDeps, searchConditionParam.getStartDate(), searchConditionParam.getEndDate()); - // 非关键 - int employmentCount = leaderCockpitMapper.getResignCount(searchConditionParam, beLongDeps, searchConditionParam.getStartDate(), searchConditionParam.getEndDate()); - portalData.setKey(keyEmploymentCount); - portalData.setAll(employmentCount); - portalList.add(portalData); - } - - // portalList按照all排序 - portalList.sort((o1, o2) -> o2.getAll().compareTo(o1.getAll())); - - - Map returnMap = new HashMap<>(3); - returnMap.put("dataSource", portalList); - returnMap.put("all", allDataMap); - returnMap.put("key", keyDataMap); - return WeaResult.success(returnMap); - } - - - /** - * 构建查询对象 - * - * @param searchConditionParam - * @param params - * @param beforeMonth - */ - private void initSearchConditionParam(SearchConditionParam searchConditionParam, Map params, Integer beforeMonth) { - String searchDate = params.get("searchDate"); - String departmentId = params.get("departmentId"); - - // 租户 - searchConditionParam.setTenantKey(UserContext.getCurrentUser().getTenantKey()); - // 部门 - //searchConditionParam.setDepartmentId(departmentId); - - // 获取部门下的所有子部门 - if (StringUtils.isNotBlank(departmentId)) { - Set deptIdSet = new HashSet<>(); - Set selectDepartmentId = new HashSet<>(); - String[] split = departmentId.split(","); - for (String s : split) { - if (StringUtils.isBlank(s)) { - continue; - } - long parseLong = Long.parseLong(s); - log.error("parseLong===" + parseLong); - selectDepartmentId.add(parseLong); - List beLongDeps = departMentService.getBeLongDeps(parseLong, searchConditionParam.getTenantKey(), false); - beLongDeps.add(parseLong); - log.error("beLongDeps===" + JSON.toJSONString(beLongDeps)); - deptIdSet.addAll(beLongDeps); - } - searchConditionParam.setDepartmentIdList(deptIdSet); - searchConditionParam.setSelectDepartmentId(selectDepartmentId); - } - - // 处理截止日期 - String endDateStr; - if (StringUtils.isBlank(searchDate)) { - endDateStr = DateUtil.getCurrentDateStr(); - } else { - try { - // 验证日期格式是否合法 - endDateStr = searchDate; - } catch (Exception e) { - log.error("日期格式错误,使用当前日期: {}", searchDate, e); - endDateStr = DateUtil.getCurrentDateStr(); - } - } - searchConditionParam.setEndDate(endDateStr); - - // 处理开始日期 - if (beforeMonth == null) { - // 查询当前年度数据 - searchConditionParam.setStartDate(DateUtil.getFirstDayOfYearStr(searchConditionParam.getEndDate())); - } else { - // 查询前N个月数据 - try { - LocalDate endDate = LocalDate.parse(endDateStr); - LocalDate startDate = endDate.minusMonths(beforeMonth); - searchConditionParam.setStartDate(DateUtil.getFirstDayOfMonthStr(DateUtil.formatDate(startDate))); - } catch (Exception e) { - log.error("计算开始日期失败,使用所选日期年度第一天", e); - searchConditionParam.setStartDate(searchConditionParam.getEndDate()); - } - } - } - - /** - * 计算百分比 - * - * @param numerator - * @param denominator - * @return - */ - private double calculateRate(int numerator, int denominator) { - if (denominator == 0) { - log.warn("计算比率时分母为0,返回0"); - return 0.0; - } - return (double) numerator / denominator; - } - - /** - * 格式化百分比 - * - * @param rate - * @return - */ - private String formatPercentage(double rate) { - return String.format("%.2f%%", rate * 100); - } -} diff --git a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/impl/ManagerPortalServiceImpl.java b/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/impl/ManagerPortalServiceImpl.java deleted file mode 100644 index 845eb00..0000000 --- a/secondev-chabaidao-portal/src/main/java/com/weaver/seconddev/portal/service/impl/ManagerPortalServiceImpl.java +++ /dev/null @@ -1,660 +0,0 @@ -package com.weaver.seconddev.portal.service.impl; - -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.convert.Convert; -import com.alibaba.fastjson.JSON; -import com.weaver.common.base.entity.result.WeaResult; -import com.weaver.common.form.datasource.FormdataTemplateDetails; -import com.weaver.common.form.metadata.field.FormField; -import com.weaver.common.hrm.cache.HrmDepartmentComInfo; -import com.weaver.common.hrm.dao.HrmCommonDepartmentDao; -import com.weaver.common.hrm.dao.HrmCommonEmployeeDao; -import com.weaver.common.hrm.manage.HrmComInfoCacheHandler; -import com.weaver.seconddev.portal.entity.component.Option; -import com.weaver.seconddev.portal.entity.param.BasicPersonnelParam; -import com.weaver.seconddev.portal.entity.po.*; -import com.weaver.seconddev.portal.mapper.dictionary.DataConvertMapper; -import com.weaver.seconddev.portal.mapper.portal.EbuilderBaseMapper; -import com.weaver.seconddev.portal.mapper.portal.LeaderCockpitMapper; -import com.weaver.seconddev.portal.mapper.portal.ManagerPortalMapper; -import com.weaver.seconddev.portal.mapper.portal.PortalMapper; -import com.weaver.seconddev.portal.service.ManagerPortalService; -import com.weaver.seconddev.portal.util.DateUtil; -import com.weaver.seconddev.portal.util.StringUtil; -import com.weaver.teams.domain.department.SimpleDepartment; -import com.weaver.teams.domain.user.SimpleEmployee; -import com.weaver.teams.security.context.UserContext; -import com.weaver.teams.security.user.User; -import com.weaver.workflow.common.cfg.org.service.DepartMentService; -import com.weaver.workflow.common.entity.org.WeaDepartMent; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.*; -import java.util.stream.Collectors; - -/** - * 经理门户 - * - * @author:dxfeng - * @createTime: 2025/07/08 - * @version: 1.0 - */ -@Slf4j -@Service -public class ManagerPortalServiceImpl implements ManagerPortalService { - private static final String PORTAL_KEY = "managerPortal"; - - @Autowired - LeaderCockpitMapper leaderCockpitMapper; - - @Autowired - PortalMapper portalMapper; - - @Autowired - ManagerPortalMapper managerPortalMapper; - @Autowired - DepartMentService departMentService; - @Autowired - HrmCommonDepartmentDao hrmCommonDepartmentDao; - @Autowired - HrmComInfoCacheHandler hrmComInfoCacheHandler; - @Autowired - EbuilderBaseMapper ebuilderBaseMapper; - @Autowired - HrmCommonEmployeeDao hrmCommonEmployeeDao; - @Autowired - DataConvertMapper dataConvertMapper; - - @Override - public WeaResult> getMangerInfo(Map params) { - User currentUser = UserContext.getCurrentUser(); - BasicPersonnelParam basicPersonnelParam = new BasicPersonnelParam(); - basicPersonnelParam.setTenantKey(currentUser.getTenantKey()); - Set allDepartmentIds = getAllDepartmentIdList(basicPersonnelParam, currentUser.getEmployeeId()); - List departmentList = hrmComInfoCacheHandler.getCacheList(HrmDepartmentComInfo.class, allDepartmentIds); - // 获取顶级部门 - List topDepartmentList = departmentList.stream() - .filter(dept -> !allDepartmentIds.contains(dept.getParent())) - .collect(Collectors.toList()); - - List departmentNames = topDepartmentList.stream().map(HrmDepartmentComInfo::getName).collect(Collectors.toList()); - - Map returnMap = new HashMap<>(); - returnMap.put("deptNames", StringUtils.join(departmentNames, "、")); - returnMap.put("userName", currentUser.getUsername()); - return WeaResult.success(returnMap); - } - - @Override - public WeaResult> getTodayOverview(Map params) { - - return null; - } - - @Override - public WeaResult> getBasicPersonnel(Map params) { - Map returnMap = new HashMap<>(); - String searchType = params.get("searchType"); - String searchDate = params.get("searchDate"); - - User currentUser = UserContext.getCurrentUser(); - BasicPersonnelParam basicPersonnelParam = new BasicPersonnelParam(); - basicPersonnelParam.setTenantKey(currentUser.getTenantKey()); - Set allDepartmentIdList = getAllDepartmentIdList(basicPersonnelParam, currentUser.getEmployeeId()); - - // 设置部门范围ID集合 - basicPersonnelParam.setDepartmentIdList(allDepartmentIdList); - - if ("year".equals(searchType)) { - // 开始时间年度第一天 - basicPersonnelParam.setStartDate(StringUtils.isBlank(searchDate) ? DateUtil.getFirstDayOfYearStr() : searchDate + "-01-01"); - // 结束时间年度最后一天 - basicPersonnelParam.setEndDate(StringUtils.isBlank(searchDate) ? DateUtil.getCurrentDateStr() : searchDate + "-12-31"); - - } else if ("month".equals(searchType)) { - // 开始时间月度第一天 - basicPersonnelParam.setStartDate(StringUtils.isBlank(searchDate) ? DateUtil.getFirstDayOfMonth() : searchDate + "-01"); - // 结束时间月度最后一天 - basicPersonnelParam.setEndDate(StringUtils.isBlank(searchDate) ? DateUtil.getCurrentDateStr() : DateUtil.getLastDayOfPreviousMonthStr(searchDate + "-01", 0)); - } - - int onJobNum = managerPortalMapper.getOnJobNum(basicPersonnelParam); - int resignNumber = managerPortalMapper.getResignNumber(basicPersonnelParam); - int resigningNumber = managerPortalMapper.getResigningNumber(basicPersonnelParam); - int entryNumber = managerPortalMapper.getEntryNumber(basicPersonnelParam); - int entryingNumber = managerPortalMapper.getEntryingNumber(basicPersonnelParam); - - // 获取穿透地址 - List portalUrlDetails = portalMapper.getPortalUrlDetail(currentUser.getTenantKey(), PORTAL_KEY, "getBasicPersonnel"); - Map urlMap = portalUrlDetails.stream().collect(Collectors.toMap(PortalUrlDetail::getDetailKey, PortalUrlDetail::getUrlAddress)); - - // 在职人数 - returnMap.put("onJobNumber", onJobNum); - returnMap.put("onJobNumberUrl", urlMap.get("onJobNumber") + "?dataKey=onJobNumber&startDate=" + basicPersonnelParam.getStartDate() + "&endDate=" + basicPersonnelParam.getEndDate()); - // 年度离职人数 - returnMap.put("resignNumber", resignNumber); - returnMap.put("resignNumberUrl", urlMap.get("resignNumber") + "?dataKey=resignNumber&startDate=" + basicPersonnelParam.getStartDate() + "&endDate=" + basicPersonnelParam.getEndDate()); - - // 年度入职人数 - returnMap.put("entryNumber", entryNumber); - returnMap.put("entryNumberUrl", urlMap.get("entryNumber") + "?dataKey=entryNumber&startDate=" + basicPersonnelParam.getStartDate() + "&endDate=" + basicPersonnelParam.getEndDate()); - // 离职流程中人数 - returnMap.put("resigningNumber", resigningNumber); - returnMap.put("resigningNumberUrl", urlMap.get("resigningNumber") + "?dataKey=resigningNumber&startDate=" + basicPersonnelParam.getStartDate() + "&endDate=" + basicPersonnelParam.getEndDate()); - // 入职流程中人数 - returnMap.put("entryingNumber", entryingNumber); - returnMap.put("entryingNumberUrl", urlMap.get("entryingNumber") + "?dataKey=entryingNumber&startDate=" + basicPersonnelParam.getStartDate() + "&endDate=" + basicPersonnelParam.getEndDate()); - - - return WeaResult.success(returnMap); - } - - @Override - public WeaResult getBasicPersonnelSql(Map params) { - String dataKey = params.get("dataKey"); - String startDate = params.get("startDate"); - String endDate = params.get("endDate"); - log.error("params==={}", JSON.toJSONString(params)); - User currentUser = UserContext.getCurrentUser(); - BasicPersonnelParam basicPersonnelParam = new BasicPersonnelParam(); - basicPersonnelParam.setTenantKey(currentUser.getTenantKey()); - Set allDepartmentIdList = getAllDepartmentIdList(basicPersonnelParam, currentUser.getEmployeeId()); - StringJoiner andCondition = new StringJoiner(" and "); - switch (dataKey) { - case "onJobNumber": - // 在职人数 - if (CollectionUtils.isNotEmpty(allDepartmentIdList)) { - andCondition.add(" t1.department in (" + StringUtils.join(allDepartmentIdList, ",") + ") "); - } - andCondition.add(" t1.hiredate <= #{endDate} AND (t1.zhgzr >= #{startDate} OR t1.zhgzr IS NULL OR t1.zhgzr = '') "); - break; - case "resignNumber": - // 年度离职人数 - andCondition.add(" t1.lzzt = 1 "); - if (CollectionUtils.isNotEmpty(allDepartmentIdList)) { - andCondition.add(" t1.lzqbm in (" + StringUtils.join(allDepartmentIdList, ",") + ") "); - } - andCondition.add(" t1.zhgzr >= #{startDate} and t1.zhgzr <= #{endDate} "); - break; - case "entryNumber": - // 年度入职人数 - andCondition.add(" t1.rzzt = 1 "); - if (CollectionUtils.isNotEmpty(allDepartmentIdList)) { - andCondition.add(" t1.department in (" + StringUtils.join(allDepartmentIdList, ",") + ") "); - } - andCondition.add(" t1.hiredate >= #{startDate} and t1.hiredate <= #{endDate} "); - break; - case "resigningNumber": - // 离职流程中人数 - andCondition.add(" t1.flow_status in (0,1,2) "); - if (CollectionUtils.isNotEmpty(allDepartmentIdList)) { - andCondition.add(" t1.lzqbm in (" + StringUtils.join(allDepartmentIdList, ",") + ") "); - } - andCondition.add(" t1.sqrq >= #{startDate} and t1.sqrq <= #{endDate} "); - break; - case "entryingNumber": - // 入职流程中人数 - andCondition.add(" t1.flow_status in (0,1,2) "); - if (CollectionUtils.isNotEmpty(allDepartmentIdList)) { - andCondition.add(" t1.ssbm in (" + StringUtils.join(allDepartmentIdList, ",") + ") "); - } - andCondition.add(" t1.sqsj >= #{startDate} and t1.sqsj <= #{endDate} "); - break; - default: - break; - } - - String replaceSql = andCondition.toString().replace("#{startDate}", "'" + startDate + "'").replace("#{endDate}", "'" + endDate + "'"); - log.error("replaceSql==={}", replaceSql); - return WeaResult.success(replaceSql); - } - - /** - * 生日提醒:提前一周 - * 转正提醒:提前30天 - * 入职周年:提前一周 - * - * @param params - * @return - */ - @Override - public WeaResult> getTeamMemorialDay(Map params) { - User currentUser = UserContext.getCurrentUser(); - BasicPersonnelParam basicPersonnelParam = new BasicPersonnelParam(); - basicPersonnelParam.setTenantKey(currentUser.getTenantKey()); - Set allDepartmentIdList = getAllDepartmentIdList(basicPersonnelParam, currentUser.getEmployeeId()); - - // 设置部门范围ID集合 - basicPersonnelParam.setDepartmentIdList(allDepartmentIdList); - int birthdayNum = managerPortalMapper.getBirthdayNum(basicPersonnelParam); - - int regularEmployeeNum = managerPortalMapper.getRegularEmployeeNum(basicPersonnelParam); - - int employmentAnniversary = managerPortalMapper.getEmploymentAnniversary(basicPersonnelParam); - - // 获取穿透地址 - List portalUrlDetails = portalMapper.getPortalUrlDetail(currentUser.getTenantKey(), PORTAL_KEY, "getTeamMemorialDay"); - Map urlMap = portalUrlDetails.stream().collect(Collectors.toMap(PortalUrlDetail::getDetailKey, PortalUrlDetail::getUrlAddress)); - - Map returnMap = new HashMap<>(); - // 生日提醒 - returnMap.put("birthdayNum", birthdayNum); - returnMap.put("birthdayNumUrl", urlMap.get("birthdayNum") + "?dataKey=birthdayNum"); - // 转正日期 - returnMap.put("regularEmployeeNum", regularEmployeeNum); - returnMap.put("regularEmployeeNumUrl", urlMap.get("regularEmployeeNum") + "?dataKey=regularEmployeeNum"); - // 入职周年提醒 - returnMap.put("employmentAnniversary", employmentAnniversary); - returnMap.put("employmentAnniversaryUrl", urlMap.get("employmentAnniversary") + "?dataKey=employmentAnniversary"); - - return WeaResult.success(returnMap); - } - - @Override - public WeaResult getTeamMemorialDaySql(Map params) { - String dataKey = params.get("dataKey"); - log.error("params==={}", JSON.toJSONString(params)); - User currentUser = UserContext.getCurrentUser(); - BasicPersonnelParam basicPersonnelParam = new BasicPersonnelParam(); - basicPersonnelParam.setTenantKey(currentUser.getTenantKey()); - Set allDepartmentIdList = getAllDepartmentIdList(basicPersonnelParam, currentUser.getEmployeeId()); - StringJoiner andCondition = new StringJoiner(" and "); - switch (dataKey) { - case "birthdayNum": - // 生日提醒 - if (CollectionUtils.isNotEmpty(allDepartmentIdList)) { - andCondition.add(" t1.department in (" + StringUtils.join(allDepartmentIdList, ",") + ") "); - } - andCondition.add(" ( ( DATE_FORMAT(t1.birthday, '%m-%d') BETWEEN DATE_FORMAT(CURDATE(), '%m-%d') AND DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL 7 DAY), '%m-%d') ) OR ( DATE_FORMAT(CURDATE(), '%m-%d') > DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL 7 DAY), '%m-%d') AND ( DATE_FORMAT(birthday, '%m-%d') >= DATE_FORMAT(CURDATE(), '%m-%d') OR DATE_FORMAT(t1.birthday, '%m-%d') <= DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL 7 DAY), '%m-%d') ) ) ) "); - - break; - case "regularEmployeeNum": - // 转正日期 - if (CollectionUtils.isNotEmpty(allDepartmentIdList)) { - andCondition.add(" t1.department in (" + StringUtils.join(allDepartmentIdList, ",") + ") "); - } - andCondition.add(" t1.yjsyjsrq IS NOT NULL AND ( STR_TO_DATE(CONCAT(YEAR(CURDATE()), '-', DATE_FORMAT(t1.yjsyjsrq, '%m-%d')), '%Y-%m-%d') BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 60 DAY) OR STR_TO_DATE(CONCAT(YEAR(CURDATE()) + 1, '-', DATE_FORMAT(t1.yjsyjsrq, '%m-%d')), '%Y-%m-%d') BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 60 DAY) ) "); - - break; - case "employmentAnniversary": - // 入职周年提醒 - if (CollectionUtils.isNotEmpty(allDepartmentIdList)) { - andCondition.add(" t1.department in (" + StringUtils.join(allDepartmentIdList, ",") + ") "); - } - andCondition.add(" ( ( DATE_FORMAT(t1.hiredate, '%m-%d') between DATE_FORMAT(CURDATE(), '%m-%d') and DATE_FORMAT(DATE_ADD(CURDATE(), interval 7 day), '%m-%d') ) or ( DATE_FORMAT(CURDATE(), '%m-%d') > DATE_FORMAT(DATE_ADD(CURDATE(), interval 7 day), '%m-%d') and ( DATE_FORMAT(t1.hiredate, '%m-%d') >= DATE_FORMAT(CURDATE(), '%m-%d') or DATE_FORMAT(t1.hiredate, '%m-%d') <= DATE_FORMAT(DATE_ADD(CURDATE(), interval 7 day), '%m-%d') ) ) ) "); - break; - default: - break; - } - String replaceSql = StringUtil.buildSqlCondition(andCondition.toString()); - log.error("replaceSql==={}", replaceSql); - return WeaResult.success(replaceSql); - - } - - @Override - public WeaResult> getEducationInfo(Map params) { - - String type = params.get("type"); - String searchKey = params.get("searchKey"); - if (StringUtils.isBlank(type)) { - // 默认学历信息 - type = "education"; - } - User currentUser = UserContext.getCurrentUser(); - BasicPersonnelParam basicPersonnelParam = new BasicPersonnelParam(); - basicPersonnelParam.setTenantKey(currentUser.getTenantKey()); - Set allDepartmentIdList = getAllDepartmentIdList(basicPersonnelParam, currentUser.getEmployeeId()); - // 设置部门范围ID集合 - basicPersonnelParam.setDepartmentIdList(allDepartmentIdList); - basicPersonnelParam.setPieType(type); - basicPersonnelParam.setSearchKey(searchKey); - List portalUrlDetails = portalMapper.getPortalUrlDetail(currentUser.getTenantKey(), PORTAL_KEY, "getEducationInfo"); - Map urlMap = portalUrlDetails.stream().collect(Collectors.toMap(PortalUrlDetail::getDetailKey, PortalUrlDetail::getUrlAddress)); - List returnList = new ArrayList<>(); - Map returnMap = new HashMap<>(); - switch (type) { - case "education": - // 学历 - dealEducationInfo(basicPersonnelParam, returnList); - returnMap.put("url", urlMap.get("education")); - - break; - case "age": - // 年龄 - dealAgeInfo(basicPersonnelParam, returnList); - returnMap.put("url", urlMap.get("age")); - break; - case "grade": - // 职级 - returnMap.put("url", urlMap.get("grade")); - break; - case "company": - // 司龄 - dealCompanyInfo(basicPersonnelParam, returnList); - returnMap.put("url", urlMap.get("company")); - break; - case "performance": - // 绩效 - dealPerformanceInfo(basicPersonnelParam, returnList); - returnMap.put("url", urlMap.get("performance")); - break; - default: - break; - } - returnMap.put("list", returnList); - return WeaResult.success(returnMap); - } - - @Override - public WeaResult> getAttendanceInfo(Map params) { - String type = params.get("type"); - if (StringUtils.isBlank(type)) { - // 默认学历信息 - type = "abnormalAttendance"; - } - User currentUser = UserContext.getCurrentUser(); - BasicPersonnelParam basicPersonnelParam = new BasicPersonnelParam(); - basicPersonnelParam.setTenantKey(currentUser.getTenantKey()); - basicPersonnelParam.setStartDate(DateUtil.getFirstDayOfMonth()); - basicPersonnelParam.setEndDate(DateUtil.getLastDayOfMonth()); - - Set allDepartmentIdList = getAllDepartmentIdList(basicPersonnelParam, currentUser.getEmployeeId()); - // 设置部门范围ID集合 - basicPersonnelParam.setDepartmentIdList(allDepartmentIdList); - - List portalUrlDetails = portalMapper.getPortalUrlDetail(currentUser.getTenantKey(), PORTAL_KEY, "getAttendanceInfo"); - Map urlMap = portalUrlDetails.stream().collect(Collectors.toMap(PortalUrlDetail::getDetailKey, PortalUrlDetail::getUrlAddress)); - - switch (type) { - case "abnormalAttendance": - // 异常考勤 - Map map = dealAbnormalAttendanceInfo(basicPersonnelParam); - map.put("url", urlMap.get("abnormalAttendance")); - return WeaResult.success(map); - case "lateOrLeaveEarly": - // 迟到/早退 - Map map1 = dealLateOrLeaveEarlyInfo(basicPersonnelParam); - map1.put("url", urlMap.get("lateOrLeaveEarly")); - return WeaResult.success(map1); - case "overtimeDuration": - // 加班时长 - Map map2 = dealOvertimeDurationInfo(basicPersonnelParam); - map2.put("url", urlMap.get("overtimeDuration")); - return WeaResult.success(map2); - case "leaveType": - // 请假类型 - Map map3 = dealLeaveTypeInfo(basicPersonnelParam); - map3.put("url", urlMap.get("leaveType")); - return WeaResult.success(map3); - default: - return WeaResult.fail("不支持的统计类型",true); - - } - } - - @Override - public WeaResult> getTeamEmployee(Map params) { - String searchKey = params.get("searchKey"); - String departmentId = params.get("departmentId"); - int pageSize = Convert.toInt(params.get("pageSize"), 10); - int current = Convert.toInt(params.get("current"), 1); - - User currentUser = UserContext.getCurrentUser(); - BasicPersonnelParam basicPersonnelParam = new BasicPersonnelParam(); - basicPersonnelParam.setTenantKey(currentUser.getTenantKey()); - basicPersonnelParam.setCurrent(current); - basicPersonnelParam.setPageSize(pageSize); - basicPersonnelParam.setSearchKey(searchKey); - //log.error("departmentId==={}", departmentId); - basicPersonnelParam.setDepartmentId(departmentId); - Set allDepartmentIdList = getAllDepartmentIdList(basicPersonnelParam, currentUser.getEmployeeId()); - //log.error("allDepartmentIdList111==={}", JSON.toJSONString(allDepartmentIdList)); - basicPersonnelParam.setDepartmentIdList(allDepartmentIdList); - if (StringUtils.isNotBlank(departmentId)) { - List beLongDeps = departMentService.getBeLongDeps(Long.parseLong(departmentId)); - Set collect = beLongDeps.stream().map(WeaDepartMent::getDepartMentId).collect(Collectors.toSet()); - collect.add(Long.parseLong(departmentId)); - // 两个set取交集 - allDepartmentIdList.retainAll(collect); - //log.error("collect==={}", JSON.toJSONString(collect)); - - if (CollectionUtils.isEmpty(allDepartmentIdList)) { - allDepartmentIdList.add(-1L); - } - } - //log.error("allDepartmentIdList222==={}", JSON.toJSONString(allDepartmentIdList)); - - - List teamEmployee = managerPortalMapper.getTeamEmployee(basicPersonnelParam); - int total = managerPortalMapper.getTeamEmployeeTotal(basicPersonnelParam); - - - Map returnMap = new HashMap<>(); - returnMap.put("list", teamEmployee); - returnMap.put("total", total); - returnMap.put("current", current); - returnMap.put("pageSize", pageSize); - - return WeaResult.success(returnMap); - } - - @Override - public WeaResult> getEbFieldOptions(Map params) { - String tableName = params.get("tableName"); - String fieldName = params.get("fieldName"); - BasicPersonnelParam basicPersonnelParam = new BasicPersonnelParam(); - User currentUser = UserContext.getCurrentUser(); - basicPersonnelParam.setTenantKey(currentUser.getTenantKey()); - // 查询考核周期选项 - long formId = ebuilderBaseMapper.getFormIdByTableName(basicPersonnelParam, StringUtils.isBlank(tableName) ? "uf_jxsjtz" : tableName); - FormField formField = ebuilderBaseMapper.getFormFieldByFieldName(basicPersonnelParam, formId, StringUtils.isBlank(fieldName) ? "khzq" : fieldName); - List templateDetails = ebuilderBaseMapper.getFormdataTemplateDetails(basicPersonnelParam, formField.getDataTemplateId()); - - List