gongchunyi
3 天以前 9571956561915d24ebfc0915117e7df24ea3058d
src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -25,8 +25,14 @@
import com.ruoyi.project.system.mapper.SysDeptMapper;
import com.ruoyi.project.system.mapper.SysUserMapper;
import com.ruoyi.project.system.service.ISysNoticeService;
import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
import com.ruoyi.purchase.pojo.PurchaseLedger;
import com.ruoyi.sales.mapper.CommonFileMapper;
import com.ruoyi.sales.mapper.ShippingInfoMapper;
import com.ruoyi.sales.mapper.SalesLedgerMapper;
import com.ruoyi.sales.pojo.SalesLedger;
import com.ruoyi.sales.pojo.CommonFile;
import com.ruoyi.sales.pojo.ShippingInfo;
import com.ruoyi.sales.service.impl.CommonFileServiceImpl;
import lombok.AllArgsConstructor;
import lombok.RequiredArgsConstructor;
@@ -75,6 +81,9 @@
    private  CommonFileServiceImpl commonFileService;
    @Autowired
    private  ISysNoticeService sysNoticeService;
    @Autowired
    private SalesLedgerMapper salesLedgerMapper;
    @Override
    public void addApprove(ApproveProcessVO approveProcessVO) throws Exception {
@@ -157,29 +166,70 @@
        return sysDeptList;
    }
    @Autowired
    private PurchaseLedgerMapper purchaseLedgerMapper;
    @Autowired
    private ShippingInfoMapper shippingInfoMapper;
    @Override
    public IPage<ApproveProcess> listAll(Page page, ApproveProcess approveProcess) {
        IPage<ApproveProcess> approveProcessIPage = approveProcessMapper.listPage(page, approveProcess);
        List<ApproveProcess> records = approveProcessIPage.getRecords();
        for (ApproveProcess record : records) {
            List<CommonFile> commonFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
                    .eq(CommonFile::getCommonId, record.getId())
                    .eq(CommonFile::getType, FileNameType.ApproveProcess.getValue()));
            record.setCommonFileList(commonFiles);
            // 采购审批查询采购附件
            if (approveProcess.getApproveType() == 5) {
                List<CommonFile> commonFiles1 = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
                        .eq(CommonFile::getCommonId, record.getId())
                        .eq(CommonFile::getType, FileNameType.PURCHASE.getValue()));
                record.setCommonFileList(commonFiles1);
            List<CommonFile> allFiles = new ArrayList<>();
            //  采购审批查询
            if (record.getApproveType() == 5) {
                String contractNo = record.getApproveReason();
                PurchaseLedger ledger = purchaseLedgerMapper.selectOne(new LambdaQueryWrapper<PurchaseLedger>()
                        .eq(PurchaseLedger::getPurchaseContractNumber, contractNo)
                        .last("limit 1"));
                if (ledger != null) {
                    allFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
                            .eq(CommonFile::getCommonId, ledger.getId())
                            .eq(CommonFile::getType, FileNameType.PURCHASE.getValue()));
                }
            }
            // 发货审批查询发货附件
            if (approveProcess.getApproveType() == 7) {
                List<CommonFile> commonFiles1 = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
                        .eq(CommonFile::getCommonId, record.getId())
                        .eq(CommonFile::getType, FileNameType.SHIP.getValue()));
                record.setCommonFileList(commonFiles1);
            //  发货审批查询
            else if (record.getApproveType() == 7) {
                String reason = record.getApproveReason(); // 格式为 "xx:CONTRACT_NO"
                if (StringUtils.hasText(reason) && reason.contains(":")) {
                    // 提取冒号后面的标识符 (可能是合同号或发货单号)
                    String identifier = reason.split(":")[1];
                    // 1. 优先尝试找销售台账 (新逻辑:合同号同步审批)
                    SalesLedger ledger = salesLedgerMapper.selectOne(new LambdaQueryWrapper<SalesLedger>()
                            .eq(SalesLedger::getSalesContractNo, identifier)
                            .last("limit 1"));
                    if (ledger != null) {
                        allFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
                                .eq(CommonFile::getCommonId, ledger.getId())
                                .eq(CommonFile::getType, FileNameType.SALE.getValue()));
                    } else {
                        // 2. 回退到旧逻辑:发货单号
                        ShippingInfo shippingInfo = shippingInfoMapper.selectOne(new LambdaQueryWrapper<ShippingInfo>()
                                .eq(ShippingInfo::getShippingNo, identifier)
                                .last("limit 1"));
                        if (shippingInfo != null) {
                            allFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
                                    .eq(CommonFile::getCommonId, shippingInfo.getSalesLedgerId())
                                    .eq(CommonFile::getType, FileNameType.SALE.getValue()));
                        }
                    }
                }
            }
            //  查询审批单自身的附件
            else {
                allFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
                        .eq(CommonFile::getCommonId, record.getId())
                        .eq(CommonFile::getType, FileNameType.ApproveProcess.getValue()));
            }
            record.setCommonFileList(allFiles);
        }
        return approveProcessIPage;
    }