Commit a77ea973 authored by hongguangwu's avatar hongguangwu

Merge remote-tracking branch 'origin/MVP1.7.7' into MVP1.7.7

parents eb117c82 acfb315e
......@@ -19,10 +19,12 @@ package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttributeConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.LocalDateTimeUtils;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
/**
......@@ -97,6 +99,27 @@ public class PreUploadEmpImportTwoVo implements Serializable {
@ExcelAttribute(name = "毕业时间", isDate = true, pattern = "entryDate")
private String gradutionDate;
// 1.9.7:主要工作经历(t_emp_work_recording)
@ExcelAttribute(name = "是否为首份工作", isDataId = true, readConverterExp = "0=否,1=是")
private String isFirstWork;
@ExcelAttribute(name = "工作单位", maxLength = 100)
private String workUnit;
@ExcelAttribute(name = "工作岗位", maxLength = 100)
private String workJob;
@ExcelAttribute(name = "开始工作日期", isDate = true, dateFormat = LocalDateTimeUtils.DATE_TIME_PATTERN_DEFAULT)
private String startDate;
@ExcelAttribute(name = "结束工作日期", isDate = true, pattern = "startDate", dateFormat = LocalDateTimeUtils.DATE_TIME_PATTERN_DEFAULT)
private String endDate;
// 1.9.7:主要家庭成员信息(t_emp_family)
@ExcelAttribute(name = "家庭成员姓名", maxLength = 20)
private String familyName;
@ExcelAttribute(name = "家庭成员与本人关系", isDataId = true,dataType = ExcelAttributeConstants.FAMILY_RELATION, maxLength = 32)
private String relationshipSelf;
@ExcelAttribute(name = "手机号码(家庭成员)", isPhone = true, maxLength = 32)
private String contractTel;
// 紧急联系人
// private TPreEmpContactInfo tpreEmpContactInfo
// 紧急联系人姓名 与本人关系 联系地址-省 联系地址-市 联系地址-区/县 联系地址-详细地址 手机号码(紧急联系人)
......@@ -129,6 +152,37 @@ public class PreUploadEmpImportTwoVo implements Serializable {
@ExcelAttribute(name = "计税月份", isDate = true, dateFormat = "yyyyMM", maxLength = 6)
private String taxMonth;
@ExcelAttribute(name = "是否有不良记录", isDataId = true, readConverterExp = "0=是,1=否")
private String badRecordFlag;
@ExcelAttribute(name = "是否有职业资格证书", isDataId = true, readConverterExp = "0=是,1=否")
private String haveQualification;
// 1.9.7: 职业资格信息
@ExcelAttribute(name = "申报年度", isDate = true, dateFormat = "yyyy", maxLength = 32)
private String declareYear;
@ExcelAttribute(name = "职业资格名称", isDataId = true, dataType = ExcelAttributeConstants.QUALIFICATION_TYPE, maxLength = 32)
private String qualificationType;
// 1.9.7: 伤残信息(t_emp_disability_info)
@ExcelAttribute(name = "是否曾被认定为工伤", isDataId = true, readConverterExp = "0=是,1=否", maxLength = 1)
private String injuryIdentification;
@ExcelAttribute(name = "是否有职业病", isDataId = true, readConverterExp = "0=是,1=否", maxLength = 1)
private String occupationalDiseaseFlag;
@ExcelAttribute(name = "职业病名称", maxLength = 50)
private String occupationalDisease;
@ExcelAttribute(name = "是否有传染性疾病", isDataId = true, readConverterExp = "0=是,1=否", maxLength = 1)
private String infectiousDiseaseFlag;
@ExcelAttribute(name = "传染病名称", maxLength = 50)
private String infectiousName;
@ExcelAttribute(name = "是否被劳动能力鉴定委员会鉴定为具有伤残等级", isDataId = true, readConverterExp = "0=是,1=否", maxLength = 1)
private String disabilityFlag;
@ExcelAttribute(name = "伤残病名称", maxLength = 50)
private String disabilityName;
@ExcelAttribute(name = "伤残等级",isDataId = true, dataType = ExcelAttributeConstants.DISABILITY_GRADE, maxLength = 32)
private String disabilityLevel;
@ExcelAttribute(name = "是否从事过井下、高空、高温、特别繁重体力劳动以及有毒有害工种", isDataId = true, readConverterExp = "0=是,1=否", maxLength = 1)
private String otherFlag;
// 字典值起始
@ExcelAttribute(name = "员工类型-值")
private String empNatrueValue;
......@@ -187,11 +241,32 @@ public class PreUploadEmpImportTwoVo implements Serializable {
@ExcelAttribute(name = "身份证截止日期-值")
private Date validityEndValue;
@ExcelAttribute(name = "是否有不良记录", isDataId = true, readConverterExp = "0=是,1=否")
private String badRecordFlag;
@ExcelAttribute(name = "开始工作日期-值")
private LocalDateTime startDateValue;
@ExcelAttribute(name = "结束工作日期-值")
private LocalDateTime endDateValue;
@ExcelAttribute(name = "与本人关系")
private String relationshipSelfValue;
@ExcelAttribute(name = "申报年度")
private String declareYearValue;
@ExcelAttribute(name = "职业资格名称")
private String qualificationTypeValue;
@ExcelAttribute(name = "是否曾被认定为工伤")
private String injuryIdentificationValue;
@ExcelAttribute(name = "是否有职业病")
private String occupationalDiseaseFlagValue;
@ExcelAttribute(name = "是否有传染性疾病")
private String infectiousDiseaseFlagValue;
@ExcelAttribute(name = "是否被劳动能力鉴定委员会鉴定为具有伤残等级")
private String disabilityFlagValue;
@ExcelAttribute(name = "伤残等级")
private String disabilityLevelValue;
@ExcelAttribute(name = "是否从事过井下、高空、高温、特别繁重体力劳动以及有毒有害工种")
private String otherFlagValue;
@ExcelAttribute(name = "是否有职业资格证书", isDataId = true, readConverterExp = "0=是,1=否")
private String haveQualification;
// 字典值结束
@TableField(exist = false)
......
......@@ -39,6 +39,7 @@ import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.BeanUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
......@@ -58,6 +59,7 @@ import java.util.stream.Collectors;
*/
@RestController
@RequiredArgsConstructor
@Log4j2
@RequestMapping("/tsettledomain")
@Tag(name = "项目表管理")
public class TSettleDomainController {
......@@ -456,6 +458,7 @@ public class TSettleDomainController {
try {
String json = jsonStr.replaceAll("%(?![0-9a-fA-F]{2})", "%25");
jsonStr = URLDecoder.decode(json, CommonConstants.UTF8).replace("=", "");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
......
......@@ -26,7 +26,7 @@ mybatis-plus:
logic-not-delete-value: 0
configuration:
map-underscore-to-camel-case: true
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# spring security 配置
security:
......
......@@ -17,6 +17,7 @@ import java.io.InputStream;
import java.io.Serializable;
import java.lang.reflect.Field;
import java.text.DecimalFormat;
import java.time.LocalDateTime;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
......@@ -771,6 +772,9 @@ public class DiyExcelImportUtil implements Serializable {
setStringField(field, cellValueStr, entity);
} else if (Date.class == fieldType && Common.isNotNull(cellValueStr.trim())) {
setDateField(field, cellValueStr, entity);
} else if (LocalDateTime.class == fieldType && Common.isNotNull(cellValueStr.trim())) {
// 1.9.7: 加时间格式转化
setDateTimeField(field, cellValueStr, entity);
} else if ((Integer.TYPE == fieldType) || (Integer.class == fieldType)) {
setIntegerField(field, cellValueStr, entity);
} else {
......@@ -784,6 +788,9 @@ public class DiyExcelImportUtil implements Serializable {
field.set(entity, cellValueStr);
} else if (Date.class == fieldType && Common.isNotNull(cellValueStr.trim())) {
setDateField(field, cellValueStr, entity);
} else if (LocalDateTime.class == fieldType && Common.isNotNull(cellValueStr.trim())) {
// 1.9.7: 加时间格式转化
setDateTimeField(field, cellValueStr, entity);
} else if ((Integer.TYPE == fieldType) || (Integer.class == fieldType)) {
setIntegerField(field, cellValueStr, entity);
} else {
......@@ -817,6 +824,17 @@ public class DiyExcelImportUtil implements Serializable {
field.set(entity, DateUtil.stringDateFormat(cellValueStr.trim(), patten));
}
public static <T> void setDateTimeField(Field field, String cellValueStr, T entity) throws IllegalAccessException {
String patten = DateUtil.ISO_DATE_FORMAT;
if (cellValueStr.contains("-")) {
patten = DateUtil.ISO_EXPANDED_DATE_FORMAT;
} else if (cellValueStr.contains("/")) {
patten = DateUtil.DATETIME_PATTERN_XIEGANG;
}
String pattenTime = patten+" 00:00:00";
field.set(entity, LocalDateTimeUtils.formatTime(cellValueStr.trim(), pattenTime));
}
public static <T> void setIntegerField(Field field, String cellValueStr, T entity) throws IllegalAccessException {
if ("否".equals(cellValueStr)) {
field.set(entity, 0);
......
......@@ -19,4 +19,10 @@ public class RegistConstants {
public static final String EMP_PROJECT_EXIT_CHECK = "未找到该人员对应的在项信息!";
public static final String CONFIRM_SUBMIT = "确认接收";
public static final String BEFORE_IN_PROJECT = "先于登记入项";
public static final String MESSAGE_REGIST = "信息登记";
}
......@@ -9,6 +9,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.Date;
/**
......@@ -81,6 +82,9 @@ public class EmployeeRegistration extends BaseEntity {
@Schema(description = "客服姓名")
private String customerUsername;
@Schema(description = "客服姓名")
private LocalDateTime projectCreateTime;
}
......@@ -8,6 +8,7 @@ import lombok.Data;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
/**
* 入离职登记表
......@@ -62,4 +63,12 @@ public class EmployeeRegistrationSearchVo extends EmployeeRegistration {
@TableField(exist = false)
private Date joinTimeEnd;
@Schema(description = "就职岗位数组")
@TableField(exist = false)
private List<String> postList;
@Schema(description = "处理状态数组")
@TableField(exist = false)
private List<String> statusList;
}
......@@ -24,7 +24,7 @@ public class EmployeeRegistrationVo extends RowIndex implements Serializable {
* 员工姓名
*/
@NotBlank(message = "员工姓名 不能为空")
@Length(max = 50, message = "员工姓名 不能超过50 个字符")
@Length(max = 50, message = "员工姓名 不能超过50个字符")
@ExcelAttribute(name = "员工姓名", isNotEmpty = true, errorInfo = "员工姓名不能为空", maxLength = 50)
@Schema(description = "员工姓名")
@ExcelProperty("员工姓名")
......@@ -34,7 +34,7 @@ public class EmployeeRegistrationVo extends RowIndex implements Serializable {
* 身份证号
*/
@NotBlank(message = "身份证号不能为空")
@Length(max = 18, message = "身份证号不能超过18 个字符")
@Length(max = 18, message = "身份证号不能超过18个字符")
@ExcelAttribute(name = "身份证号", isNotEmpty = true, errorInfo = "身份证号不能为空", maxLength = 18)
@Schema(description = "身份证号")
@ExcelProperty("身份证号")
......@@ -44,7 +44,7 @@ public class EmployeeRegistrationVo extends RowIndex implements Serializable {
* 员工手机号
*/
@NotBlank(message = "员工手机号 不能为空")
@Length(max = 11, message = "员工手机号不能超过11 个字符")
@Length(max = 11, message = "员工手机号不能超过11个字符")
@ExcelAttribute(name = "员工手机号", isNotEmpty = true, errorInfo = "员工手机号不能为空", maxLength = 11)
@Schema(description = "员工手机号")
@ExcelProperty("员工手机号")
......@@ -62,7 +62,7 @@ public class EmployeeRegistrationVo extends RowIndex implements Serializable {
/**
* 反馈类型 1入职 2离职
*/
@ExcelAttribute(name = "反馈类型")
@ExcelAttribute(name = "反馈类型", readConverterExp = "1=入职,2=离职")
@Schema(description = "反馈类型")
@ExcelProperty("反馈类型")
private String feedbackType;
......
......@@ -86,7 +86,7 @@ public class EmployeeRegistrationController {
}
/**
* 修改入离职登记表
* 入离职登记表确认接收
*
* @param employeeRegistration 入离职登记表
* @return R
......
......@@ -16,6 +16,7 @@ import com.yifu.cloud.plus.v1.csp.constants.RegistConstants;
import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistration;
import com.yifu.cloud.plus.v1.csp.mapper.EmployeeRegistrationMapper;
import com.yifu.cloud.plus.v1.csp.service.EmployeeRegistrationService;
import com.yifu.cloud.plus.v1.csp.service.TOperationLogService;
import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationExportVo;
import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationHrExportVo;
import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationSearchVo;
......@@ -41,6 +42,7 @@ import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
......@@ -67,6 +69,8 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
@Autowired
private ArchivesDaprUtil archivesDaprUtil;
private final TOperationLogService logService;
/**
* 入离职登记表简单分页查询
*
......@@ -241,11 +245,11 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
private void importEmployeeRegistration(List<EmployeeRegistrationVo> excelVOList,
List<ErrorMessage> errorMessageList,YifuUser user,TSettleDomainSelectVo selectVo) {
List<EmployeeRegistration> successList = new ArrayList<>();
Map<String, String> exitMap = new HashMap<>();
EmployeeRegistrationVo excel;
for (int i = 0; i < excelVOList.size(); i++) {
EmployeeRegistrationVo excel = excelVOList.get(i);
excel = excelVOList.get(i);
// 插入
EmployeeRegistration insert = new EmployeeRegistration();
BeanUtil.copyProperties(excel, insert);
......@@ -270,7 +274,6 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
}
initRegistInfo(insert,user, selectVo);
successList.add(insert);
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), CommonConstants.SAVE_SUCCESS));
}
// 执行数据插入操作 组装
if (!successList.isEmpty()) {
......@@ -288,6 +291,9 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
} else {
baseMapper.insert(registration);
}
//操作记录
logService.saveLog(registration.getId(), CommonConstants.ZERO_STRING,RegistConstants.MESSAGE_REGIST, LocalDateTime.now(),
registration.getRegistorUsername(),null);
return R.ok();
}
......@@ -304,11 +310,13 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
vo.setDeptNo(registrationNow.getDeptNo());
EmpProjectStatusVo exit = getEmpProjectStatus(vo);
if (Common.isNotNull(exit)) {
return R.ok(CommonConstants.ONE_STRING);
return R.ok(registration.getProjectCreateTime());
}
}
registrationNow.setProcessStatus(CommonConstants.ZERO_STRING);
baseMapper.updateById(registrationNow);
logService.saveLog(registration.getId(), CommonConstants.ZERO_STRING,RegistConstants.CONFIRM_SUBMIT, LocalDateTime.now(),
registration.getRegistorUsername(),null);
return R.ok();
}
......@@ -319,6 +327,8 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
}
registrationNow.setProcessStatus(CommonConstants.ZERO_STRING);
baseMapper.updateById(registrationNow);
logService.saveLog(registration.getId(), CommonConstants.ZERO_STRING,RegistConstants.CONFIRM_SUBMIT, registration.getProjectCreateTime(),
registration.getRegistorUsername(),RegistConstants.BEFORE_IN_PROJECT);
return R.ok();
}
......
......@@ -100,9 +100,12 @@
<if test="employeeRegistration.empPhone != null and employeeRegistration.empPhone.trim() != ''">
AND a.emp_phone like CONCAT(#{employeeRegistration.empPhone},'%')
</if>
<if test="employeeRegistration.position != null and employeeRegistration.position.trim() != ''">
AND a.position = #{employeeRegistration.position}
</if>
<if test="employeeRegistration.postList != null">
AND a.position in
<foreach item="item" index="index" collection="employeeRegistration.postList" open="(" separator="," close=")">
'${item}'
</foreach>
</if>
<if test="employeeRegistration.feedbackType != null and employeeRegistration.feedbackType.trim() != ''">
AND a.feedback_type = #{employeeRegistration.feedbackType}
</if>
......@@ -121,14 +124,17 @@
<if test="employeeRegistration.joinLeaveDate != null">
AND a.join_leave_date = #{employeeRegistration.joinLeaveDate}
</if>
<if test="employeeRegistration.processStatus != null and employeeRegistration.processStatus.trim() != ''">
AND a.process_status = #{employeeRegistration.processStatus}
<if test="employeeRegistration.statusList != null">
AND a.process_status in
<foreach item="item" index="index" collection="employeeRegistration.statusList" open="(" separator="," close=")">
'${item}'
</foreach>
</if>
<if test="employeeRegistration.registorUsername != null and employeeRegistration.registorUsername.trim() != ''">
AND a.registor_username = #{employeeRegistration.registorUsername}
</if>
<if test="employeeRegistration.registorDeptname != null and employeeRegistration.registorDeptname.trim() != ''">
AND a.registor_deptname like CONCAT(#{employeeRegistration.registorDeptname},'%')
AND a.registor_deptname like CONCAT(#{employeeRegistration.registorDeptname},'%')
</if>
<if test="employeeRegistration.registorDeptid != null and employeeRegistration.registorDeptid.trim() != ''">
AND a.registor_deptid = #{employeeRegistration.registorDeptid}
......
......@@ -396,18 +396,26 @@
<select id="getAllUserPageWhere" resultType="com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser">
select u.* from
(SELECT user_id,nickname,phone,create_time,username FROM sys_user
where del_flag = '0' and lock_flag = '0'
<if test="query.nameOrPhone != null and query.nameOrPhone != ''">
<bind name="usernameLike" value="'%' + query.nameOrPhone + '%'"/>
and nickname LIKE #{usernameLike}
</if>
union
SELECT user_id,nickname,phone,create_time,username FROM sys_user
where del_flag = '0' and lock_flag = '0'
<if test="query.nameOrPhone != null and query.nameOrPhone != ''">
and phone = #{query.nameOrPhone}
</if>
(
SELECT user_id,nickname,phone,create_time,username FROM sys_user
where del_flag = '0' and lock_flag = '0'
<if test="query.nameOrPhone != null and query.nameOrPhone != ''">
<bind name="usernameLike" value="'%' + query.nameOrPhone + '%'"/>
and nickname LIKE #{usernameLike}
</if>
union
SELECT user_id,nickname,phone,create_time,username FROM sys_user
where del_flag = '0' and lock_flag = '0'
<if test="query.nameOrPhone != null and query.nameOrPhone != ''">
<bind name="usernameLike" value="'%' + query.nameOrPhone + '%'"/>
and username LIKE #{usernameLike}
</if>
union
SELECT user_id,nickname,phone,create_time,username FROM sys_user
where del_flag = '0' and lock_flag = '0'
<if test="query.nameOrPhone != null and query.nameOrPhone != ''">
and phone = #{query.nameOrPhone}
</if>
) u
ORDER BY u.create_time DESC
</select>
......
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