| | |
| | | throw exception(SALE_ORDER_SUBMIT_FAIL_ITEM_EMPTY, saleOrder.getNo()); |
| | | } |
| | | |
| | | // 4. 创建 BPM 流程实例(审批在协同办公完成) |
| | | // 4. 合同转来的销售订单(contractId 非空)无需再走审批: |
| | | // 合同在 CRM 已审批通过,订单内容由合同带入,提交即生效。 |
| | | // 生效后:需要生产的明细自动创建 MPS 流转生产模块;无需生产的明细可直接在仓储生成发货通知单。 |
| | | // 历史合同生成的订单明细可能未维护“是否需要生产”,按系统默认(需要生产)补齐后再生效。 |
| | | if (saleOrder.getContractId() != null) { |
| | | items.stream() |
| | | .filter(item -> item.getNeedProduction() == null) |
| | | .forEach(item -> saleOrderItemMapper.updateById( |
| | | new ErpSaleOrderItemDO().setId(item.getId()).setNeedProduction(1))); |
| | | saleOrderMapper.updateById(new ErpSaleOrderDO() |
| | | .setId(id) |
| | | .setStatus(ErpAuditStatus.APPROVING.getStatus()) |
| | | .setProcessInstanceId("")); |
| | | updateSaleOrderAuditStatus(id, cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum.APPROVE.getStatus()); |
| | | return; |
| | | } |
| | | |
| | | // 5. 创建 BPM 流程实例(审批在协同办公完成) |
| | | // 全局免审批:业务校验通过后直接执行审批通过逻辑,无需流程模型。 |
| | | if (processInstanceApi.isGlobalAutoApprove()) { |
| | | saleOrderMapper.updateById(new ErpSaleOrderDO() |
| | |
| | | .setProcessDefinitionKey(processDefinitionKey) |
| | | .setBusinessKey(String.valueOf(id))); |
| | | |
| | | // 5. 更新销售订单状态为审批中,记录流程实例编号 |
| | | // 6. 更新销售订单状态为审批中,记录流程实例编号 |
| | | saleOrderMapper.updateById(new ErpSaleOrderDO() |
| | | .setId(id) |
| | | .setStatus(ErpAuditStatus.APPROVING.getStatus()) |