doc/20260116_create_table_staff_contract.sql
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ # åå·¥åå表 drop table if exists staff_contract; create table staff_contract ( id bigint auto_increment primary key, staff_on_job_id bigint not null default 0 comment 'åå·¥å¨èid', contract_start_time datetime null comment 'ååå¼å§æ¶é´', contract_end_time datetime null comment 'ååç»ææ¶é´', contract_term int not null default 0 comment 'ååæé', tenant_id bigint not null comment 'ç§æ·id', create_time datetime null comment 'å½å ¥æ¶é´', update_time datetime null comment 'æ´æ°æ¶é´' ); doc/20260116_create_table_staff_leave.sql
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ #å工离è表 drop table if exists staff_join_leave_record; drop table if exists staff_leave; create table staff_leave ( id bigint auto_increment primary key, staff_on_job_id bigint not null default 0 comment 'åå·¥å¨èid', reason varchar(255) null comment '离èåå ', remark text null comment '离è夿³¨', tenant_id bigint not null comment 'ç§æ·id', create_time datetime null comment 'å½å ¥æ¶é´', update_time datetime null comment 'æ´æ°æ¶é´' ); src/main/java/com/ruoyi/staff/controller/StaffContractController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,34 @@ package com.ruoyi.staff.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.staff.pojo.StaffContract; import com.ruoyi.staff.service.StaffContractService; import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; /** * åå·¥å°è´¦/åå管ç */ @RestController @RequestMapping("/staff/staffContract") @Api(tags = "åå·¥å°è´¦/åå管ç") public class StaffContractController { @Resource private StaffContractService staffContractService; /** * åå·¥ååå页æ¥è¯¢ * @param page * @param staffContract * @return */ @GetMapping("/listPage") public AjaxResult staffContractListPage(Page page, StaffContract staffContract) { return AjaxResult.success(staffContractService.staffContractListPage(page, staffContract)); } } src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java
@@ -4,6 +4,7 @@ import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.staff.dto.StaffOnJobDto; import com.ruoyi.staff.pojo.StaffJoinLeaveRecord; import com.ruoyi.staff.pojo.StaffOnJob; import com.ruoyi.staff.service.IStaffJoinLeaveRecordService; @@ -52,14 +53,48 @@ } /** * å¨èå工详æ * @param staffNo * æ°å¢å ¥è * @param staffOnJob * @return */ @GetMapping("/staffNo") public AjaxResult staffOnJobDetail(String staffNo) { return AjaxResult.success(staffOnJobService.staffOnJobDetail(staffNo)); @PostMapping("") public AjaxResult add(@RequestBody StaffOnJobDto staffOnJob) { return AjaxResult.success(staffOnJobService.add(staffOnJob)); } /** * æ´æ°å ¥èä¿¡æ¯ * @param staffOnJobDto * @return */ @PutMapping("/{id}") public AjaxResult update(@PathVariable("id") Long id, @RequestBody StaffOnJobDto staffOnJobDto) { return AjaxResult.success(staffOnJobService.update(id, staffOnJobDto)); } /** * å é¤å ¥è * @param ids * @return */ @DeleteMapping("/del") public AjaxResult delStaffOnJobs(@RequestBody List<Integer> ids) { if(CollectionUtils.isEmpty(ids)){ return AjaxResult.error("è¯·éæ©è³å°ä¸æ¡æ°æ®"); } return AjaxResult.success(staffOnJobService.delStaffOnJobs(ids)); } /** * å¨èå工详æ * @param id * @return */ @GetMapping("/{id}") public AjaxResult staffJoinLeaveRecordDetail(@PathVariable("id") Long id) { return AjaxResult.success(staffOnJobService.staffOnJobDetail(id)); } /** * å¨èåå·¥å¯¼å ¥ */ src/main/java/com/ruoyi/staff/dto/StaffContractDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,9 @@ package com.ruoyi.staff.dto; import com.ruoyi.staff.pojo.StaffContract; import lombok.Data; @Data public class StaffContractDto extends StaffContract { private String staffName; } src/main/java/com/ruoyi/staff/dto/StaffOnJobDto.java
@@ -1,10 +1,26 @@ package com.ruoyi.staff.dto; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.framework.aspectj.lang.annotation.Excel; import com.ruoyi.staff.pojo.StaffJoinLeaveRecord; import com.ruoyi.staff.pojo.StaffOnJob; import lombok.Data; import java.util.Date; @Data public class StaffOnJobDto extends StaffOnJob { @Excel(name = "å²ä½",sort = 7) private String postName; @Excel(name = "ååå¹´é") private String contractTerm; @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "ååå¼å§æ¥æ", width = 30, dateFormat = "yyyy-MM-dd") private Date contractStartTime; @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "ååç»ææ¥æ", width = 30, dateFormat = "yyyy-MM-dd") private Date contractEndTime; } src/main/java/com/ruoyi/staff/mapper/StaffContractMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,25 @@ package com.ruoyi.staff.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.staff.dto.StaffContractDto; import com.ruoyi.staff.dto.StaffOnJobDto; import com.ruoyi.staff.pojo.StaffContract; import com.ruoyi.staff.pojo.StaffOnJob; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; @Mapper public interface StaffContractMapper extends BaseMapper<StaffContract> { /** * åå·¥ååå页æ¥è¯¢ * @param page * @param staffContract * @return */ IPage<StaffContractDto> staffContractListPage(Page page, @Param("staffContract") StaffContract staffContract); } src/main/java/com/ruoyi/staff/mapper/StaffLeaveMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,10 @@ package com.ruoyi.staff.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.staff.pojo.StaffLeave; import org.apache.ibatis.annotations.Mapper; @Mapper public interface StaffLeaveMapper extends BaseMapper<StaffLeave> { } src/main/java/com/ruoyi/staff/mapper/StaffOnJobMapper.java
@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.staff.dto.StaffOnJobDto; import com.ruoyi.staff.pojo.StaffJoinLeaveRecord; import com.ruoyi.staff.pojo.StaffOnJob; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -16,5 +15,5 @@ IPage<StaffOnJobDto> staffOnJobListPage(Page page, @Param("staffOnJob") StaffOnJob staffOnJob); List<StaffOnJob> staffOnJobList(@Param("staffOnJob") StaffOnJob staffOnJob); List<StaffOnJobDto> staffOnJobList(@Param("staffOnJob") StaffOnJob staffOnJob); } src/main/java/com/ruoyi/staff/pojo/StaffContract.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,49 @@ package com.ruoyi.staff.pojo; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.framework.aspectj.lang.annotation.Excel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; import java.util.Date; @TableName("staff_contract") @Data public class StaffContract { @ApiModelProperty(value = "åºå·") private Long id; @ApiModelProperty(value = "å¨èåå·¥ID") private Long staffOnJobId; @ApiModelProperty(value = "ååæé") private String contractTerm; @JsonFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "ååå¼å§æ¶é´") private Date contractStartTime; @JsonFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "ååç»ææ¶é´") private Date contractEndTime; @ApiModelProperty(value = "ç§æ·ID") @TableField(fill = FieldFill.INSERT) private Long tenantId; @ApiModelProperty(value = "å建æ¶é´") @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty(value = "æ´æ°æ¶é´") @TableField(fill = FieldFill.UPDATE) private LocalDateTime updateTime; } src/main/java/com/ruoyi/staff/pojo/StaffLeave.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,35 @@ package com.ruoyi.staff.pojo; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; import java.util.Date; @TableName("staff_leave") @Data public class StaffLeave { @ApiModelProperty(value = "åºå·") private Long id; @ApiModelProperty(value = "å¨èåå·¥ID") private Long staffOnJobId; @ApiModelProperty(value = "ç§æ·ID") @TableField(fill = FieldFill.INSERT) private Long tenantId; @ApiModelProperty(value = "å建æ¶é´") @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty(value = "æ´æ°æ¶é´") @TableField(fill = FieldFill.UPDATE) private LocalDateTime updateTime; } src/main/java/com/ruoyi/staff/pojo/StaffOnJob.java
@@ -31,98 +31,97 @@ /** * ç¶æ(0:离è;1:å¨è) */ @Excel(name = "ç¶æ",readConverterExp = "0=离è,1=å¨è") @Excel(name = "ç¶æ", readConverterExp = "0=离è,1=å¨è", sort = 1) private Integer staffState; /** * åå·¥ç¼å· */ @Excel(name = "åå·¥ç¼å·", type = Excel.Type.EXPORT, cellType = Excel.ColumnType.STRING) @Excel(name = "åå·¥ç¼å·", type = Excel.Type.EXPORT, cellType = Excel.ColumnType.STRING, sort = 2) private String staffNo; /** * åå·¥å§å */ @Excel(name = "åå·¥å§å") @Excel(name = "åå·¥å§å", sort = 3) private String staffName; /** * æ§å« */ @Excel(name = "æ§å«") @Excel(name = "æ§å«", sort = 4) private String sex; /** * ç±è´¯ */ @Excel(name = "ç±è´¯") @Excel(name = "ç±è´¯", sort = 5) private String nativePlace; /** * å²ä½ */ @Excel(name = "å²ä½") private Integer sysPostId; /** * å®¶åºä½å */ @Excel(name = "å®¶åºä½å") @Excel(name = "å®¶åºä½å", sort = 6) private String adress; /** * 第ä¸å¦å */ @Excel(name = "第ä¸å¦å") @Excel(name = "第ä¸å¦å", sort = 8) private String firstStudy; /** * ä¸ä¸ */ @Excel(name = "ä¸ä¸") @Excel(name = "ä¸ä¸", sort = 9) private String profession; /** * 身份è¯å·ç */ @Excel(name = "身份è¯å·ç ") @Excel(name = "身份è¯å·ç ", sort = 10) private String identityCard; /** * å¹´é¾ */ @Excel(name = "å¹´é¾") @Excel(name = "å¹´é¾", sort = 11) private String age; /** * èç³»çµè¯ */ @Excel(name = "èç³»çµè¯") @Excel(name = "èç³»çµè¯", sort = 12) private String phone; /** * ç´§æ¥è系人 */ @Excel(name = "ç´§æ¥è系人") @Excel(name = "ç´§æ¥è系人", sort = 13) private String emergencyContact; /** * ç´§æ¥è系人çµè¯ */ @Excel(name = "ç´§æ¥è系人çµè¯") @Excel(name = "ç´§æ¥è系人çµè¯", sort = 14) private String emergencyContactPhone; /** * ååå¹´é */ @Excel(name = "ååå¹´é") @Excel(name = "ååå¹´é", sort = 15) private String contractTerm; /** * ååå°ææ¥æ */ @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "ååå°ææ¥æ", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "ååå°ææ¥æ", width = 30, dateFormat = "yyyy-MM-dd", sort = 16) @DateTimeFormat(pattern = "yyyy-MM-dd") private Date contractExpireTime; @@ -130,7 +129,7 @@ * ç»æè¯ç¨æ¶é´ */ @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "ç»æè¯ç¨æ¶é´", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "ç»æè¯ç¨æ¶é´", width = 30, dateFormat = "yyyy-MM-dd", sort = 17) @DateTimeFormat(pattern = "yyyy-MM-dd") private Date trialEndDate; @@ -138,7 +137,7 @@ * å¼å§è¯ç¨æ¥æ */ @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "å¼å§è¯ç¨æ¥æ", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "å¼å§è¯ç¨æ¥æ", width = 30, dateFormat = "yyyy-MM-dd", sort = 18) @DateTimeFormat(pattern = "yyyy-MM-dd") private Date trialStartDate; @@ -146,7 +145,7 @@ * ç¾è®¢æ¶é´ */ @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "ç¾è®¢æ¶é´", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "ç¾è®¢æ¶é´", width = 30, dateFormat = "yyyy-MM-dd", sort = 19) @DateTimeFormat(pattern = "yyyy-MM-dd") private Date signDate; @@ -159,7 +158,7 @@ /** * è¯ç¨æå·¥èµ */ @Excel(name = "è¯ç¨æå·¥èµ") @Excel(name = "è¯ç¨æå·¥èµ", sort = 20) private BigDecimal proSalary; /** @@ -171,9 +170,8 @@ /** * 夿³¨ï¼ç¦å©å¾ éï¼ */ @Excel(name = "夿³¨ï¼ç¦å©å¾ éï¼") @Excel(name = "夿³¨ï¼ç¦å©å¾ éï¼", sort = 21) private String remark; @ApiModelProperty(value = "å建æ¶é´") src/main/java/com/ruoyi/staff/service/IStaffOnJobService.java
@@ -6,6 +6,7 @@ import com.ruoyi.staff.dto.StaffOnJobDto; import com.ruoyi.staff.pojo.StaffJoinLeaveRecord; import com.ruoyi.staff.pojo.StaffOnJob; import org.bouncycastle.crypto.digests.LongDigest; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; @@ -16,7 +17,13 @@ IPage<StaffOnJobDto> staffOnJobListPage(Page page, StaffOnJob staffOnJob); List<StaffJoinLeaveRecord> staffOnJobDetail(String staffNo); StaffOnJobDto staffOnJobDetail(Long id); int add(StaffOnJobDto staffOnJob); int update(Long id, StaffOnJobDto staffOnJob); int delStaffOnJobs(List<Integer> ids); void staffOnJobExport(HttpServletResponse response, StaffOnJob staffOnJob); src/main/java/com/ruoyi/staff/service/StaffContractService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,19 @@ package com.ruoyi.staff.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.staff.dto.StaffContractDto; import com.ruoyi.staff.dto.StaffOnJobDto; import com.ruoyi.staff.pojo.StaffContract; import com.ruoyi.staff.pojo.StaffJoinLeaveRecord; import com.ruoyi.staff.pojo.StaffOnJob; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.util.List; public interface StaffContractService extends IService<StaffContract> { IPage<StaffContractDto> staffContractListPage(Page page, StaffContract staffContract); } src/main/java/com/ruoyi/staff/service/StaffLeaveService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,7 @@ package com.ruoyi.staff.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.staff.pojo.StaffLeave; public interface StaffLeaveService extends IService<StaffLeave> { } src/main/java/com/ruoyi/staff/service/impl/StaffContractServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package com.ruoyi.staff.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.staff.dto.StaffContractDto; import com.ruoyi.staff.mapper.StaffContractMapper; import com.ruoyi.staff.pojo.StaffContract; import com.ruoyi.staff.service.StaffContractService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; @AllArgsConstructor @Service public class StaffContractServiceImpl extends ServiceImpl<StaffContractMapper, StaffContract> implements StaffContractService { private StaffContractMapper staffContractMapper; @Override public IPage<StaffContractDto> staffContractListPage(Page page, StaffContract staffContract) { return staffContractMapper.staffContractListPage(page,staffContract); } } src/main/java/com/ruoyi/staff/service/impl/StaffLeaveServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,15 @@ package com.ruoyi.staff.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.staff.mapper.StaffLeaveMapper; import com.ruoyi.staff.service.StaffLeaveService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import com.ruoyi.staff.pojo.StaffLeave; @AllArgsConstructor @Service public class StaffLeaveServiceImpl extends ServiceImpl<StaffLeaveMapper, StaffLeave> implements StaffLeaveService { } src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
@@ -1,40 +1,44 @@ package com.ruoyi.staff.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.dto.WordDateDto; import com.ruoyi.project.system.domain.SysPost; import com.ruoyi.project.system.mapper.SysPostMapper; import com.ruoyi.staff.dto.StaffOnJobDto; import com.ruoyi.staff.mapper.StaffContractMapper; import com.ruoyi.staff.mapper.StaffJoinLeaveRecordMapper; import com.ruoyi.staff.mapper.StaffLeaveMapper; import com.ruoyi.staff.mapper.StaffOnJobMapper; import com.ruoyi.staff.pojo.StaffContract; import com.ruoyi.staff.pojo.StaffJoinLeaveRecord; import com.ruoyi.staff.pojo.StaffLeave; import com.ruoyi.staff.pojo.StaffOnJob; import com.ruoyi.staff.service.IStaffJoinLeaveRecordService; import com.ruoyi.staff.service.IStaffOnJobService; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.math.BigDecimal; import java.nio.charset.StandardCharsets; import java.time.Instant; import java.time.LocalDate; import java.time.ZoneId; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.*; import static com.ruoyi.common.enums.StaffJoinLeaveRecordDimissionReason.StaffJoinLeaveRecordDimissionReasonOther; @AllArgsConstructor @Service @@ -43,7 +47,12 @@ private StaffOnJobMapper staffOnJobMapper; private SysPostMapper sysPostMapper; private StaffJoinLeaveRecordMapper staffJoinLeaveRecordMapper; private StaffContractMapper staffContractMapper; private StaffLeaveMapper staffLeaveMapper; //å¨èåå·¥å°è´¦å页æ¥è¯¢ @Override @@ -51,19 +60,93 @@ return staffOnJobMapper.staffOnJobListPage(page,staffOnJob); } //æ°å¢å ¥è @Override @Transactional(rollbackFor = Exception.class) public int add(StaffOnJobDto staffOnJobPrams) { String[] ignoreProperties = {"id"};//æé¤id屿§ // 夿ç¼å·æ¯å¦åå¨ List<StaffOnJob> staffOnJobs = staffOnJobMapper.selectList(Wrappers.<StaffOnJob>lambdaQuery().eq(StaffOnJob::getStaffNo, staffOnJobPrams.getStaffNo())); if (staffOnJobs.size()>0){ throw new BaseException("ç¼å·ä¸º"+staffOnJobPrams.getStaffNo()+"çå工已ç»åå¨,æ æ³æ°å¢!!!"); } // åå»ºå ¥èæ°æ® staffOnJobMapper.insert(staffOnJobPrams); // å建ååè®°å½ StaffContract staffContract = new StaffContract(); staffContract.setStaffOnJobId(staffOnJobPrams.getId()); staffContract.setContractTerm(staffOnJobPrams.getContractTerm()); staffContract.setContractStartTime(staffOnJobPrams.getContractStartTime()); staffContract.setContractEndTime(staffOnJobPrams.getContractEndTime()); return staffContractMapper.insert(staffContract); } //æ´æ°å ¥èä¿¡æ¯ @Override @Transactional(rollbackFor = Exception.class) public int update(Long id, StaffOnJobDto staffOnJobParams) { // å¤æå¯¹è±¡æ¯å¦åå¨ StaffOnJob job = staffOnJobMapper.selectById(id); if (job == null){ throw new BaseException("ç¼å·ä¸º"+staffOnJobParams.getStaffNo()+"çåå·¥ä¸åå¨,æ æ³æ´æ°!!!"); } // æ´æ°åå·¥æ°æ® String[] ignoreProperties = {"id"};//æé¤id屿§ BeanUtils.copyProperties(staffOnJobParams,job,ignoreProperties); staffOnJobMapper.updateById(job); // è·åææ°ååæ°æ®ï¼å¹¶ä¸æ´æ° StaffContract contract = staffContractMapper.selectOne(Wrappers.<StaffContract>lambdaQuery() .eq(StaffContract::getStaffOnJobId, id) .orderByDesc(StaffContract::getId)); if (contract != null){ BeanUtils.copyProperties(staffOnJobParams,contract,ignoreProperties); return staffContractMapper.updateById(contract); } return 0; } //å é¤å ¥è @Override @Transactional(rollbackFor = Exception.class) public int delStaffOnJobs(List<Integer> ids) { // å é¤å ¥èæ°æ® staffOnJobMapper.deleteBatchIds(ids); // å é¤ç¦»èæ°æ® staffLeaveMapper.delete(Wrappers.<StaffLeave>lambdaQuery().in(StaffLeave::getStaffOnJobId, ids)); // å é¤ååæ°æ® return staffContractMapper.delete(Wrappers.<StaffContract>lambdaQuery().in(StaffContract::getStaffOnJobId, ids)); } //å¨èå工详æ @Override public List<StaffJoinLeaveRecord> staffOnJobDetail(String staffNo) { return staffJoinLeaveRecordMapper.selectList(Wrappers.<StaffJoinLeaveRecord>lambdaQuery() .eq(StaffJoinLeaveRecord::getStaffState,1) .eq(StaffJoinLeaveRecord::getStaffNo,staffNo)); public StaffOnJobDto staffOnJobDetail(Long id) { StaffOnJob staffOnJob = staffOnJobMapper.selectById(id); StaffOnJobDto staffOnJobDto = new StaffOnJobDto(); BeanUtils.copyProperties(staffOnJob, staffOnJobDto); // æ¥è¯¢å²ä½åç§° SysPost post = sysPostMapper.selectPostById((long) staffOnJob.getSysPostId()); staffOnJobDto.setPostName(post.getPostName()); // æ¥è¯¢ååä¿¡æ¯ StaffContract contract = staffContractMapper.selectOne(Wrappers.<StaffContract>lambdaQuery() .eq(StaffContract::getStaffOnJobId, staffOnJob.getId()) .orderByDesc(StaffContract::getId)); if (contract != null){ staffOnJobDto.setContractTerm(contract.getContractTerm()); staffOnJobDto.setContractStartTime(contract.getContractStartTime()); staffOnJobDto.setContractEndTime(contract.getContractEndTime()); } return staffOnJobDto; } //å¨èåå·¥å¯¼åº @Override public void staffOnJobExport(HttpServletResponse response, StaffOnJob staffOnJob) { List<StaffOnJob> staffOnJobs = staffOnJobMapper.staffOnJobList(staffOnJob); ExcelUtil<StaffOnJob> util = new ExcelUtil<StaffOnJob>(StaffOnJob.class); List<StaffOnJobDto> staffOnJobs = staffOnJobMapper.staffOnJobList(staffOnJob); ExcelUtil<StaffOnJobDto> util = new ExcelUtil<StaffOnJobDto>(StaffOnJobDto.class); util.exportExcel(response, staffOnJobs, "å¨èåå·¥å°è´¦å¯¼åº"); } src/main/resources/mapper/staff/StaffContractMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,15 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.ruoyi.staff.mapper.StaffContractMapper"> <select id="staffContractListPage" resultType="com.ruoyi.staff.dto.StaffContractDto"> SELECT sc.* FROM staff_contract as sc LEFT JOIN staff_on_job soj ON soj.id = sc.staff_on_job_id where 1=1 <if test="staffContract.staffOnJobId != null"> AND soj.id = #{staffContract.staffOnJobId} </if> </select> </mapper> src/main/resources/mapper/staff/StaffOnJobMapper.xml
@@ -22,12 +22,15 @@ AND contract_expire_time <= DATE_FORMAT(#{staffOnJob.entryDateEnd},'%Y-%m-%d') </if> </select> <select id="staffOnJobList" resultType="com.ruoyi.staff.pojo.StaffOnJob"> <select id="staffOnJobList" resultType="com.ruoyi.staff.dto.StaffOnJobDto"> SELECT * staff_on_job.*, sp.post_name as postName FROM staff_on_job LEFT JOIN sys_post sp ON sp.post_id = staff_on_job.sys_post_id where 1=1 <if test="staffOnJob.staffState != null and staffOnJob.staffState != '' "> <if test="staffOnJob.staffState != null"> AND staff_state = #{staffOnJob.staffState} </if> <if test="staffOnJob.staffName != null and staffOnJob.staffName != '' ">