feat(personnelMatters): 添加面试登记表详细信息功能

- 新增 RzInterviewerDetail 类用于存储面试登记表详细信息
- 在 RzInterviewer 中添加表单数据字段
- 实现面试登记表信息的导入和导出功能
- 优化面试信息的添加和更新逻辑
This commit is contained in:
tzy 2025-05-30 10:51:32 +08:00
parent 95f42c9fa1
commit 25098b059d
27 changed files with 513 additions and 293 deletions

View File

@ -0,0 +1,22 @@
package com.evo.attendance.domain.vo;
import com.evo.common.annotation.Excel;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/*
* @Author tzy
* @Description 用于导入销售提成
*/
@Data
public class RzSalaryVo {
@Excel(name = "姓名")
private String name;
@Excel(name = "提成金额")
private BigDecimal sale;
@Excel(name = "日期", width = 30, dateFormat = "yyyy-MM")
private Date date;
}

View File

@ -6,6 +6,8 @@ import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
import com.evo.common.core.domain.BaseEntity; import com.evo.common.core.domain.BaseEntity;
@ -15,6 +17,7 @@ import com.evo.common.core.domain.BaseEntity;
* *
* @author evo * @author evo
*/ */
@Data
public class SysDept extends BaseEntity public class SysDept extends BaseEntity
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -46,39 +49,12 @@ public class SysDept extends BaseEntity
/** 父部门名称 */ /** 父部门名称 */
private String parentName; private String parentName;
/** 是否加班 */
private String isOverTime;
/** 子部门 */ /** 子部门 */
private List<SysDept> children = new ArrayList<SysDept>(); private List<SysDept> children = new ArrayList<SysDept>();
public Long getDeptId()
{
return deptId;
}
public void setDeptId(Long deptId)
{
this.deptId = deptId;
}
public Long getParentId()
{
return parentId;
}
public void setParentId(Long parentId)
{
this.parentId = parentId;
}
public String getAncestors()
{
return ancestors;
}
public void setAncestors(String ancestors)
{
this.ancestors = ancestors;
}
@NotBlank(message = "部门名称不能为空") @NotBlank(message = "部门名称不能为空")
@Size(min = 0, max = 30, message = "部门名称长度不能超过30个字符") @Size(min = 0, max = 30, message = "部门名称长度不能超过30个字符")
public String getDeptName() public String getDeptName()
@ -86,86 +62,11 @@ public class SysDept extends BaseEntity
return deptName; return deptName;
} }
public void setDeptName(String deptName)
{
this.deptName = deptName;
}
public String getLeader()
{
return leader;
}
public void setLeader(String leader)
{
this.leader = leader;
}
@Size(min = 0, max = 11, message = "联系电话长度不能超过11个字符") @Size(min = 0, max = 11, message = "联系电话长度不能超过11个字符")
public String getPhone() public String getPhone()
{ {
return phone; return phone;
} }
public void setPhone(String phone)
{
this.phone = phone;
}
public String getStatus()
{
return status;
}
public void setStatus(String status)
{
this.status = status;
}
public String getDelFlag()
{
return delFlag;
}
public void setDelFlag(String delFlag)
{
this.delFlag = delFlag;
}
public String getParentName()
{
return parentName;
}
public void setParentName(String parentName)
{
this.parentName = parentName;
}
public List<SysDept> getChildren()
{
return children;
}
public void setChildren(List<SysDept> children)
{
this.children = children;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("deptId", getDeptId())
.append("parentId", getParentId())
.append("ancestors", getAncestors())
.append("deptName", getDeptName())
.append("leader", getLeader())
.append("phone", getPhone())
.append("status", getStatus())
.append("delFlag", getDelFlag())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.toString();
}
} }

View File

@ -4,10 +4,14 @@ import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.evo.attendance.domain.vo.RzAttendanceDetailVO;
import com.evo.attendance.domain.vo.RzSalaryVo;
import com.evo.common.constant.Constants; import com.evo.common.constant.Constants;
import com.evo.common.core.domain.entity.SysDept; import com.evo.common.core.domain.entity.SysDept;
import com.evo.common.core.domain.entity.SysDictData; import com.evo.common.core.domain.entity.SysDictData;
import com.evo.common.utils.StringUtils; import com.evo.common.utils.StringUtils;
import com.evo.common.utils.poi.ExcelUtil;
import com.evo.common.utils.poi.ExcelUtilSs; import com.evo.common.utils.poi.ExcelUtilSs;
import com.evo.finance.domain.vo.SalaryVo; import com.evo.finance.domain.vo.SalaryVo;
import com.evo.system.mapper.SysDictDataMapper; import com.evo.system.mapper.SysDictDataMapper;
@ -30,6 +34,8 @@ import com.evo.common.enums.BusinessType;
import com.evo.finance.domain.RzSalaryDetail; import com.evo.finance.domain.RzSalaryDetail;
import com.evo.finance.service.IRzSalaryDetailService; import com.evo.finance.service.IRzSalaryDetailService;
import com.evo.common.core.page.TableDataInfo; import com.evo.common.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
/** /**
@ -491,5 +497,17 @@ public class RzSalaryDetailController extends BaseController
String footer = "制表: "+"审核: "+"经理签字: "+"总经理签字: "; String footer = "制表: "+"审核: "+"经理签字: "+"总经理签字: ";
return util.exportExcel(list,lists,"总表",sheetNameList,title,footer); return util.exportExcel(list,lists,"总表",sheetNameList,title,footer);
} }
/**
* 导入销售提成
*/
@PreAuthorize("@ss.hasPermi('finance:financeDetail:importSalesCommissions')")
@Log(title = "导入销售提成", businessType = BusinessType.IMPORT)
@PostMapping("/importSalesCommissions")
public AjaxResult importSalesCommissions(MultipartFile file) throws Exception
{
ExcelUtil<RzSalaryVo> util = new ExcelUtil<>(RzSalaryVo.class);
List<RzSalaryVo> attendanceList = util.importExcel(file.getInputStream());
return success(rzSalaryDetailService.importSalesCommissions(attendanceList));
}
} }

View File

@ -184,17 +184,28 @@ public class RzSalaryDetail extends BaseEntity
@Excel(name = "本月应缴个税") @Excel(name = "本月应缴个税")
private BigDecimal taxPayable; private BigDecimal taxPayable;
/** 实发工资 */ /** 实发工资 */
@Excel(name = "实发工资") @Excel(name = "实发工资")
private BigDecimal netPayroll; private BigDecimal netPayroll;
@Excel(name = "销售提成")
private BigDecimal salesCommission;
/** 备注 */ /** 备注 */
@Excel(name = "备注") @Excel(name = "备注")
private String remarks; private String remarks;
/** 删除标识 */ /** 删除标识 */
private String delFlag; private String delFlag;
public BigDecimal getSalesCommission() {
return salesCommission;
}
public void setSalesCommission(BigDecimal salesCommission) {
this.salesCommission = salesCommission;
}
public BigDecimal getMonthSalary() { public BigDecimal getMonthSalary() {
return monthSalary; return monthSalary;
} }
@ -609,54 +620,54 @@ public class RzSalaryDetail extends BaseEntity
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return "RzSalaryDetail{" +
.append("id", getId()) "id=" + id +
.append("staffId", getStaffId()) ", staffId=" + staffId +
.append("name", getName()) ", name='" + name + '\'' +
.append("month", getMonth()) ", month=" + month +
.append("wbFlag", getWbFlag()) ", wbFlag='" + wbFlag + '\'' +
.append("deptId", getDeptId()) ", deptId=" + deptId +
.append("basicSalary", getBasicSalary()) ", deptName='" + deptName + '\'' +
.append("jobSalary", getJobSalary()) ", monthSalary=" + monthSalary +
.append("dailyWage", getDailyWage()) ", basicSalary=" + basicSalary +
.append("hoursSalary", getHoursSalary()) ", jobSalary=" + jobSalary +
.append("overtimeSalary", getOvertimeSalary()) ", dailyWage=" + dailyWage +
.append("levelSubsidies", getLevelSubsidies()) ", hoursSalary=" + hoursSalary +
.append("contractSubsidies", getContractSubsidies()) ", overtimeSalary=" + overtimeSalary +
.append("senioritySalary", getSenioritySalary()) ", levelSubsidies=" + levelSubsidies +
.append("socialSubsidies", getSocialSubsidies()) ", contractSubsidies=" + contractSubsidies +
.append("fullSubsidies", getFullSubsidies()) ", senioritySalary=" + senioritySalary +
.append("nightSubsidies", getNightSubsidies()) ", socialSubsidies=" + socialSubsidies +
.append("dinnerSubsidies", getDinnerSubsidies()) ", fullSubsidies=" + fullSubsidies +
.append("subsidyOrBonus", getSubsidyOrBonus()) ", middleSubsidies=" + middleSubsidies +
.append("absenteeismSalary", getAbsenteeismSalary()) ", nightSubsidies=" + nightSubsidies +
.append("absenteeismSubsidies", getAbsenteeismSubsidies()) ", dinnerSubsidies=" + dinnerSubsidies +
.append("mealFee", getMealFee()) ", subsidyOrBonus=" + subsidyOrBonus +
.append("deductions", getDeductions()) ", absenteeismSalary=" + absenteeismSalary +
.append("salary", getSalary()) ", absenteeismSubsidies=" + absenteeismSubsidies +
.append("payInsurance", getPayInsurance()) ", mealFee=" + mealFee +
.append("endowmentInsurance", getEndowmentInsurance()) ", deductions=" + deductions +
.append("medicalInsurance", getMedicalInsurance()) ", salary=" + salary +
.append("employmentInjuryInsurance", getEmploymentInjuryInsurance()) ", payInsurance=" + payInsurance +
.append("maternityInsurance", getMaternityInsurance()) ", endowmentInsurance=" + endowmentInsurance +
.append("unemploymentInsurance", getUnemploymentInsurance()) ", medicalInsurance=" + medicalInsurance +
.append("accumulationFund", getAccumulationFund()) ", employmentInjuryInsurance=" + employmentInjuryInsurance +
.append("salaryBeforeTax", getSalaryBeforeTax()) ", maternityInsurance=" + maternityInsurance +
.append("totalWages", getTotalWages()) ", unemploymentInsurance=" + unemploymentInsurance +
.append("annualExemptionAmount", getAnnualExemptionAmount()) ", accumulationFund=" + accumulationFund +
.append("specialDeduction", getSpecialDeduction()) ", salaryBeforeTax=" + salaryBeforeTax +
.append("taxableIncome", getTaxableIncome()) ", totalWages=" + totalWages +
.append("taxRate", getTaxRate()) ", annualExemptionAmount=" + annualExemptionAmount +
.append("slowDownTheDeduction", getSlowDownTheDeduction()) ", specialDeduction=" + specialDeduction +
.append("aggregatePersonalIncomeTax", getAggregatePersonalIncomeTax()) ", taxableIncome=" + taxableIncome +
.append("taxPayable", getTaxPayable()) ", taxRate=" + taxRate +
.append("netPayroll", getNetPayroll()) ", slowDownTheDeduction=" + slowDownTheDeduction +
.append("remarks", getRemarks()) ", aggregatePersonalIncomeTax=" + aggregatePersonalIncomeTax +
.append("delFlag", getDelFlag()) ", taxPayable=" + taxPayable +
.append("createBy", getCreateBy()) ", netPayroll=" + netPayroll +
.append("createTime", getCreateTime()) ", salesCommission=" + salesCommission +
.append("updateBy", getUpdateBy()) ", remarks='" + remarks + '\'' +
.append("updateTime", getUpdateTime()) ", delFlag='" + delFlag + '\'' +
.toString(); '}';
} }
} }

View File

@ -2,7 +2,10 @@ package com.evo.finance.mapper;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.evo.finance.domain.RzSalaryDetail; import com.evo.finance.domain.RzSalaryDetail;
import com.evo.system.domain.SysStaff;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
/** /**
@ -11,7 +14,7 @@ import org.apache.ibatis.annotations.Param;
* @author evo * @author evo
* @date 2024-11-26 * @date 2024-11-26
*/ */
public interface RzSalaryDetailMapper public interface RzSalaryDetailMapper extends BaseMapper<RzSalaryDetail>
{ {
/** /**
* 查询工资详情 * 查询工资详情

View File

@ -2,6 +2,8 @@ package com.evo.finance.service;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import com.evo.attendance.domain.vo.RzSalaryVo;
import com.evo.common.core.domain.AjaxResult; import com.evo.common.core.domain.AjaxResult;
import com.evo.finance.domain.RzSalaryDetail; import com.evo.finance.domain.RzSalaryDetail;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -66,4 +68,5 @@ public interface IRzSalaryDetailService
*/ */
public List<RzSalaryDetail> selectSalaryDetailByWbFlag(String wbFlag,Date date); public List<RzSalaryDetail> selectSalaryDetailByWbFlag(String wbFlag,Date date);
AjaxResult importSalesCommissions(List<RzSalaryVo> attendanceList);
} }

View File

@ -1,13 +1,14 @@
package com.evo.finance.service.impl; package com.evo.finance.service.impl;
import com.evo.attendance.domain.RzAttendance; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.evo.attendance.domain.RzAttendanceStatistical; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.evo.attendance.domain.RzSpecialOverTime; import com.evo.attendance.domain.vo.RzSalaryVo;
import com.evo.attendance.mapper.RzAttendanceMapper; import com.evo.attendance.mapper.RzAttendanceMapper;
import com.evo.attendance.mapper.RzAttendanceStatisticalMapper; import com.evo.attendance.mapper.RzAttendanceStatisticalMapper;
import com.evo.attendance.mapper.RzSpecialOverTimeMapper; import com.evo.attendance.mapper.RzSpecialOverTimeMapper;
import com.evo.common.constant.Constants; import com.evo.common.constant.Constants;
import com.evo.common.core.domain.AjaxResult; import com.evo.common.core.domain.AjaxResult;
import com.evo.common.core.domain.entity.SysDept;
import com.evo.common.utils.DateUtils; import com.evo.common.utils.DateUtils;
import com.evo.common.utils.SecurityUtils; import com.evo.common.utils.SecurityUtils;
import com.evo.common.utils.StringUtils; import com.evo.common.utils.StringUtils;
@ -16,7 +17,6 @@ import com.evo.finance.domain.RzSalaryStatistics;
import com.evo.finance.mapper.RzSalaryDetailMapper; import com.evo.finance.mapper.RzSalaryDetailMapper;
import com.evo.finance.mapper.RzSalaryStatisticsMapper; import com.evo.finance.mapper.RzSalaryStatisticsMapper;
import com.evo.finance.service.IRzSalaryDetailService; import com.evo.finance.service.IRzSalaryDetailService;
import com.evo.personnelMatters.domain.RzHoliday;
import com.evo.personnelMatters.mapper.RzHolidayMapper; import com.evo.personnelMatters.mapper.RzHolidayMapper;
import com.evo.restaurant.domain.RzRestaurantStatistics; import com.evo.restaurant.domain.RzRestaurantStatistics;
import com.evo.restaurant.mapper.RzRestaurantStatisticsMapper; import com.evo.restaurant.mapper.RzRestaurantStatisticsMapper;
@ -26,13 +26,11 @@ import com.evo.system.mapper.SysDeptMapper;
import com.evo.system.mapper.SysStaffDetailMapper; import com.evo.system.mapper.SysStaffDetailMapper;
import com.evo.system.mapper.SysStaffMapper; import com.evo.system.mapper.SysStaffMapper;
import com.evo.system.service.ISysDictDataService; import com.evo.system.service.ISysDictDataService;
import com.evo.utils.DateUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
@ -45,7 +43,7 @@ import java.util.List;
* @date 2024-11-26 * @date 2024-11-26
*/ */
@Service @Service
public class RzSalaryDetailServiceImpl implements IRzSalaryDetailService public class RzSalaryDetailServiceImpl extends ServiceImpl<RzSalaryDetailMapper, RzSalaryDetail> implements IRzSalaryDetailService
{ {
@Resource @Resource
private RzSalaryDetailMapper rzSalaryDetailMapper; private RzSalaryDetailMapper rzSalaryDetailMapper;
@ -69,6 +67,7 @@ public class RzSalaryDetailServiceImpl implements IRzSalaryDetailService
private RzSpecialOverTimeMapper rzSpecialOverTimeMapper; private RzSpecialOverTimeMapper rzSpecialOverTimeMapper;
@Resource @Resource
private ISysDictDataService sysDictDataService; private ISysDictDataService sysDictDataService;
/** /**
* 查询工资详情 * 查询工资详情
* *
@ -554,4 +553,34 @@ public class RzSalaryDetailServiceImpl implements IRzSalaryDetailService
public List<RzSalaryDetail> selectSalaryDetailByWbFlag(String wbFlag,Date date){ public List<RzSalaryDetail> selectSalaryDetailByWbFlag(String wbFlag,Date date){
return rzSalaryDetailMapper.selectSalaryDetailByWbFlag(wbFlag,date); return rzSalaryDetailMapper.selectSalaryDetailByWbFlag(wbFlag,date);
} }
@Override
public AjaxResult importSalesCommissions(List<RzSalaryVo> attendanceList) {
LambdaQueryWrapper<SysDept> wa = new LambdaQueryWrapper<>();
wa.eq(SysDept::getDelFlag,Constants.DELETE_FLAG_0)
.eq(SysDept::getDeptName,"销售部");
SysDept sysDept = deptMapper.selectOne(wa);
//更新工资单详情,写入销售提成
for (RzSalaryVo rzSalaryVo : attendanceList) {
if (rzSalaryVo.getSale() != null ){
//根据本门查询 月份工资单
List<RzSalaryDetail> rzSalaryDetails = rzSalaryDetailMapper.selectSalaryDetailByDeptId(sysDept.getDeptId(),rzSalaryVo.getDate());
if (!rzSalaryDetails.isEmpty()){
for (RzSalaryDetail rzSalaryDetail : rzSalaryDetails) {
if (rzSalaryDetail.getName().equals(rzSalaryVo.getName())){
//更新销售提成
rzSalaryDetail.setSalesCommission(rzSalaryVo.getSale());
rzSalaryDetail.setUpdateTime(DateUtils.getNowDate());
rzSalaryDetail.setUpdateBy(SecurityUtils.getUsername());
rzSalaryDetailMapper.updateById(rzSalaryDetail);
}
}
}
}
}
return AjaxResult.success();
}
} }

View File

@ -120,6 +120,7 @@ public class SecurityConfig
.antMatchers("/api/v1/verify_user").permitAll() .antMatchers("/api/v1/verify_user").permitAll()
.antMatchers("/api/v1/record/face").permitAll() .antMatchers("/api/v1/record/face").permitAll()
.antMatchers("/api/v2/verify_user_yt").permitAll() .antMatchers("/api/v2/verify_user_yt").permitAll()
.antMatchers("/dev-api/personnelMatters/interviewer").permitAll()
// 除上面外的所有请求全部需要鉴权认证 // 除上面外的所有请求全部需要鉴权认证
.anyRequest().authenticated(); .anyRequest().authenticated();
}) })

View File

@ -1,5 +1,8 @@
package com.evo.personnelMatters.controller; package com.evo.personnelMatters.controller;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.evo.common.annotation.Anonymous;
import com.evo.common.annotation.Log; import com.evo.common.annotation.Log;
import com.evo.common.core.controller.BaseController; import com.evo.common.core.controller.BaseController;
import com.evo.common.core.domain.AjaxResult; import com.evo.common.core.domain.AjaxResult;
@ -58,17 +61,33 @@ public class RzInterviewerController extends BaseController
*/ */
@PreAuthorize("@ss.hasPermi('personnelMatters:interviewer:query')") @PreAuthorize("@ss.hasPermi('personnelMatters:interviewer:query')")
@GetMapping(value = "/{id}") @GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id) public AjaxResult getInfo(@PathVariable("id") Long id)
{ {
return success(rzInterviewerService.selectRzInterviewerById(id)); try {
RzInterviewer interviewer = rzInterviewerService.selectRzInterviewerById(id);
if (interviewer == null) {
return AjaxResult.error("未找到相关数据");
}
// 解析JSON数据
if (interviewer.getFromData() != null && !interviewer.getFromData().isEmpty()) {
JSONObject formData = JSON.parseObject(interviewer.getFromData());
interviewer.setFromData(formData.toJSONString());
}
return AjaxResult.success(interviewer);
} catch (Exception e) {
logger.error("获取面试登记表信息失败", e);
return AjaxResult.error("获取数据失败:" + e.getMessage());
}
} }
/** /**
* 新增面试信息 * 新增面试信息
*/ */
@PreAuthorize("@ss.hasPermi('personnelMatters:interviewer:add')")
@Log(title = "面试信息", businessType = BusinessType.INSERT) @Log(title = "面试信息", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
@Anonymous
public AjaxResult add(@RequestBody RzInterviewer rzInterviewer) public AjaxResult add(@RequestBody RzInterviewer rzInterviewer)
{ {
return toAjax(rzInterviewerService.insertRzInterviewer(rzInterviewer)); return toAjax(rzInterviewerService.insertRzInterviewer(rzInterviewer));

View File

@ -3,6 +3,7 @@ package com.evo.personnelMatters.domain;
import com.evo.common.annotation.Excel; import com.evo.common.annotation.Excel;
import com.evo.common.core.domain.BaseEntity; import com.evo.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
@ -14,6 +15,7 @@ import java.util.Date;
* @author chenyj * @author chenyj
* @date 2024-09-07 * @date 2024-09-07
*/ */
@Data
public class RzInterviewer extends BaseEntity public class RzInterviewer extends BaseEntity
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -53,118 +55,15 @@ public class RzInterviewer extends BaseEntity
/** 备注 */ /** 备注 */
@Excel(name = "备注") @Excel(name = "备注")
private String remarks; private String remarks;
/** 提交时间 */
@Excel(name = "提交时间")
private String submitTime;
/** 表单数据 */
@Excel(name = "表单数据")
private String fromData;
/** 删除标记 */ /** 删除标记 */
private String delFlag; private String delFlag;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
public void setPhone(String phone)
{
this.phone = phone;
}
public String getPhone()
{
return phone;
}
public void setPost(String post)
{
this.post = post;
}
public String getPost()
{
return post;
}
public void setContent(String content)
{
this.content = content;
}
public String getContent()
{
return content;
}
public void setAddress(String address)
{
this.address = address;
}
public String getAddress()
{
return address;
}
public void setInterviewDate(Date interviewDate)
{
this.interviewDate = interviewDate;
}
public Date getInterviewDate()
{
return interviewDate;
}
public void setYtFlag(String ytFlag)
{
this.ytFlag = ytFlag;
}
public String getYtFlag()
{
return ytFlag;
}
public void setRemarks(String remarks)
{
this.remarks = remarks;
}
public String getRemarks()
{
return remarks;
}
public void setDelFlag(String delFlag)
{
this.delFlag = delFlag;
}
public String getDelFlag()
{
return delFlag;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("name", getName())
.append("phone", getPhone())
.append("post", getPost())
.append("content", getContent())
.append("address", getAddress())
.append("interviewDate", getInterviewDate())
.append("ytFlag", getYtFlag())
.append("remarks", getRemarks())
.append("delFlag", getDelFlag())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.toString();
}
} }

View File

@ -0,0 +1,12 @@
package com.evo.personnelMatters.domain.vo;
import lombok.Data;
@Data
public class EducationExperience {
private String start;
private String school;
private String major;
private String certificate;
private String remark;
}

View File

@ -0,0 +1,13 @@
package com.evo.personnelMatters.domain.vo;
import lombok.Data;
@Data
public class FamilyMember {
private String relation;
private String name;
private String age;
private String address;
private String company;
private String job;
}

View File

@ -0,0 +1,150 @@
package com.evo.personnelMatters.domain.vo;
import com.evo.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.List;
@Data
public class RzInterviewerDetail {
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 应聘部门 */
@Excel(name = "应聘部门")
private String department;
/** 应聘岗位 */
@Excel(name = "应聘岗位")
private String post;
/** 期望薪资 */
@Excel(name = "期望薪资")
private String salary;
/** 填写日期 */
@Excel(name = "填写日期")
private String fillDate;
/** 姓名 */
@Excel(name = "姓名")
private String name;
/** 性别 */
@Excel(name = "性别")
private String gender;
/** 出生年月 */
@JsonFormat(pattern = "yyyy-MM")
@Excel(name = "出生年月", width = 30, dateFormat = "yyyy-MM")
private String birth;
/** 民族 */
@Excel(name = "民族")
private String nation;
/** 婚姻状况 */
@Excel(name = "婚姻状况")
private String maritalStatus;
/** 政治面貌 */
@Excel(name = "政治面貌")
private String politicalStatus;
/** 身份证号 */
@Excel(name = "身份证号")
private String idCard;
/** 目前工作状况 */
@Excel(name = "目前工作状况")
private String jobStatus;
/** 最高学历 */
@Excel(name = "最高学历")
private String education;
/** 专业 */
@Excel(name = "专业")
private String major;
/** 毕业学校 */
@Excel(name = "毕业学校")
private String school;
/** 学位 */
@Excel(name = "学位")
private String degree;
/** 职称 */
@Excel(name = "职称")
private String title;
/** 到岗时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "到岗时间", width = 30, dateFormat = "yyyy-MM-dd")
private String arrivalDate;
/** 户口所在地 */
@Excel(name = "户口所在地")
private String registeredAddress;
/** 现居住地址 */
@Excel(name = "现居住地址")
private String currentAddress;
/** 联系电话 */
@Excel(name = "联系电话")
private String phone;
/** 教育经历列表 */
private List<EducationExperience> educationList;
/** 工作经历列表 */
private List<WorkExperience> workList;
/** 家庭成员列表 */
private List<FamilyMember> familyList;
/** 人才招聘会 */
@Excel(name = "人才招聘会")
private Boolean channelJobFair;
/** 招聘网站 */
@Excel(name = "招聘网站")
private Boolean channelWebsite;
/** 朋友推荐 */
@Excel(name = "朋友推荐")
private Boolean channelFriend;
/** 其他渠道 */
@Excel(name = "其他渠道")
private Boolean channelOther;
/** 介绍人 */
@Excel(name = "介绍人")
private String referrer;
/** 介绍人关系 */
@Excel(name = "介绍人关系")
private String referrerRelation;
/** 介绍人职务 */
@Excel(name = "介绍人职务")
private String referrerJob;
/** 是否同意承诺 */
@Excel(name = "是否同意承诺")
private Boolean promiseAgreed;
/** 删除标记 */
private String delFlag;
/** 表单数据 */
@Excel(name = "表单数据")
private String fromData;
}

View File

@ -0,0 +1,13 @@
package com.evo.personnelMatters.domain.vo;
import lombok.Data;
@Data
public class WorkExperience {
private String start;
private String company;
private String position;
private String content;
private String salary;
private String reason;
}

View File

@ -1,13 +1,19 @@
package com.evo.personnelMatters.service.impl; package com.evo.personnelMatters.service.impl;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.evo.common.constant.Constants; import com.evo.common.constant.Constants;
import com.evo.common.utils.DateUtils; import com.evo.common.utils.DateUtils;
import com.evo.common.utils.SecurityUtils; import com.evo.common.utils.SecurityUtils;
import com.evo.personnelMatters.domain.RzInterviewer; import com.evo.personnelMatters.domain.RzInterviewer;
import com.evo.personnelMatters.domain.vo.RzInterviewerDetail;
import com.evo.personnelMatters.mapper.RzInterviewerMapper; import com.evo.personnelMatters.mapper.RzInterviewerMapper;
import com.evo.personnelMatters.service.IRzInterviewerService; import com.evo.personnelMatters.service.IRzInterviewerService;
import com.evo.system.domain.SysStaff;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -55,8 +61,15 @@ public class RzInterviewerServiceImpl implements IRzInterviewerService
@Override @Override
public int insertRzInterviewer(RzInterviewer rzInterviewer) public int insertRzInterviewer(RzInterviewer rzInterviewer)
{ {
// 解析JSON数据
if (rzInterviewer.getFromData() != null && !rzInterviewer.getFromData().isEmpty()) {
JSONObject formData = JSON.parseObject(rzInterviewer.getFromData());
//将JSON 转换为RzInterviewerDetail
RzInterviewerDetail rzInterviewerDetail = formData.toJavaObject(RzInterviewerDetail.class);
rzInterviewer.setInterviewDate(DateUtils.getNowDate());
rzInterviewer.setAddress(rzInterviewerDetail.getCurrentAddress());
}
rzInterviewer.setYtFlag(""); rzInterviewer.setYtFlag("");
rzInterviewer.setCreateBy(SecurityUtils.getUsername());
rzInterviewer.setCreateTime(DateUtils.getNowDate()); rzInterviewer.setCreateTime(DateUtils.getNowDate());
rzInterviewer.setDelFlag(Constants.DELETE_FLAG_0); rzInterviewer.setDelFlag(Constants.DELETE_FLAG_0);
return rzInterviewerMapper.insertRzInterviewer(rzInterviewer); return rzInterviewerMapper.insertRzInterviewer(rzInterviewer);
@ -69,8 +82,30 @@ public class RzInterviewerServiceImpl implements IRzInterviewerService
* @return 结果 * @return 结果
*/ */
@Override @Override
public int updateRzInterviewer(RzInterviewer rzInterviewer) public int updateRzInterviewer(RzInterviewer rzInterviewer) {
{ if (rzInterviewer.getYtFlag().equals("")){
//同步员工信息中
SysStaff sysStaff = new SysStaff();
sysStaff.setName(rzInterviewer.getName());
String fromData = rzInterviewer.getFromData();
RzInterviewerDetail detail = JSON.parseObject(fromData).toJavaObject(RzInterviewerDetail.class);
sysStaff.setPhone(detail.getPhone());
sysStaff.setIdCard(detail.getIdCard());
sysStaff.setSex(detail.getGender());
//根据出生年月计算年龄
String birth = detail.getBirth();
if (birth != null && !birth.isEmpty()) {
int year = Integer.parseInt(birth.substring(0,4));
int age = Integer.parseInt(new SimpleDateFormat("yyyy").format(new Date())) - year;
sysStaff.setAge(Long.parseLong(age+""));
}
sysStaff.setAddress(detail.getCurrentAddress());
sysStaff.setLevel(detail.getEducation());
sysStaff.setMajor(detail.getMajor());
sysStaff.setSchool(detail.getSchool());
}
rzInterviewer.setUpdateBy(SecurityUtils.getUsername()); rzInterviewer.setUpdateBy(SecurityUtils.getUsername());
rzInterviewer.setUpdateTime(DateUtils.getNowDate()); rzInterviewer.setUpdateTime(DateUtils.getNowDate());
return rzInterviewerMapper.updateRzInterviewer(rzInterviewer); return rzInterviewerMapper.updateRzInterviewer(rzInterviewer);

View File

@ -58,4 +58,5 @@ public class RzRestaurantImagesController extends BaseController
public AjaxResult uploadPDF(@RequestParam("name") String name,@RequestParam("file") MultipartFile filePath){ public AjaxResult uploadPDF(@RequestParam("name") String name,@RequestParam("file") MultipartFile filePath){
return rzRestaurantImagesService.insertRzRestaurantImages(name,filePath); return rzRestaurantImagesService.insertRzRestaurantImages(name,filePath);
} }
} }

View File

@ -8,6 +8,7 @@ import com.evo.common.utils.Collections;
import com.evo.common.utils.DateUtils; import com.evo.common.utils.DateUtils;
import com.evo.common.utils.SecurityUtils; import com.evo.common.utils.SecurityUtils;
import com.evo.common.utils.StringUtils; import com.evo.common.utils.StringUtils;
import com.evo.common.utils.file.FileUploadUtils;
import com.evo.equipment.domain.vo.StaffData; import com.evo.equipment.domain.vo.StaffData;
import com.evo.equipment.domain.vo.StaffDto; import com.evo.equipment.domain.vo.StaffDto;
import com.evo.equipment.service.IEqSnDetailService; import com.evo.equipment.service.IEqSnDetailService;
@ -20,10 +21,7 @@ import com.evo.restaurant.service.IRzRestaurantImagesService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.BufferedOutputStream; import java.io.*;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;

View File

@ -5,6 +5,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.evo.attendance.domain.vo.RzSalaryVo;
import com.evo.system.domain.SysStaff; import com.evo.system.domain.SysStaff;
import com.evo.system.domain.vo.SysStaffVo; import com.evo.system.domain.vo.SysStaffVo;
import com.evo.system.service.ISysStaffService; import com.evo.system.service.ISysStaffService;
@ -162,5 +163,16 @@ public class SysStaffController extends BaseController
List<SysStaff> list = sysStaffService.queryysStaffByDeptId(dept); List<SysStaff> list = sysStaffService.queryysStaffByDeptId(dept);
return list; return list;
} }
/**
* 导入销售提成
*/
@PreAuthorize("@ss.hasPermi('system:staff:importSalesCommissions')")
@Log(title = "导入销售提成", businessType = BusinessType.IMPORT)
@PostMapping("/importSalesCommissions")
public AjaxResult importSalesCommissions(MultipartFile file) throws Exception
{
ExcelUtil<RzSalaryVo> util = new ExcelUtil<>(RzSalaryVo.class);
List<RzSalaryVo> attendanceList = util.importExcel(file.getInputStream());
return success(sysStaffService.importSalesCommissions(attendanceList));
}
} }

View File

@ -163,6 +163,9 @@ public class SysStaffDetail extends BaseEntity
/** 本年累计已缴个税 */ /** 本年累计已缴个税 */
@Excel(name = "本年累计已缴个税") @Excel(name = "本年累计已缴个税")
private BigDecimal aggregatePersonalIncomeTax; private BigDecimal aggregatePersonalIncomeTax;
/** 本年累计已缴个税 */
@Excel(name = "销售提成")
private BigDecimal salesCommission;
/** 备注 */ /** 备注 */
@Excel(name = "备注") @Excel(name = "备注")

View File

@ -1,6 +1,8 @@
package com.evo.system.mapper; package com.evo.system.mapper;
import java.util.List; import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.evo.common.core.domain.entity.SysDept; import com.evo.common.core.domain.entity.SysDept;
@ -9,7 +11,7 @@ import com.evo.common.core.domain.entity.SysDept;
* *
* @author evo * @author evo
*/ */
public interface SysDeptMapper public interface SysDeptMapper extends BaseMapper<SysDept>
{ {
/** /**
* 查询部门管理数据 * 查询部门管理数据

View File

@ -1,14 +1,12 @@
package com.evo.system.service; package com.evo.system.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.evo.attendance.domain.RzAttendanceStatistical; import com.evo.attendance.domain.vo.RzSalaryVo;
import com.evo.common.core.domain.AjaxResult; import com.evo.common.core.domain.AjaxResult;
import com.evo.common.core.domain.entity.SysUser;
import com.evo.system.domain.SysStaff; import com.evo.system.domain.SysStaff;
import com.evo.system.domain.vo.SysStaffVo; import com.evo.system.domain.vo.SysStaffVo;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -98,4 +96,8 @@ public interface ISysStaffService extends IService<SysStaff>
public void calculationOfSeniority(); public void calculationOfSeniority();
public SysStaff selectSysStaffByName(String employeeName); public SysStaff selectSysStaffByName(String employeeName);
SysStaff selectByDepId(Long deptId);
AjaxResult importSalesCommissions(List<RzSalaryVo> attendanceList);
} }

View File

@ -59,7 +59,11 @@ public class SysStaffDetailServiceImpl extends ServiceImpl<SysStaffDetailMapper,
@Override @Override
public SysStaffDetail selectSysStaffDetailByUserId(Long id) { public SysStaffDetail selectSysStaffDetailByUserId(Long id) {
return SubsidyCalculationUtils.subsidyCalculation(sysStaffService.selectSysStaffByUserId(id),getOne(new LambdaQueryWrapper<SysStaffDetail>().eq(SysStaffDetail::getDelFlag, Constants.DELETE_FLAG_0).eq(SysStaffDetail::getStaffId, id).orderByDesc(SysStaffDetail::getCreateTime), false), rzSubsidyInfoService.list()); return SubsidyCalculationUtils.subsidyCalculation(sysStaffService.selectSysStaffByUserId(id),
getOne(new LambdaQueryWrapper<SysStaffDetail>()
.eq(SysStaffDetail::getDelFlag, Constants.DELETE_FLAG_0)
.eq(SysStaffDetail::getStaffId, id)
.orderByDesc(SysStaffDetail::getCreateTime), false), rzSubsidyInfoService.list());
} }
/** /**

View File

@ -3,6 +3,7 @@ package com.evo.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.evo.attendance.service.IRzAttendanceStatisticalService; import com.evo.attendance.service.IRzAttendanceStatisticalService;
import com.evo.attendance.domain.vo.RzSalaryVo;
import com.evo.common.annotation.DataScope; import com.evo.common.annotation.DataScope;
import com.evo.common.constant.Constants; import com.evo.common.constant.Constants;
import com.evo.common.core.domain.AjaxResult; import com.evo.common.core.domain.AjaxResult;
@ -861,7 +862,52 @@ public class SysStaffServiceImpl extends ServiceImpl<SysStaffMapper, SysStaff> i
public SysStaff selectSysStaffByName(String employeeName) { public SysStaff selectSysStaffByName(String employeeName) {
LambdaQueryWrapper<SysStaff> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysStaff> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysStaff::getName,employeeName); wrapper.eq(SysStaff::getName,employeeName);
return getBaseMapper().selectOne(wrapper); return getBaseMapper().selectOne(wrapper);
} }
@Override
public SysStaff selectByDepId(Long deptId) {
LambdaQueryWrapper<SysStaff> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysStaff::getDeptId,deptId);
return getBaseMapper().selectOne(wrapper);
}
@Override
public AjaxResult importSalesCommissions(List<RzSalaryVo> attendanceList) {
// 获取销售部门信息
SysDept sysDept = deptMapper.selectOne(new LambdaQueryWrapper<SysDept>()
.eq(SysDept::getDelFlag, Constants.DELETE_FLAG_0)
.eq(SysDept::getDeptName, "销售部"));
if (sysDept == null) {
return AjaxResult.error("销售部门未找到,请确认部门是否存在且未被删除!");
}
// 更新工资单详情写入销售提成
for (RzSalaryVo rzSalaryVo : attendanceList) {
if (rzSalaryVo.getSale() != null && rzSalaryVo.getName() != null) {
// 直接根据姓名和部门ID查询员工信息
SysStaff sysStaff = getBaseMapper().selectOne(new LambdaQueryWrapper<SysStaff>()
.eq(SysStaff::getName, rzSalaryVo.getName())
.eq(SysStaff::getDeptId, sysDept.getDeptId())
.eq(SysStaff::getDelFlag, Constants.DELETE_FLAG_0));
if (sysStaff != null) {
// 获取员工详情
SysStaffDetail sysStaffDetail = sysStaffDetailMapper.selectSysStaffDetailByStaffId(sysStaff.getUserId());
if (sysStaffDetail != null) {
// 更新销售提成
sysStaffDetail.setSalesCommission(rzSalaryVo.getSale());
sysStaffDetail.setUpdateTime(new Date());
sysStaffDetail.setUpdateBy(SecurityUtils.getUsername());
sysStaffDetailMapper.updateById(sysStaffDetail);
}
}
}
}
return AjaxResult.success();
}
} }

View File

@ -45,6 +45,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="taxRate" column="tax_rate" /> <result property="taxRate" column="tax_rate" />
<result property="slowDownTheDeduction" column="slow_down_the_deduction" /> <result property="slowDownTheDeduction" column="slow_down_the_deduction" />
<result property="aggregatePersonalIncomeTax" column="aggregate_personal_income_tax" /> <result property="aggregatePersonalIncomeTax" column="aggregate_personal_income_tax" />
<result property="salesCommission" column="sales_commission" />
<result property="taxPayable" column="tax_payable" /> <result property="taxPayable" column="tax_payable" />
<result property="netPayroll" column="net_payroll" /> <result property="netPayroll" column="net_payroll" />
<result property="remarks" column="remarks" /> <result property="remarks" column="remarks" />
@ -56,7 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectRzSalaryDetailVo"> <sql id="selectRzSalaryDetailVo">
select id, staff_id, name, month, wb_flag, dept_id,month_salary, basic_salary, job_salary, daily_wage, hours_salary, overtime_salary, level_subsidies, contract_subsidies, seniority_salary, social_subsidies, full_subsidies, night_subsidies, dinner_subsidies, subsidy_or_bonus, absenteeism_salary, absenteeism_subsidies, meal_fee, deductions, salary, pay_insurance, endowment_insurance, medical_insurance, employment_injury_insurance, maternity_insurance, unemployment_insurance, accumulation_fund, salary_before_tax, total_wages, annual_exemption_amount, special_deduction, taxable_income, tax_rate, slow_down_the_deduction, aggregate_personal_income_tax, aggregate_tax, tax_payable, net_payroll, remarks, del_flag, create_by, create_time, update_by, update_time from rz_salary_detail select id, staff_id, name, month, wb_flag, dept_id,month_salary, basic_salary, job_salary, daily_wage, hours_salary, overtime_salary, level_subsidies, contract_subsidies, seniority_salary, social_subsidies, full_subsidies, night_subsidies, dinner_subsidies, subsidy_or_bonus, absenteeism_salary, absenteeism_subsidies, meal_fee, deductions, salary, pay_insurance, endowment_insurance, medical_insurance, employment_injury_insurance, maternity_insurance, unemployment_insurance, accumulation_fund, salary_before_tax, total_wages, annual_exemption_amount, special_deduction, taxable_income, tax_rate, slow_down_the_deduction, aggregate_personal_income_tax, aggregate_tax, tax_payable, net_payroll,sales_commissions, remarks, del_flag, create_by, create_time, update_by, update_time from rz_salary_detail
</sql> </sql>
<select id="selectRzSalaryDetailList" parameterType="RzSalaryDetail" resultMap="RzSalaryDetailResult"> <select id="selectRzSalaryDetailList" parameterType="RzSalaryDetail" resultMap="RzSalaryDetailResult">
@ -119,6 +120,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="taxPayable != null">tax_payable,</if> <if test="taxPayable != null">tax_payable,</if>
<if test="netPayroll != null">net_payroll,</if> <if test="netPayroll != null">net_payroll,</if>
<if test="remarks != null">remarks,</if> <if test="remarks != null">remarks,</if>
<if test="salesCommission != null">salesCommission,</if>
<if test="delFlag != null">del_flag,</if> <if test="delFlag != null">del_flag,</if>
<if test="createBy != null and createBy != ''">create_by,</if> <if test="createBy != null and createBy != ''">create_by,</if>
<if test="createTime != null">create_time,</if> <if test="createTime != null">create_time,</if>
@ -167,6 +169,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="aggregatePersonalIncomeTax != null">#{aggregatePersonalIncomeTax},</if> <if test="aggregatePersonalIncomeTax != null">#{aggregatePersonalIncomeTax},</if>
<if test="taxPayable != null">#{taxPayable},</if> <if test="taxPayable != null">#{taxPayable},</if>
<if test="netPayroll != null">#{netPayroll},</if> <if test="netPayroll != null">#{netPayroll},</if>
<if test="salesCommission != null">#{salesCommission},</if>
<if test="remarks != null">#{remarks},</if> <if test="remarks != null">#{remarks},</if>
<if test="delFlag != null">#{delFlag},</if> <if test="delFlag != null">#{delFlag},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if> <if test="createBy != null and createBy != ''">#{createBy},</if>
@ -220,6 +223,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="aggregatePersonalIncomeTax != null">aggregate_personal_income_tax = #{aggregatePersonalIncomeTax},</if> <if test="aggregatePersonalIncomeTax != null">aggregate_personal_income_tax = #{aggregatePersonalIncomeTax},</if>
<if test="taxPayable != null">tax_payable = #{taxPayable},</if> <if test="taxPayable != null">tax_payable = #{taxPayable},</if>
<if test="netPayroll != null">net_payroll = #{netPayroll},</if> <if test="netPayroll != null">net_payroll = #{netPayroll},</if>
<if test="salesCommission != null">net_payroll = #{salesCommission},</if>
<if test="remarks != null">remarks = #{remarks},</if> <if test="remarks != null">remarks = #{remarks},</if>
<if test="delFlag != null">del_flag = #{delFlag},</if> <if test="delFlag != null">del_flag = #{delFlag},</if>
<if test="createBy != null and createBy != ''">create_by = #{createBy},</if> <if test="createBy != null and createBy != ''">create_by = #{createBy},</if>

View File

@ -19,10 +19,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="submitTime" column="submit_time" />
<result property="fromData" column="from_data" />
</resultMap> </resultMap>
<sql id="selectRzInterviewerVo"> <sql id="selectRzInterviewerVo">
select id, name, phone, post, content, address, interview_date, yt_flag, remarks, del_flag, create_by, create_time, update_by, update_time from rz_interviewer select id, name, phone, post, content, address, interview_date, yt_flag, remarks, del_flag, create_by, create_time, update_by, update_time,submit_time, from_data from rz_interviewer
</sql> </sql>
<select id="selectRzInterviewerList" parameterType="RzInterviewer" resultMap="RzInterviewerResult"> <select id="selectRzInterviewerList" parameterType="RzInterviewer" resultMap="RzInterviewerResult">
@ -33,6 +35,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="post != null and post != ''"> and post like concat('%', #{post}, '%')</if> <if test="post != null and post != ''"> and post like concat('%', #{post}, '%')</if>
<if test="content != null and content != ''"> and content like concat('%', #{content}, '%')</if> <if test="content != null and content != ''"> and content like concat('%', #{content}, '%')</if>
<if test="ytFlag != null and ytFlag != ''"> and yt_flag = #{ytFlag}</if> <if test="ytFlag != null and ytFlag != ''"> and yt_flag = #{ytFlag}</if>
<if test="submitTime != null and submitTime != ''"> and submit_time = #{submitTime}</if>
<if test="fromData != null and fromData != ''"> and from_data = #{fromData}</if>
</where> </where>
</select> </select>
@ -57,6 +61,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="createTime != null">create_time,</if> <if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if> <if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if> <if test="updateTime != null">update_time,</if>
<if test="submitTime != null">submit_time,</if>
<if test="fromData != null">from_data,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="name != null">#{name},</if> <if test="name != null">#{name},</if>
@ -72,6 +78,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="createTime != null">#{createTime},</if> <if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if> <if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if> <if test="updateTime != null">#{updateTime},</if>
<if test="submitTime != null">#{submitTime},</if>
<if test="fromData != null">#{fromData},</if>
</trim> </trim>
</insert> </insert>
@ -91,6 +99,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="createTime != null">create_time = #{createTime},</if> <if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if> <if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="submitTime != null">submit_time = #{submitTime},</if>
<if test="fromData != null">from_data = #{fromData},</if>
</trim> </trim>
where id = #{id} where id = #{id}
</update> </update>

View File

@ -18,10 +18,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="isOverTime" column="is_over_time" />
</resultMap> </resultMap>
<sql id="selectDeptVo"> <sql id="selectDeptVo">
select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.leader, d.phone,d.status, d.del_flag, d.create_by, d.create_time select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.leader, d.phone,d.status, d.del_flag,d.is_over_time, d.create_by, d.create_time
from sys_dept d from sys_dept d
</sql> </sql>
@ -40,6 +41,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null and status != ''"> <if test="status != null and status != ''">
AND status = #{status} AND status = #{status}
</if> </if>
<if test="isOverTime != null and status != ''">
AND is_over_time = #{isOverTime}
</if>
<!-- 数据范围过滤 --> <!-- 数据范围过滤 -->
${params.dataScope} ${params.dataScope}
order by d.parent_id order by d.parent_id
@ -57,7 +61,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<select id="selectDeptById" parameterType="Long" resultMap="SysDeptResult"> <select id="selectDeptById" parameterType="Long" resultMap="SysDeptResult">
select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.leader, d.phone, d.status, select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.leader, d.phone, d.status,d.is_over_time,
(select dept_name from sys_dept where dept_id = d.parent_id) parent_name (select dept_name from sys_dept where dept_id = d.parent_id) parent_name
from sys_dept d from sys_dept d
where d.dept_id = #{deptId} where d.dept_id = #{deptId}
@ -94,6 +98,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="leader != null and leader != ''">leader,</if> <if test="leader != null and leader != ''">leader,</if>
<if test="phone != null and phone != ''">phone,</if> <if test="phone != null and phone != ''">phone,</if>
<if test="status != null">status,</if> <if test="status != null">status,</if>
<if test="isOverTime != null">is_over_time,</if>
<if test="createBy != null and createBy != ''">create_by,</if> <if test="createBy != null and createBy != ''">create_by,</if>
create_time create_time
)values( )values(
@ -104,6 +109,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="leader != null and leader != ''">#{leader},</if> <if test="leader != null and leader != ''">#{leader},</if>
<if test="phone != null and phone != ''">#{phone},</if> <if test="phone != null and phone != ''">#{phone},</if>
<if test="status != null">#{status},</if> <if test="status != null">#{status},</if>
<if test="isOverTime != null">#{isOverTime},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if> <if test="createBy != null and createBy != ''">#{createBy},</if>
sysdate() sysdate()
) )
@ -118,6 +124,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="leader != null">leader = #{leader},</if> <if test="leader != null">leader = #{leader},</if>
<if test="phone != null">phone = #{phone},</if> <if test="phone != null">phone = #{phone},</if>
<if test="status != null and status != ''">status = #{status},</if> <if test="status != null and status != ''">status = #{status},</if>
<if test="isOverTime != null">is_over_time = #{isOverTime},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
update_time = sysdate() update_time = sysdate()
</set> </set>

View File

@ -41,6 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="specialDeduction" column="special_deduction" /> <result property="specialDeduction" column="special_deduction" />
<result property="totalWages" column="total_wages" /> <result property="totalWages" column="total_wages" />
<result property="aggregatePersonalIncomeTax" column="aggregate_personal_income_tax" /> <result property="aggregatePersonalIncomeTax" column="aggregate_personal_income_tax" />
<result property="salesCommission" column="sales_commission" />
<result property="remarks" column="remarks" /> <result property="remarks" column="remarks" />
<result property="delFlag" column="del_flag" /> <result property="delFlag" column="del_flag" />
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by" />
@ -196,6 +197,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="specialDeduction != null">special_deduction = #{specialDeduction},</if> <if test="specialDeduction != null">special_deduction = #{specialDeduction},</if>
<if test="totalWages != null">total_wages = #{totalWages},</if> <if test="totalWages != null">total_wages = #{totalWages},</if>
<if test="aggregatePersonalIncomeTax != null">aggregate_personal_income_tax = #{aggregatePersonalIncomeTax},</if> <if test="aggregatePersonalIncomeTax != null">aggregate_personal_income_tax = #{aggregatePersonalIncomeTax},</if>
<if test="salesCommission != null">sales_commission = #{salesCommission},</if>
<if test="remarks != null">remarks = #{remarks},</if> <if test="remarks != null">remarks = #{remarks},</if>
<if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if> <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
<if test="createBy != null and createBy != ''">create_by = #{createBy},</if> <if test="createBy != null and createBy != ''">create_by = #{createBy},</if>