cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentCancelServiceImpl.java
@@ -5,20 +5,25 @@
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
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.utils.QueryWrappers;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.system.mapper.UserMapper;
import com.ruoyi.manage.mapper.ManageDocumentCancelMapper;
import com.ruoyi.manage.mapper.ManageDocumentListMapper;
import com.ruoyi.manage.mapper.ManageRecordAuditMapper;
import com.ruoyi.manage.mapper.ManageRecordCancelMapper;
import com.ruoyi.manage.mapper.ManageRecordCheckMapper;
import com.ruoyi.manage.pojo.ManageDocumentCancel;
import com.ruoyi.manage.pojo.ManageDocumentList;
import com.ruoyi.manage.pojo.ManageRecordAudit;
import com.ruoyi.manage.pojo.ManageRecordCancel;
import com.ruoyi.manage.pojo.ManageRecordCheck;
import com.ruoyi.manage.service.ManageDocumentCancelService;
@@ -29,6 +34,7 @@
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.time.LocalDate;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -54,7 +60,8 @@
    @Resource
    private ManageRecordAuditMapper manageRecordAuditMapper;
    @Resource
    private ManageRecordCancelMapper manageRecordCancelMapper;
    @Resource
    private ManageDocumentListMapper manageDocumentListMapper;
@@ -76,6 +83,8 @@
        manageRecordAudit.setDocumentName(manageDocumentCancel.getName());
        manageRecordAudit.setAlterThing("作废");
        manageRecordAudit.setMethod("作废");
        manageRecordAudit.setAlterUser(SecurityUtils.getUserId().intValue());
        manageRecordAudit.setCreateTime(LocalDate.now());
        manageRecordAuditMapper.insert(manageRecordAudit);
        return manageDocumentCancelMapper.insert(manageDocumentCancel);
    }
@@ -83,9 +92,14 @@
    @Override
    public int checkManageDocumentCancel(Integer id, String state) {
        ManageDocumentCancel manageDocumentCancel = manageDocumentCancelMapper.selectById(id);
        if (state.equals("通过")){
        if (manageDocumentCancel == null) {
            throw new ErrorException("申请记录不存在");
        }
        if ("通过".equals(state)){
            //删除文件清单对应数据
            manageDocumentListMapper.delete(Wrappers.<ManageDocumentList>lambdaQuery().eq(ManageDocumentList::getDocumentCode,manageDocumentCancel.getDocumentCode()));
            // 作废通过后自动生成销毁台账,保证“文件作废申请”和“作废文件销毁记录”的数据联动
            createRecordCancelIfAbsent(manageDocumentCancel);
        }
        manageDocumentCancel.setState(state);
        /*新增8.4的文件审批记录*/
@@ -143,4 +157,24 @@
    public int doManageDocumentCancel(ManageDocumentCancel manageDocumentCancel) {
        return manageDocumentCancelMapper.updateById(manageDocumentCancel);
    }
    // 作废申请通过后,在“作废文件销毁记录”生成一条待补全的台账记录
    private void createRecordCancelIfAbsent(ManageDocumentCancel manageDocumentCancel) {
        ManageRecordCancel existing = manageRecordCancelMapper.selectOne(Wrappers.<ManageRecordCancel>lambdaQuery()
                .eq(ObjectUtils.isNotEmpty(manageDocumentCancel.getDocumentCode()), ManageRecordCancel::getDocumentCode, manageDocumentCancel.getDocumentCode())
                .eq(ObjectUtils.isNotEmpty(manageDocumentCancel.getName()), ManageRecordCancel::getDocumentName, manageDocumentCancel.getName())
                .orderByDesc(ManageRecordCancel::getId)
                .last("limit 1"));
        if (existing != null) {
            return;
        }
        ManageRecordCancel manageRecordCancel = new ManageRecordCancel();
        manageRecordCancel.setDocumentCode(manageDocumentCancel.getDocumentCode());
        manageRecordCancel.setDocumentName(manageDocumentCancel.getName());
        manageRecordCancel.setReason(ObjectUtils.isNotEmpty(manageDocumentCancel.getCancelNote())
                ? manageDocumentCancel.getCancelNote() : "文件作废");
        manageRecordCancel.setRemark("由文件作废申请自动生成,请补充销毁数量后批准");
        manageRecordCancel.setCreateUser(manageDocumentCancel.getCreateUser());
        manageRecordCancelMapper.insert(manageRecordCancel);
    }
}