Commit b233a29c authored by hongguangwu's avatar hongguangwu

MVP1.6.7-其他附件+监控

parent b44fc526
......@@ -65,14 +65,6 @@ public class TAttaInfo extends BaseEntity {
@Length(max = 2, message = "关系类型不能超过2个字符")
@Schema(description = "关系类型(0客户附件1联系人附件2跟进记录附件3合同附件4合同归档附件5报价单6招投标7业务评估8二维码9身份证 10 户口本;21(预入职申明签名);22(预入职确认签名);23(预入职pdf文件);0(最高教育经历);2(执业资格证书);24 身份证国徽 25 户口本本人页26学信)")
private String relationType;
/**
* 预入职其他附件子类型
* hgw 2024-7-17 10:25:11
*/
@NotBlank(message = "预入职其他附件子类型不能为空")
@Length(max = 2, message = "预入职其他附件子类型不能超过2个字符")
@Schema(description = "预入职其他附件子类型")
private String relationTypeSub;
/**
* 实体id和关系类型共同确定附件所属(9、10、21、22、23、24、25存项目档案id,0、2、26存附属表id)
*/
......
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import java.time.LocalDateTime;
import java.util.List;
/**
* 档案-其他附件主表
*
* @author hgw
* @date 2024-07-17 14:56:33
*/
@Data
@TableName("t_emp_other_file")
@Schema(description = "档案-其他附件主表")
public class TEmpOtherFile {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("主键")
@Schema(description = "主键")
private String id;
/**
* 员工主键
*/
@ExcelAttribute(name = "员工主键", maxLength = 32)
@Length(max = 32, message = "员工主键不能超过32个字符")
@ExcelProperty("员工主键")
@Schema(description = "员工主键")
private String empId;
/**
* 员工姓名
*/
@ExcelAttribute(name = "员工姓名", maxLength = 32)
@Length(max = 32, message = "员工姓名不能超过32个字符")
@ExcelProperty("员工姓名")
@Schema(description = "员工姓名")
private String attaName;
/**
* 创建时间
*/
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
@Schema(description = "创建时间")
@TableField(fill = FieldFill.INSERT)
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
// 附件
@TableField(exist = false)
private List<TAttaInfo> attaList;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
import java.util.List;
/**
* 预入职-其他附件主表
*
* @author hgw
* @date 2024-07-17 14:56:34
*/
@Data
@TableName("t_pre_emp_other_file")
@Schema(description = "预入职-其他附件主表")
public class TPreEmpOtherFile {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("主键")
@Schema(description = "主键")
private String id;
/**
* 预入职主表ID
*/
@ExcelAttribute(name = "预入职主表ID", isNotEmpty = true, errorInfo = "预入职主表ID不能为空", maxLength = 32)
@NotBlank(message = "预入职主表ID不能为空")
@Length(max = 32, message = "预入职主表ID不能超过32个字符")
@ExcelProperty("预入职主表ID")
@Schema(description = "预入职主表ID")
private String preMainId;
/**
* 员工主键
*/
@ExcelAttribute(name = "员工主键", maxLength = 32)
@Length(max = 32, message = "员工主键不能超过32个字符")
@ExcelProperty("员工主键")
@Schema(description = "员工主键")
private String empId;
/**
* 员工姓名
*/
@ExcelAttribute(name = "员工姓名", maxLength = 32)
@Length(max = 32, message = "员工姓名不能超过32个字符")
@ExcelProperty("员工姓名")
@Schema(description = "员工姓名")
private String attaName;
/**
* 原ID
*/
@ExcelAttribute(name = "原ID", maxLength = 32)
@Length(max = 32, message = "原ID不能超过32个字符")
@ExcelProperty("原ID")
@Schema(description = "原ID")
private String oldId;
/**
* 创建时间
*/
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
@Schema(description = "创建时间")
@TableField(fill = FieldFill.INSERT)
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
/**
* @Description: 其他附件
* @Author: hgw
* @Date: 2024/7/17 15:11
* @return:
**/
@TableField(exist = false)
private List<TAttaInfo> attaList;
}
......@@ -57,5 +57,7 @@ public class PreEmpMainDetailVo implements Serializable {
private List<TPreEmpWorkRecording> tpreEmpWorkRecordingList;
// 预入职-9身份证 10 户口本;附件 21(预入职申明签名);22(预入职确认签名);23(预入职pdf文件)
private List<TAttaInfo> attaInfoList;
// 预入职-其他附件(因为含有与附件无关的 名称,因此需要用子表来保存它)
private List<TPreEmpOtherFile> tpreEmpOtherFileList;
}
......@@ -85,4 +85,22 @@ public class TCompleteMonitorFlagVo implements Serializable {
public String familyFlag;
/**
* 开户行总行
*/
public String bankName;
/**
* 银行卡号
*/
public String bankNo;
/**
* 开户行省
*/
public String bankProvince;
/**
* 开户行市
*/
public String bankCity;
}
......@@ -79,9 +79,8 @@ public class FileUploadController {
"\t\t\t@ApiImplicitParam(name = \"domain\", value = \"实体id(传入就插入对应关系,用于编辑)\", required = false, paramType = \"form\")\n" +
"\t")
@PostMapping(value = "/uploadFileReturnAtta")
public R<TAttaInfo> uploadFileReturnAtta(@RequestBody MultipartFile file, String filePath, Integer type, String domainId
, @RequestParam(required = false) String attaName, @RequestParam(required = false) String relationTypeSub) throws IOException {
return fileUploadService.uploadFileReturnAtta(file,filePath,type,domainId,attaName,relationTypeSub);
public R<TAttaInfo> uploadFileReturnAtta(@RequestBody MultipartFile file, String filePath, Integer type, String domainId) throws IOException {
return fileUploadService.uploadFileReturnAtta(file,filePath,type,domainId);
}
/**
......
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.controller;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpOtherFile;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmpOtherFileService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 档案-其他附件主表
*
* @author hgw
* @date 2024-07-17 14:56:33
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tempotherfile" )
@Tag(name = "档案-其他附件主表管理")
public class TEmpOtherFileController {
private final TEmpOtherFileService tEmpOtherFileService;
/**
* 获取其他附件list-档案
* @param empId 获取其他附件list-档案
* @return
*/
@Operation(summary = "获取其他附件list-档案", description = "获取其他附件list-档案")
@GetMapping("/getTEmpOtherFileListAndFile" )
public R<List<TEmpOtherFile>> getTEmpOtherFileListAndFile(@RequestParam String empId) {
return R.ok(tEmpOtherFileService.getTEmpOtherFileListAndFile(empId));
}
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.controller;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TPreEmpOtherFile;
import com.yifu.cloud.plus.v1.yifu.archives.service.TPreEmpOtherFileService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 预入职-其他附件主表
*
* @author hgw
* @date 2024-07-17 14:56:34
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tpreempotherfile" )
@Tag(name = "预入职-其他附件主表管理")
public class TPreEmpOtherFileController {
private final TPreEmpOtherFileService tPreEmpOtherFileService;
/**
* 获取其他附件list-预入职
* @param preMainId 预入职主表id
* @return
*/
@Operation(summary = "获取其他附件list-预入职", description = "获取其他附件list-预入职")
@GetMapping("/getTPreEmpOtherFileListAndFile" )
public R<List<TPreEmpOtherFile>> getTPreEmpOtherFileListAndFile(@RequestParam String preMainId) {
return R.ok(tPreEmpOtherFileService.getTPreEmpOtherFileListAndFile(preMainId));
}
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpOtherFile;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 档案-其他附件主表
*
* @author hgw
* @date 2024-07-17 14:56:33
*/
@Mapper
public interface TEmpOtherFileMapper extends BaseMapper<TEmpOtherFile> {
/**
* 档案-其他附件主表简单分页查询
* @return
*/
void deleteOtherByEmpId(@Param("empId") String empId);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TPreEmpOtherFile;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 预入职-其他附件主表
*
* @author hgw
* @date 2024-07-17 14:56:34
*/
@Mapper
public interface TPreEmpOtherFileMapper extends BaseMapper<TPreEmpOtherFile> {
/**
* 预入职-其他附件主表
*
* @return
*/
List<TPreEmpOtherFile> getOtherFileList(@Param("preMainId") String preMainId);
// 删除
void deleteOtherFileByMainId(@Param("preMainId") String preMainId);
}
......@@ -17,8 +17,7 @@ public interface FileUploadService {
R<FileVo> uploadImg(MultipartFile file, String filePath, Integer type, String domain) throws IOException;
R<TAttaInfo> uploadFileReturnAtta(MultipartFile file, String filePath, Integer type, String domainId
, String attaName, String relationTypeSub) throws IOException;
R<TAttaInfo> uploadFileReturnAtta(MultipartFile file, String filePath, Integer type, String domainId) throws IOException;
R<FileVo> createQrCode(String domainId, String url, String name);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpOtherFile;
import java.util.List;
/**
* 档案-其他附件主表
*
* @author hgw
* @date 2024-07-17 14:56:33
*/
public interface TEmpOtherFileService extends IService<TEmpOtherFile> {
/**
* @param empId
* @Description: 获取list,预入职使用
* @Author: hgw
* @Date: 2024/6/21 9:51
* @return: java.util.List<com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpOtherFile>
**/
List<TEmpOtherFile> getListByEmpId(String empId);
/**
* @param empId 档案id
* @Description: 给前端使用,查询其他附件
* @Author: hgw
* @Date: 2024/7/17 16:39
* @return: java.util.List<com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpOtherFile>
**/
List<TEmpOtherFile> getTEmpOtherFileListAndFile(String empId);
/**
* @param empId
* @Description: 删除档案附属表信息(预入职清空附属信息专用,其余的请慎用)
* @Author: hgw
* @Date: 2024/6/19 18:27
* @return: void
**/
void deleteOtherFileByEmpId(String empId);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TPreEmpOtherFile;
import java.util.List;
/**
* 预入职-其他附件主表
*
* @author hgw
* @date 2024-07-17 14:56:34
*/
public interface TPreEmpOtherFileService extends IService<TPreEmpOtherFile> {
/**
* 预入职-其他附件主表
*
* @return
*/
List<TPreEmpOtherFile> getTPreEmpOtherFileList(String preMainId);
/**
* 预入职-其他附件主表
*
* @return
*/
List<TPreEmpOtherFile> getTPreEmpOtherFileListAndFile(String preMainId);
/**
* @param preMainId
* @Description: 先删后加
* @Author: hgw
* @Date: 2024-7-17 15:12:27
* @return: void
**/
void deleteOtherFileByMainId(String preMainId);
}
......@@ -39,8 +39,7 @@ public class FileUploadServiceImpl implements FileUploadService {
private final QrCodeUtil codeUtil;
@Override
public R<TAttaInfo> uploadFileReturnAtta(MultipartFile file, String filePath, Integer type, String domainId
, String attaName, String relationTypeSub) throws IOException {
public R<TAttaInfo> uploadFileReturnAtta(MultipartFile file, String filePath, Integer type, String domainId) throws IOException {
if (null == file) {
return R.failed("文件删除异常,请重新上传!");
}
......@@ -84,10 +83,6 @@ public class FileUploadServiceImpl implements FileUploadService {
null);
attaInfo.setCreateBy(user.getId());
attaInfo.setCreateName(user.getNickname());
attaInfo.setRelationTypeSub(relationTypeSub);
if (Common.isNotNull(attaName)) {
attaInfo.setAttaName(attaName);
}
attaInfo = tAttaInfoService.add(attaInfo);
} catch (Exception e) {
log.error("OSS文件上传异常:" + e.getMessage());
......
......@@ -148,6 +148,9 @@ public class TAttaInfoServiceImpl extends ServiceImpl<TAttaInfoMapper, TAttaInfo
} else if (relationType == 1) {
// 执业资格证书
baseMapper.deleteByDomainIdAndType(domainId, "2");
} else if (relationType == 2) {
// 其他附件
baseMapper.deleteByDomainIdAndType(domainId, "27");
}
}
......
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TAttaInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpOtherFile;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TPreEmpOtherFile;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmpOtherFileMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TAttaInfoService;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmpOtherFileService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.OSSUtil;
import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import java.net.URL;
import java.util.List;
/**
* 档案-其他附件主表
*
* @author hgw
* @date 2024-07-17 14:56:33
*/
@Log4j2
@AllArgsConstructor
@Service
public class TEmpOtherFileServiceImpl extends ServiceImpl<TEmpOtherFileMapper, TEmpOtherFile> implements TEmpOtherFileService {
// 附件21(预入职申明签名);22(预入职确认签名);23(预入职pdf文件)
private final TAttaInfoService tAttaInfoService;
private final OSSUtil ossUtil;
@Override
public void deleteOtherFileByEmpId(String empId) {
baseMapper.deleteOtherByEmpId(empId);
}
@Override
public List<TEmpOtherFile> getTEmpOtherFileListAndFile(String empId) {
List<TEmpOtherFile> list = baseMapper.selectList(Wrappers.<TEmpOtherFile>query().lambda().eq(TEmpOtherFile::getEmpId, empId).orderByAsc(TEmpOtherFile::getCreateTime));
if (list != null && !list.isEmpty()) {
URL url;
List<TAttaInfo> attaInfoList;
for (TEmpOtherFile info : list) {
// 附件
attaInfoList = tAttaInfoService.getTAttaInfoListByDoMainId(info.getId());
if (attaInfoList != null && !attaInfoList.isEmpty()) {
for (TAttaInfo atta : attaInfoList) {
url = ossUtil.getObjectUrl(null, atta.getAttaSrc());
atta.setAttaUrl(String.valueOf(url));
}
}
info.setAttaList(attaInfoList);
}
}
return list;
}
@Override
public List<TEmpOtherFile> getListByEmpId(String empId) {
return baseMapper.selectList(Wrappers.<TEmpOtherFile>query().lambda().eq(TEmpOtherFile::getEmpId, empId));
}
}
......@@ -94,6 +94,9 @@ public class TPreEmpMainServiceImpl extends ServiceImpl<TPreEmpMainMapper, TPreE
private final TPreEmployeeProjectService tPreEmployeeProjectService;
// 预入职-员工职业资格信息表
private final TPreEmpProfessionalQualificationService tPreEmpProfessionalService;
// 预入职-其他附件
private final TPreEmpOtherFileService tPreEmpOtherFileService;
// 附件21(预入职申明签名);22(预入职确认签名);23(预入职pdf文件)
private final TAttaInfoService tAttaInfoService;
......@@ -120,6 +123,8 @@ public class TPreEmpMainServiceImpl extends ServiceImpl<TPreEmpMainMapper, TPreE
private final TSettleDomainService tSettleDomainService;
// 审核日志
private final TPreEmpMainLogService tPreEmpMainLogService;
// 其他附件
private final TEmpOtherFileService tEmpOtherFileService;
// 薪资服务,获取计税月份
private final DaprSalaryProperties salaryProperties;
......@@ -169,6 +174,7 @@ public class TPreEmpMainServiceImpl extends ServiceImpl<TPreEmpMainMapper, TPreE
baseMapper.deleteProjectByMainId(main.getId());
tPreEmpWorkRecordingService.deleteByMainId(main.getId());
tPreEmpProfessionalService.deleteProfessionalByMainId(main.getId());
tPreEmpOtherFileService.deleteOtherFileByMainId(main.getId());
tAttaInfoService.deleteByDomainId(main.getId());
}
baseMapper.deleteById(main);
......@@ -588,6 +594,65 @@ public class TPreEmpMainServiceImpl extends ServiceImpl<TPreEmpMainMapper, TPreE
}
}
vo.setTpreEmpProfessionalQualificationList(tPreEmpProfessionalQualificationList);
// 预入职-其他附件
List<TPreEmpOtherFile> tPreEmpOtherFileList = tPreEmpOtherFileService.getTPreEmpOtherFileList(id);
if (tPreEmpOtherFileList == null || tPreEmpOtherFileList.isEmpty()) {
tPreEmpOtherFileList = new ArrayList<>();
if (Common.isNotNull(empId)) {
List<TEmpOtherFile> infoList = tEmpOtherFileService.getListByEmpId(empId);
TPreEmpOtherFile record;
if (infoList != null && !infoList.isEmpty()) {
for (TEmpOtherFile info : infoList) {
record = new TPreEmpOtherFile();
BeanUtil.copyProperties(info, record, ID);
record.setEmpId(empId);
record.setOldId(info.getId());
// 附件
List<TAttaInfo> attaInfoList = tAttaInfoService.getTAttaInfoListByDoMainId(info.getId());
if (attaInfoList != null) {
URL url;
for (TAttaInfo atta : attaInfoList) {
url = ossUtil.getObjectUrl(null, atta.getAttaSrc());
atta.setAttaUrl(String.valueOf(url));
}
}
record.setAttaList(attaInfoList);
record.setPreMainId(id);
if (Common.isEmpty(record.getCreateTime())) {
record.setCreateTime(LocalDateTime.now());
}
tPreEmpOtherFileList.add(record);
}
tPreEmpOtherFileService.saveBatch(tPreEmpOtherFileList);
}
}
if (tPreEmpOtherFileList.isEmpty()) {
TPreEmpOtherFile record = new TPreEmpOtherFile();
if (employee != null) {
record.setEmpId(employee.getId());
}
record.setCreateTime(LocalDateTime.now());
record.setPreMainId(id);
record.setAttaList(new ArrayList<>());
tPreEmpOtherFileService.save(record);
tPreEmpOtherFileList.add(record);
}
} else {
for (TPreEmpOtherFile info : tPreEmpOtherFileList) {
// 附件
List<TAttaInfo> attaInfoList = tAttaInfoService.getTAttaInfoListByDoMainId(info.getId());
if (attaInfoList != null) {
URL url;
for (TAttaInfo atta : attaInfoList) {
url = ossUtil.getObjectUrl(null, atta.getAttaSrc());
atta.setAttaUrl(String.valueOf(url));
}
}
info.setAttaList(attaInfoList);
}
}
vo.setTpreEmpOtherFileList(tPreEmpOtherFileList);
// 预入职-员工工作履历信息表
List<TPreEmpWorkRecording> tPreEmpWorkRecordingList = tPreEmpWorkRecordingService.getTPreEmpWorkRecordingList(id);
if (tPreEmpWorkRecordingList == null || tPreEmpWorkRecordingList.isEmpty()) {
......@@ -975,6 +1040,32 @@ public class TPreEmpMainServiceImpl extends ServiceImpl<TPreEmpMainMapper, TPreE
}
}
}
// 预入职-其他附件
List<TPreEmpOtherFile> tPreOtherFileList = vo.getTpreEmpOtherFileList();
if (tPreOtherFileList != null) {
// 先删除后增加
tPreEmpOtherFileService.deleteOtherFileByMainId(mainId);
for (TPreEmpOtherFile info : tPreOtherFileList) {
info.setPreMainId(mainId);
info.setCreateTime(LocalDateTime.now());
tPreEmpOtherFileService.saveOrUpdate(info);
// 附件
if (info.getAttaList() != null && !info.getAttaList().isEmpty()) {
List<TAttaInfo> attaList = info.getAttaList();
if (attaList != null) {
tAttaInfoService.deleteByDomainIdAndType(info.getId(),2);
for (TAttaInfo atta : attaList) {
atta.setId(null);
atta.setDomainId(info.getId());
atta.setCreateBy(user.getId());
atta.setCreateName(user.getNickname());
atta.setCreateTime(LocalDateTime.now());
}
tAttaInfoService.saveBatch(attaList);
}
}
}
}
// 预入职-员工工作履历信息表
List<TPreEmpWorkRecording> tPreEmpWorkRecording = vo.getTpreEmpWorkRecordingList();
if (tPreEmpWorkRecording != null) {
......@@ -1395,6 +1486,42 @@ public class TPreEmpMainServiceImpl extends ServiceImpl<TPreEmpMainMapper, TPreE
}
}
}
// 预入职-其他附件
List<TPreEmpOtherFile> preEmpOtherFileList = vo.getTpreEmpOtherFileList();
// 先删除其他信息
tEmpOtherFileService.deleteOtherFileByEmpId(empId);
if (preEmpOtherFileList != null && !preEmpOtherFileList.isEmpty()) {
TEmpOtherFile info;
for (TPreEmpOtherFile preInfo : preEmpOtherFileList) {
info = new TEmpOtherFile();
BeanUtil.copyProperties(preInfo, info, ID);
info.setEmpId(empId);
if (Common.isNotNull(preInfo.getOldId())) {
info.setId(preInfo.getOldId());
}
tEmpOtherFileService.save(info);
if (preInfo.getAttaList() != null && !preInfo.getAttaList().isEmpty()) {
List<TAttaInfo> attaList = preInfo.getAttaList();
if (attaList != null) {
String attaId = preInfo.getOldId();
tAttaInfoService.deleteByDomainIdAndType(attaId, 2);
TAttaInfo newEmpAtta;
for (TAttaInfo atta : attaList) {
newEmpAtta = new TAttaInfo();
BeanUtil.copyProperties(atta, newEmpAtta, ID);
newEmpAtta.setDomainId(info.getId());
if (Common.isEmpty(atta.getCreateBy())) {
atta.setCreateBy(user.getId());
atta.setCreateName(user.getNickname());
atta.setCreateTime(LocalDateTime.now());
}
tAttaInfoService.saveOrUpdate(newEmpAtta);
}
}
}
}
}
// 预入职-员工工作履历信息表
List<TPreEmpWorkRecording> tPreEmpWorkRecordingList = vo.getTpreEmpWorkRecordingList();
// 先删除其他信息
......
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TAttaInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TPreEmpOtherFile;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TPreEmpOtherFileMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TAttaInfoService;
import com.yifu.cloud.plus.v1.yifu.archives.service.TPreEmpOtherFileService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.OSSUtil;
import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import java.net.URL;
import java.util.List;
/**
* 预入职-其他附件主表
*
* @author hgw
* @date 2024-07-17 14:56:34
*/
@Log4j2
@AllArgsConstructor
@Service
public class TPreEmpOtherFileServiceImpl extends ServiceImpl<TPreEmpOtherFileMapper, TPreEmpOtherFile> implements TPreEmpOtherFileService {
// 附件21(预入职申明签名);22(预入职确认签名);23(预入职pdf文件)
private final TAttaInfoService tAttaInfoService;
private final OSSUtil ossUtil;
/**
* 预入职-其他附件主表
*
* @return
*/
@Override
public List<TPreEmpOtherFile> getTPreEmpOtherFileList(String preMainId) {
return baseMapper.getOtherFileList(preMainId);
}
/**
* 预入职-其他附件主表
*
* @return
*/
@Override
public List<TPreEmpOtherFile> getTPreEmpOtherFileListAndFile(String preMainId) {
List<TPreEmpOtherFile> list = baseMapper.getOtherFileList(preMainId);
if (list != null && !list.isEmpty()) {
URL url;
List<TAttaInfo> attaInfoList;
for (TPreEmpOtherFile info : list) {
// 附件
attaInfoList = tAttaInfoService.getTAttaInfoListByDoMainId(info.getId());
if (attaInfoList != null && !attaInfoList.isEmpty()) {
for (TAttaInfo atta : attaInfoList) {
url = ossUtil.getObjectUrl(null, atta.getAttaSrc());
atta.setAttaUrl(String.valueOf(url));
}
}
info.setAttaList(attaInfoList);
}
}
return list;
}
@Override
public void deleteOtherFileByMainId(String preMainId) {
baseMapper.deleteOtherFileByMainId(preMainId);
}
}
......@@ -11,7 +11,6 @@
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="relationType" column="relation_type"/>
<result property="relationTypeSub" column="RELATION_TYPE_SUB"/>
<result property="domainId" column="domain_id"/>
</resultMap>
<sql id="Base_Column_List">
......@@ -23,8 +22,7 @@
a.create_by,
a.create_time,
a.relation_type,
a.domain_id,
a.RELATION_TYPE_SUB
a.domain_id
</sql>
<sql id="tAttaInfo_where">
<if test="tAttaInfo != null">
......@@ -134,7 +132,7 @@
</delete>
<delete id="deleteByDomainIdAndOther">
delete from t_atta_info where domain_id=#{domainId} and relation_type not in ('0','2','26')
delete from t_atta_info where domain_id=#{domainId} and relation_type not in ('0','2','26','27')
</delete>
</mapper>
......@@ -235,6 +235,11 @@
if(c.count >0,'1',null) as educationFlag,
if(g.count >0,'1',null) as familyFlag
,e.BANK_NAME bankName
,e.BANK_NO bankNo
,e.BANK_PROVINCE bankProvince
,e.BANK_CITY bankCity
from
t_employee_project a
left join (
......@@ -260,6 +265,10 @@
ee.CONTACT_ADDRESS,
ee.FIRST_WORK_FLAG,
ee.HAVE_QUALIFICATION
,ee.BANK_NAME
,ee.BANK_NO
,ee.BANK_PROVINCE
,ee.BANK_CITY
from t_employee_info ee
left join t_atta_info tt on ee.id = tt.DOMAIN_ID and tt.RELATION_TYPE = '9'
where ee.DELETE_FLAG = '0' and ee.FILE_STATUS = 0 and tt.id is not null
......
<?xml version="1.0" encoding="UTF-8"?>
<!--
~
~ Copyright (c) 2018-2025, lengleng All rights reserved.
~
~ Redistribution and use in source and binary forms, with or without
~ modification, are permitted provided that the following conditions are met:
~
~ Redistributions of source code must retain the above copyright notice,
~ this list of conditions and the following disclaimer.
~ Redistributions in binary form must reproduce the above copyright
~ notice, this list of conditions and the following disclaimer in the
~ documentation and/or other materials provided with the distribution.
~ Neither the name of the yifu4cloud.com developer nor the names of its
~ contributors may be used to endorse or promote products derived from
~ this software without specific prior written permission.
~ Author: lengleng (wangiegie@gmail.com)
~
-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmpOtherFileMapper">
<resultMap id="tEmpOtherFileMap" type="com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpOtherFile">
<id property="id" column="ID"/>
<result property="empId" column="EMP_ID"/>
<result property="attaName" column="ATTA_NAME"/>
<result property="createTime" column="CREATE_TIME"/>
</resultMap>
<!--删除-->
<delete id="deleteOtherByEmpId">
delete from t_emp_other_file where EMP_ID = #{empId}
</delete>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!--
~
~ Copyright (c) 2018-2025, lengleng All rights reserved.
~
~ Redistribution and use in source and binary forms, with or without
~ modification, are permitted provided that the following conditions are met:
~
~ Redistributions of source code must retain the above copyright notice,
~ this list of conditions and the following disclaimer.
~ Redistributions in binary form must reproduce the above copyright
~ notice, this list of conditions and the following disclaimer in the
~ documentation and/or other materials provided with the distribution.
~ Neither the name of the yifu4cloud.com developer nor the names of its
~ contributors may be used to endorse or promote products derived from
~ this software without specific prior written permission.
~ Author: lengleng (wangiegie@gmail.com)
~
-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yifu.cloud.plus.v1.yifu.archives.mapper.TPreEmpOtherFileMapper">
<resultMap id="tPreEmpOtherFileMap" type="com.yifu.cloud.plus.v1.yifu.archives.entity.TPreEmpOtherFile">
<id property="id" column="ID"/>
<result property="preMainId" column="PRE_MAIN_ID"/>
<result property="empId" column="EMP_ID"/>
<result property="attaName" column="ATTA_NAME"/>
<result property="oldId" column="OLD_ID"/>
<result property="createTime" column="CREATE_TIME"/>
</resultMap>
<sql id="Base_Column_List">
a.ID,
a.PRE_MAIN_ID,
a.EMP_ID,
a.ATTA_NAME,
a.OLD_ID,
a.CREATE_TIME
</sql>
<!--其他附件主表-->
<select id="getOtherFileList" resultMap="tPreEmpOtherFileMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_pre_emp_other_file a
where PRE_MAIN_ID = #{preMainId}
order by a.CREATE_TIME asc
</select>
<delete id="deleteOtherFileByMainId">
delete from t_pre_emp_other_file where PRE_MAIN_ID = #{preMainId}
</delete>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment