6 天以前 f569e2257372a2f940aace9ad151fd758196eb9a
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -12,6 +12,10 @@
import com.ruoyi.account.mapper.sales.AccountSalesCollectionMapper;
import com.ruoyi.account.pojo.sales.AccountInvoiceApplication;
import com.ruoyi.account.pojo.sales.AccountSalesCollection;
import com.ruoyi.approve.bean.dto.ApprovalInstanceDto;
import com.ruoyi.approve.pojo.ApprovalTemplate;
import com.ruoyi.approve.service.ApprovalInstanceService;
import com.ruoyi.approve.service.ApprovalTemplateService;
import com.ruoyi.basic.enums.ApplicationTypeEnum;
import com.ruoyi.basic.enums.RecordTypeEnum;
import com.ruoyi.basic.mapper.CustomerMapper;
@@ -21,6 +25,7 @@
import com.ruoyi.basic.utils.FileUtil;
import com.ruoyi.common.enums.FileNameType;
import com.ruoyi.common.enums.SaleEnum;
import com.ruoyi.common.enums.TypeEnums;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.EnumUtil;
@@ -125,6 +130,11 @@
    ;
    @Autowired
    private SysUserMapper sysUserMapper;
    @Autowired
    private ApprovalInstanceService approvalInstanceService;
    @Autowired
    private ApprovalTemplateService approvalTemplateService;
    @Override
    public List<SalesLedger> selectSalesLedgerList(SalesLedgerDto salesLedgerDto) {
@@ -578,7 +588,11 @@
                contractNo = generateSalesContractNo(salesLedgerDto.getEntryDate());
            }
            salesLedger.setSalesContractNo(contractNo);
            salesLedger.setApprovalStatus(0);
            salesLedgerMapper.insert(salesLedger);
            // 新增时发起协同审批
            submitApproval(salesLedger);
        } else {
            salesLedgerMapper.updateById(salesLedger);
        }
@@ -625,8 +639,6 @@
            for (SalesLedgerProduct salesLedgerProduct : insertList) {
                salesLedgerProduct.setType(type.getCode());
                salesLedgerProductMapper.insert(salesLedgerProduct);
                // 添加生产数据
                salesLedgerProductServiceImpl.addProductionData(salesLedgerProduct);
            }
        }
    }
@@ -770,4 +782,33 @@
            return totalAmount;
        }
    }
    /**
     * 新增销售台账时发起协同审批
     */
    private void submitApproval(SalesLedger salesLedger) {
        LoginUser loginUser = SecurityUtils.getLoginUser();
        ApprovalTemplate template = approvalTemplateService.getOne(
                new LambdaQueryWrapper<ApprovalTemplate>()
                        .eq(ApprovalTemplate::getBusinessType, TypeEnums.SALES_LEDGER_APPROVAL.getCode())
                        .eq(ApprovalTemplate::getDeleted, 0)
                        .orderByDesc(ApprovalTemplate::getId)
                        .last("limit 1")
        );
        if (template == null) {
            log.warn("销售审批模板不存在,跳过发起审批");
            return;
        }
        ApprovalInstanceDto instanceDto = new ApprovalInstanceDto();
        instanceDto.setTemplateId(template.getId());
        instanceDto.setTemplateName(template.getTemplateName());
        instanceDto.setBusinessId(salesLedger.getId());
        instanceDto.setBusinessType(TypeEnums.SALES_LEDGER_APPROVAL.getCode());
        instanceDto.setCurrentLevel(1);
        instanceDto.setTitle(salesLedger.getSalesContractNo() + "销售审批");
        instanceDto.setApplicantId(loginUser.getUserId());
        instanceDto.setApplicantName(loginUser.getNickName());
        instanceDto.setApplyTime(LocalDateTime.now());
        approvalInstanceService.add(instanceDto);
    }
}