maven
9 天以前 2154a6777af36576b2da5e969fb5116ce7ccda3e
Merge remote-tracking branch 'origin/dev_New' into dev_New
已添加4个文件
已修改14个文件
已删除1个文件
523 ■■■■ 文件已修改
src/main/java/com/ruoyi/collaborativeApproval/controller/MeetingController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/collaborativeApproval/service/MeetingService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/collaborativeApproval/service/impl/MeetingServiceImpl.java 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/common/enums/StaffJoinLeaveRecordDimissionReason.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/common/enums/StaffLeaveReason.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/staff/controller/StaffLeaveController.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/staff/dto/StaffLeaveDto.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/staff/mapper/StaffLeaveMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/staff/pojo/StaffLeave.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/staff/service/StaffLeaveService.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/staff/service/impl/StaffLeaveServiceImpl.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/staff/StaffLeaveMapper.xml 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/collaborativeApproval/controller/MeetingController.java
@@ -83,8 +83,7 @@
    @PostMapping("/saveMeetingApplication")
    public R saveMeetApplication(@RequestBody MeetApplication meetApplication) {
        meetingService.saveMeetApplication(meetApplication);
        return R.ok();
       return meetingService.saveMeetApplication(meetApplication);
    }
    @PostMapping("/applicationList")
src/main/java/com/ruoyi/collaborativeApproval/service/MeetingService.java
@@ -14,6 +14,7 @@
import com.ruoyi.collaborativeApproval.vo.SearchMeetingDraftVo;
import com.ruoyi.collaborativeApproval.vo.SearchMeetingRoomVo;
import com.ruoyi.collaborativeApproval.vo.SearchMeetingUseVo;
import com.ruoyi.framework.web.domain.R;
import java.util.List;
@@ -42,7 +43,7 @@
// ************申请会议************
    void saveMeetApplication(MeetApplication meetApplication);
    R<Void> saveMeetApplication(MeetApplication meetApplication);
// ************申请审批************
src/main/java/com/ruoyi/collaborativeApproval/service/impl/MeetingServiceImpl.java
@@ -26,6 +26,7 @@
import com.ruoyi.collaborativeApproval.vo.SearchMeetingRoomVo;
import com.ruoyi.collaborativeApproval.vo.SearchMeetingUseVo;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
import com.ruoyi.project.system.service.ISysNoticeService;
@@ -125,42 +126,72 @@
    }
    @Override
    public void saveMeetApplication(MeetApplication meetApplication) {
    public R<Void> saveMeetApplication(MeetApplication meetApplication) {
        meetApplication.setApplicant(SecurityUtils.getUsername());
        //  æ—¶é—´å†²çªæ ¡éªŒ
        LambdaQueryWrapper<MeetApplication> meetApplicationLambdaQueryWrapper = Wrappers.<MeetApplication>lambdaQuery()
                .eq(MeetApplication::getRoomId, meetApplication.getRoomId())
                // å¦‚æžœid不为null则排除自己
                .ne(meetApplication.getId() != null, MeetApplication::getId, meetApplication.getId())
                // æ—¶é—´å†²çªåˆ¤æ–­
                .lt(MeetApplication::getStartTime, meetApplication.getEndTime())
                .gt(MeetApplication::getEndTime, meetApplication.getStartTime());
        Long count = meetApplicationMapper.selectCount(meetApplicationLambdaQueryWrapper);
        if (count > 0) {
            return R.fail("所选会议室在该时间段已有其他会议,请调整时间或更换会议室");
        }
        if (meetApplication.getId() != null) {
            // æ›´æ–°
            meetApplicationMapper.updateById(meetApplication);
        } else {
            // æ–°å¢ž
            meetApplicationMapper.insert(meetApplication);
        }
        if (ObjectUtils.isNotNull(meetApplication.getPublishStatus()) && meetApplication.getPublishStatus() == 1){
        /*会议发布的消息通知*/
        //参会人员id(人员台账和用户表通过人员编号和用户名称(登录账号)做匹配)
        if (Integer.valueOf(1).equals(meetApplication.getPublishStatus())) {
            MeetApplication application = meetApplicationMapper.selectById(meetApplication.getId());
            /*会议发布的消息通知*/
            //参会人员id(人员台账和用户表通过人员编号和用户名称(登录账号)做匹配)
            String cleanStr = application.getParticipants().trim()
            String cleanStr = application.getParticipants()
                    .replaceAll("^\\[|\\]$", "")
                    .trim();
            List<Long> ids = Arrays.stream(cleanStr.split(","))
            List<Long> userIds = Arrays.stream(cleanStr.split(","))
                    .map(String::trim)
                    .filter(s -> !s.isEmpty())
                    .map(s -> {
                        StaffJoinLeaveRecord staffJoinLeaveRecord = staffJoinLeaveRecordMapper.selectById(Long.valueOf(s));
                        List<SysUser> users = userMapper.selectList(Wrappers.<SysUser>lambdaQuery().eq(SysUser::getUserName,staffJoinLeaveRecord.getStaffNo()));
                        if (users.size() > 0){
                            return users.get(0).getUserId();
                        }else return null;
                    .map(Long::valueOf)
                    .map(staffId -> {
                        StaffJoinLeaveRecord record = staffJoinLeaveRecordMapper.selectById(staffId);
                        if (record == null) {
                            return null;
                        }
                        return userMapper.selectOne(
                                Wrappers.<SysUser>lambdaQuery()
                                        .eq(SysUser::getUserName, record.getStaffNo())
                        );
                    })
                    .filter(Objects::nonNull)
                    .map(SysUser::getUserId)
                    .collect(Collectors.toList());
            if (ids.size() > 0) {
                sysNoticeService.simpleNoticeByUser("会议通知",
            if (!userIds.isEmpty()) {
                sysNoticeService.simpleNoticeByUser(
                        "会议通知",
                        "会议主题:" + application.getTitle() + "\n" +
                                "会议时间:" + application.getStartTime() + "-" + application.getEndTime() + "\n" +
                                "发起人:" + application.getApplicant(),
                        ids,
                        userIds,
                        application.getTenantId(),
                        "");
                        ""
                );
            }
        }
        return R.ok();
    }
    @Override
src/main/java/com/ruoyi/common/enums/StaffJoinLeaveRecordDimissionReason.java
ÎļþÒÑɾ³ý
src/main/java/com/ruoyi/common/enums/StaffLeaveReason.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.ruoyi.common.enums;
import lombok.AllArgsConstructor;
/**
 * é™„件记录类型枚举
 *
 */
@AllArgsConstructor
public enum StaffLeaveReason {
    StaffLeaveReasonSalary("salary","薪资待遇"),
    StaffLeaveReasonCareerDevelopment("career_development","职业发展"),
    StaffLeaveReasonWorkEnvironment("work_environment","工作环境"),
    StaffLeaveReasonPersonalReason("personal_reason","个人原因"),
    StaffLeaveReasonOther("other","其他原因");
    private final String code;
    private final String info;
    public String getCode() {
        return code;
    }
    public String getInfo() {
        return info;
    }
}
src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
@@ -65,6 +65,7 @@
            productProcessRouteItem.setProcessId(processRouteItem.getProcessId());
            productProcessRouteItem.setProductOrderId(productOrder.getId());
            productProcessRouteItem.setProductRouteId(productProcessRoute.getId());
            productProcessRouteItem.setDragSort(processRouteItem.getDragSort());
            int insert = productProcessRouteItemMapper.insert(productProcessRouteItem);
            if (insert > 0) {
                // æŸ¥è¯¢ä»Šæ—¥å·²å­˜åœ¨çš„æœ€å¤§å·¥å•号
@@ -90,7 +91,8 @@
                ProductWorkOrder productWorkOrder = new ProductWorkOrder();
                productWorkOrder.setProductProcessRouteItemId(productProcessRouteItem.getId());
                productWorkOrder.setProductOrderId(productOrder.getId());
                productWorkOrder.setPlanQuantity(productOrder.getQuantity());
                ProductOrder order = productOrderMapper.selectById(productOrder);
                productWorkOrder.setPlanQuantity(order.getQuantity());
                productWorkOrder.setWorkOrderNo(workOrderNoStr);
                productWorkOrder.setStatus(1);
                productWorkOrderMapper.insert(productWorkOrder);
src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -198,10 +198,12 @@
            handleSalesLedgerProducts(purchaseLedger.getId(), productList, purchaseLedgerDto.getType());
        }
        //新增原材料检验
        for (SalesLedgerProduct saleProduct : productList) {
            //是否推送质检,如果true就添加
            if (saleProduct.getIsChecked()) {
                addQualityInspect(purchaseLedger, saleProduct);
        if (productList != null) {
            for (SalesLedgerProduct saleProduct : productList) {
                //是否推送质检,如果true就添加
                if (saleProduct.getIsChecked()) {
                    addQualityInspect(purchaseLedger, saleProduct);
                }
            }
        }
        // 5. è¿ç§»ä¸´æ—¶æ–‡ä»¶åˆ°æ­£å¼ç›®å½•
@@ -217,7 +219,7 @@
        qualityInspect.setInspectType(0);
        qualityInspect.setSupplier(purchaseLedger.getSupplierName());
        qualityInspect.setPurchaseLedgerId(purchaseLedger.getId());
        qualityInspect.setProductId(saleProduct.getId());
        qualityInspect.setProductId(saleProduct.getProductId());
        qualityInspect.setProductName(saleProduct.getProductCategory());
        qualityInspect.setModel(saleProduct.getSpecificationModel());
        qualityInspect.setProductModelId(saleProduct.getProductModelId());
src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
@@ -88,7 +88,7 @@
            BigDecimal stockQuantity = stockUtils.getStockQuantity(item.getProductModelId()).get("stockQuantity");
            if(stockQuantity != null) {
//                ProcurementPageDtoCopy procurementDtoCopy = result.getRecords().get(0);
                if (item.getQuantity().compareTo(stockQuantity) >= 0 && item.getApproveStatus() == 0) {
                if (item.getQuantity().compareTo(stockQuantity) <= 0 && item.getApproveStatus() == 0) {
                    item.setApproveStatus(1);
                    salesLedgerProductService.addOrUpdateSalesLedgerProduct(item);
                }
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -291,6 +291,7 @@
                productProcessRouteItem.setProcessId(processRouteItem.getProcessId());
                productProcessRouteItem.setProductOrderId(productOrder.getId());
                productProcessRouteItem.setProductRouteId(productProcessRoute.getId());
                productProcessRouteItem.setDragSort(processRouteItem.getDragSort());
                int insert = productProcessRouteItemMapper.insert(productProcessRouteItem);
                if (insert > 0) {
                    // æŸ¥è¯¢ä»Šæ—¥å·²å­˜åœ¨çš„æœ€å¤§å·¥å•号
src/main/java/com/ruoyi/staff/controller/StaffLeaveController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
package com.ruoyi.staff.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.staff.dto.StaffLeaveDto;
import com.ruoyi.staff.pojo.StaffJoinLeaveRecord;
import com.ruoyi.staff.service.StaffLeaveService;
import io.swagger.annotations.Api;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
 * å‘˜å·¥ç¦»èŒ
 */
@RestController
@RequestMapping("/staff/staffLeave")
@Api(tags = "员工离职")
public class StaffLeaveController {
    @Resource
    private StaffLeaveService staffLeaveService;
    /**
     * æ–°å¢žç¦»èŒåˆ†é¡µæŸ¥è¯¢
     * @param page
     * @param staffLeaveDto
     * @return
     */
    @GetMapping("/listPage")
    public AjaxResult staffLeaveListPage(Page page, StaffLeaveDto staffLeaveDto) {
        return AjaxResult.success(staffLeaveService.staffLeaveListPage(page, staffLeaveDto));
    }
    /**
     * æ–°å¢žç¦»èŒ
     * @param staffLeaveDto
     * @return
     */
    @PostMapping("")
    public AjaxResult add(@RequestBody StaffLeaveDto staffLeaveDto) {
        return AjaxResult.success(staffLeaveService.add(staffLeaveDto));
    }
    /**
     * æ›´æ–°ç¦»èŒä¿¡æ¯
     * @param id
     * @param staffLeaveDto
     * @return
     */
    @PutMapping("/{id}")
    public AjaxResult update(@PathVariable("id") Long id, @RequestBody StaffLeaveDto staffLeaveDto) {
        return AjaxResult.success(staffLeaveService.update(id, staffLeaveDto));
    }
    /**
     * åˆ é™¤å…¥èŒ
     * @param ids
     * @return
     */
    @DeleteMapping("/del")
    public AjaxResult del(@RequestBody List<Integer> ids) {
        if(CollectionUtils.isEmpty(ids)){
            return AjaxResult.error("请选择至少一条数据");
        }
        return AjaxResult.success(staffLeaveService.del(ids));
    }
    /**
     * ç¦»èŒå¯¼å‡º
     * @param staffLeaveDto
     */
    @PostMapping("/export")
    public void export(HttpServletResponse response, StaffLeaveDto staffLeaveDto) {
        staffLeaveService.export(response, staffLeaveDto);
    }
}
src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java
@@ -25,7 +25,7 @@
 */
@RestController
@RequestMapping("/staff/staffOnJob")
@Api(tags = "员工台账/合同管理")
@Api(tags = "员工台账")
public class StaffOnJobController {
    @Resource
@@ -91,7 +91,7 @@
     * @return
     */
    @GetMapping("/{id}")
    public AjaxResult staffJoinLeaveRecordDetail(@PathVariable("id") Long id) {
    public AjaxResult staffOnJobDetail(@PathVariable("id") Long id) {
        return AjaxResult.success(staffOnJobService.staffOnJobDetail(id));
    }
src/main/java/com/ruoyi/staff/dto/StaffLeaveDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,92 @@
package com.ruoyi.staff.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.staff.pojo.StaffLeave;
import lombok.Data;
import java.util.Date;
@Data
public class StaffLeaveDto extends StaffLeave {
    @Excel(name = "状态", readConverterExp = "0=离职,1=在职", sort = 1)
    private Integer staffState;
    /**
     * å‘˜å·¥ç¼–号
     */
    @Excel(name = "员工编号", type = Excel.Type.EXPORT, cellType = Excel.ColumnType.STRING, sort = 2)
    private String staffNo;
    /**
     * å‘˜å·¥å§“名
     */
    @Excel(name = "员工姓名", sort = 3)
    private String staffName;
    /**
     * æ€§åˆ«
     */
    @Excel(name = "性别", sort = 4)
    private String sex;
    /**
     * ç±è´¯
     */
    @Excel(name = "籍贯", sort = 5)
    private String nativePlace;
    /**
     * å®¶åº­ä½å€
     */
    @Excel(name = "家庭住址", sort = 6)
    private String adress;
    /**
     * å²—位
     */
    @Excel(name = "岗位",sort = 7)
    private String postName;
    /**
     * ç¬¬ä¸€å­¦åކ
     */
    @Excel(name = "第一学历", sort = 8)
    private String firstStudy;
    /**
     * ä¸“业
     */
    @Excel(name = "专业", sort = 9)
    private String profession;
    /**
     * èº«ä»½è¯å·ç 
     */
    @Excel(name = "身份证号码", sort = 10)
    private String identityCard;
    /**
     * å¹´é¾„
     */
    @Excel(name = "年龄", sort = 11)
    private String age;
    /**
     * è”系电话
     */
    @Excel(name = "联系电话", sort = 12)
    private String phone;
    /**
     * ç´§æ€¥è”系人
     */
    @Excel(name = "紧急联系人", sort = 13)
    private String emergencyContact;
    /**
     * ç´§æ€¥è”系人电话
     */
    @Excel(name = "紧急联系人电话", sort = 14)
    private String emergencyContactPhone;
}
src/main/java/com/ruoyi/staff/mapper/StaffLeaveMapper.java
@@ -1,10 +1,21 @@
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.StaffLeaveDto;
import com.ruoyi.staff.dto.StaffOnJobDto;
import com.ruoyi.staff.pojo.StaffLeave;
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 StaffLeaveMapper extends BaseMapper<StaffLeave> {
    IPage<StaffLeaveDto> staffLeaveListPage(Page page, @Param("c") StaffLeaveDto staffLeaveDto);
    List<StaffLeaveDto> staffLeaveList(@Param("c") StaffLeaveDto staffLeaveDto);
}
src/main/java/com/ruoyi/staff/pojo/StaffLeave.java
@@ -21,6 +21,12 @@
    @ApiModelProperty(value = "在职员工ID")
    private Long staffOnJobId;
    @ApiModelProperty(value = "离职原因")
    private String reason;
    @ApiModelProperty(value = "离职备注")
    private String remark;
    @ApiModelProperty(value = "租户ID")
    @TableField(fill = FieldFill.INSERT)
    private Long tenantId;
src/main/java/com/ruoyi/staff/service/StaffLeaveService.java
@@ -1,7 +1,34 @@
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.StaffLeaveDto;
import com.ruoyi.staff.dto.StaffOnJobDto;
import com.ruoyi.staff.pojo.StaffJoinLeaveRecord;
import com.ruoyi.staff.pojo.StaffLeave;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
public interface StaffLeaveService extends IService<StaffLeave> {
    IPage<StaffLeaveDto> staffLeaveListPage(Page page, StaffLeaveDto staffLeaveDto);
    /**
     * æ–°å¢žç¦»èŒ
     * @param staffLeaveDto
     * @return
     */
    int add(StaffLeaveDto staffLeaveDto);
    /**
     * æ›´æ–°ç¦»èŒä¿¡æ¯
     * @param id
     * @param staffLeaveDto
     * @return
     */
    int update(Long id, StaffLeaveDto staffLeaveDto);
    int del(List<Integer> ids);
    void export(HttpServletResponse response, StaffLeaveDto staffLeaveDto);
}
src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java
@@ -19,13 +19,9 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.function.Function;
import static com.ruoyi.common.enums.StaffJoinLeaveRecordDimissionReason.StaffJoinLeaveRecordDimissionReasonOther;
@Service
@AllArgsConstructor
@@ -83,9 +79,6 @@
            }
            if (staffJoinLeaveRecord.getDimissionReason()==null){
                throw new BaseException("离职原因不能为空!!!");
            }
            if (!StaffJoinLeaveRecordDimissionReasonOther.getCode().equals(staffJoinLeaveRecord.getDimissionReason())){
                staffJoinLeaveRecord.setDimissionRemark("");
            }
        }
        return staffJoinLeaveRecordMapper.insert(staffJoinLeaveRecord);
@@ -179,9 +172,6 @@
            //离职的编辑不会影响在职表
            if (staffJoinLeaveRecord.getDimissionReason()==null){
                throw new BaseException("离职原因不能为空!!!");
            }
            if (!StaffJoinLeaveRecordDimissionReasonOther.getCode().equals(staffJoinLeaveRecord.getDimissionReason())){
                staffJoinLeaveRecord.setDimissionRemark("");
            }
        }
        return staffJoinLeaveRecordMapper.updateById(staffJoinLeaveRecord);
src/main/java/com/ruoyi/staff/service/impl/StaffLeaveServiceImpl.java
@@ -1,15 +1,106 @@
package com.ruoyi.staff.service.impl;
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.staff.dto.StaffLeaveDto;
import com.ruoyi.staff.dto.StaffOnJobDto;
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.StaffOnJob;
import com.ruoyi.staff.service.StaffLeaveService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import com.ruoyi.staff.pojo.StaffLeave;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import static com.ruoyi.common.enums.StaffLeaveReason.StaffLeaveReasonOther;
@AllArgsConstructor
@Service
public class StaffLeaveServiceImpl extends ServiceImpl<StaffLeaveMapper, StaffLeave> implements StaffLeaveService {
    private StaffLeaveMapper staffLeaveMapper;
    private StaffOnJobMapper staffOnJobMapper;
    //新增离职列表分页查询
    @Override
    public IPage<StaffLeaveDto> staffLeaveListPage(Page page, StaffLeaveDto staffLeaveDto) {
        return staffLeaveMapper.staffLeaveListPage(page,staffLeaveDto);
    }
    //新增离职
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int add(StaffLeaveDto staffLeaveDto) {
        // æ ¡éªŒåœ¨èŒå‘˜å·¥æ˜¯å¦å­˜åœ¨
        StaffOnJob staffOnJob = staffOnJobMapper.selectById(staffLeaveDto.getStaffOnJobId());
        if (staffOnJob == null) {
            throw new IllegalArgumentException("员工不存在");
        }
        // æ ¡éªŒå‘˜å·¥æ˜¯å¦ç¦»èŒ
        if (staffOnJob.getStaffState() == 0) {
            throw new IllegalArgumentException("员工已离职");
        }
        // æ–°å¢žç¦»èŒè®°å½•
        StaffLeave staffLeave = new StaffLeave();
        staffLeave.setStaffOnJobId(staffLeaveDto.getStaffOnJobId());
        String reason = staffLeaveDto.getReason();
        if (!StaffLeaveReasonOther.getCode().equals(reason)){
            staffLeave.setRemark("");
        }
        staffLeaveMapper.insert(staffLeave);
        // æ›´æ–°ç¦»èŒçŠ¶æ€ä¸ºç¦»èŒ
        staffOnJob.setStaffState(0);
       return staffOnJobMapper.updateById(staffOnJob);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int update(Long id, StaffLeaveDto staffLeaveDto) {
        // åˆ¤æ–­å¯¹è±¡æ˜¯å¦å­˜åœ¨
        StaffLeave leave = staffLeaveMapper.selectById(id);
        if (leave == null){
            throw new BaseException("该离职记录不存在,无法更新!!!");
        }
        String reason = staffLeaveDto.getReason();
        leave.setReason(reason);
        // æ ¡éªŒç¦»èŒåŽŸå› æ˜¯å¦ä¸ºå…¶ä»–ï¼Œå¦‚æžœæ˜¯å…¶ä»–ï¼Œå¤‡æ³¨èµ‹å€¼
        if (StaffLeaveReasonOther.getCode().equals(reason)){
            leave.setRemark(staffLeaveDto.getRemark());
        } else {
            leave.setRemark("");
        }
        return staffLeaveMapper.updateById(leave);
    }
    //删除离职
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int del(List<Integer> ids) {
        // åˆ é™¤ç¦»èŒæ•°æ®
        return staffLeaveMapper.deleteBatchIds(ids);
    }
    //导出
    @Override
    public void export(HttpServletResponse response, StaffLeaveDto staffLeaveDto) {
        List<StaffLeaveDto> staffLeaves =staffLeaveMapper.staffLeaveList(staffLeaveDto);
        ExcelUtil<StaffLeaveDto> util = new ExcelUtil<StaffLeaveDto>(StaffLeaveDto.class);
        util.exportExcel(response, staffLeaves, "员工离职导出");
    }
}
src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
@@ -38,8 +38,6 @@
import java.time.ZoneId;
import java.util.*;
import static com.ruoyi.common.enums.StaffJoinLeaveRecordDimissionReason.StaffJoinLeaveRecordDimissionReasonOther;
@AllArgsConstructor
@Service
public class StaffOnJobServiceImpl extends ServiceImpl<StaffOnJobMapper, StaffOnJob>  implements IStaffOnJobService {
src/main/resources/mapper/staff/StaffLeaveMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
<?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.StaffLeaveMapper">
    <select id="staffLeaveListPage" resultType="com.ruoyi.staff.dto.StaffLeaveDto">
        SELECT
        staff_leave.*,
        soj.staff_name as staffName,
        soj.staff_state as staffState,
        soj.staff_no as staffNo,
        soj.sex as sex,
        soj.native_place as nativePlace,
        soj.adress as adress,
        soj.first_study as firstStudy,
        soj.profession as profession,
        soj.identity_card as identityCard,
        soj.age as age,
        soj.phone as phone,
        soj.emergency_contact as emergencyContact,
        soj.emergency_contact_phone as emergencyContactPhone,
        sp.post_name as postName
        FROM staff_leave
        LEFT JOIN
        staff_on_job soj ON soj.id = staff_leave.staff_on_job_id
        LEFT JOIN
        sys_post sp ON sp.post_id = soj.sys_post_id
        where 1=1
        <if test="c.staffName != null and c.staffName != '' ">
            AND soj.staff_name LIKE CONCAT('%',#{c.staffName},'%')
        </if>
    </select>
    <select id="staffLeaveList" resultType="com.ruoyi.staff.dto.StaffLeaveDto">
        SELECT
        staff_leave.*,
        soj.staff_name as staffName,
        soj.staff_state as staffState,
        soj.staff_no as staffNo,
        soj.sex as sex,
        soj.native_place as nativePlace,
        soj.adress as adress,
        soj.first_study as firstStudy,
        soj.profession as profession,
        soj.identity_card as identityCard,
        soj.age as age,
        soj.phone as phone,
        soj.emergency_contact as emergencyContact,
        soj.emergency_contact_phone as emergencyContactPhone,
        sp.post_name as postName
        FROM staff_leave
        LEFT JOIN
        staff_on_job soj ON soj.id = staff_leave.staff_on_job_id
        LEFT JOIN
        sys_post sp ON sp.post_id = soj.sys_post_id
        where 1=1
        <if test="c.staffName != null and c.staffName != '' ">
            AND soj.staff_name LIKE CONCAT('%',#{c.staffName},'%')
        </if>
    </select>
</mapper>