diff --git a/ruoyi-admin/src/main/java/com/ruoyi/financial/mapper/FinancialAccountsPayableMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/financial/mapper/FinancialAccountsPayableMapper.java index 9f7e774d..38c01af1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/financial/mapper/FinancialAccountsPayableMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/financial/mapper/FinancialAccountsPayableMapper.java @@ -84,4 +84,9 @@ public interface FinancialAccountsPayableMapper * 根据关联编号查询财务应付账款 * */ FinancialAccountsPayable selectFinancialAccountsPayableByRelevanceCode(String relevanceCode); + + /** + * 根据关联单号和供应商编号查询财务应付账款 + * */ + FinancialAccountsPayable selectFinancialAccountsPayableByCode(FinancialAccountsPayable payable); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/financial/service/impl/FinancialAccountsPayableServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/financial/service/impl/FinancialAccountsPayableServiceImpl.java index 703f7a12..5f07c9a5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/financial/service/impl/FinancialAccountsPayableServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/financial/service/impl/FinancialAccountsPayableServiceImpl.java @@ -2,14 +2,21 @@ package com.ruoyi.financial.service.impl; import java.math.BigDecimal; import java.util.List; +import java.util.stream.Collectors; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.exception.BusinessException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ShiroUtils; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.purchase.domain.PurchaseOrder; import com.ruoyi.purchase.mapper.PurchaseOrderMapper; +import com.ruoyi.system.domain.OutsourceOrder; +import com.ruoyi.system.domain.OutsourceOrderDetail; import com.ruoyi.system.domain.SysSupplier; +import com.ruoyi.system.domain.Vo.OutsourceOrderVO; +import com.ruoyi.system.mapper.OutsourceOrderDetailMapper; +import com.ruoyi.system.mapper.OutsourceOrderMapper; import com.ruoyi.system.mapper.SysSupplierMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -40,6 +47,12 @@ public class FinancialAccountsPayableServiceImpl implements IFinancialAccountsPa @Autowired private PurchaseOrderMapper purchaseOrderMapper; + @Autowired + private OutsourceOrderMapper outsourceOrderMapper; + + @Autowired + private OutsourceOrderDetailMapper outOrderDetailMapper; + /** * 查询财务应付账款 * @@ -197,6 +210,49 @@ public class FinancialAccountsPayableServiceImpl implements IFinancialAccountsPa throw new BusinessException("关联采购订单更新失败"); } } + else if(relatedCode.startsWith("WW")){ + OutsourceOrder outsourceOrder = outsourceOrderMapper.selectOutsourceOrderByNo(relatedCode); + String supplierCode = payable.getSupplierCode();; + OutsourceOrderDetail tempDetail = new OutsourceOrderDetail(); + tempDetail.setOutsourceOrderNo(relatedCode); + tempDetail.setSupplierCode(supplierCode); + List orderDetails = outOrderDetailMapper.selectOutsourceOrderDetailList(tempDetail); + if(StringUtils.isEmpty(orderDetails)){ + throw new BusinessException("关联委外订单详情为空!"); + } + List filtDetails = orderDetails.stream() + .filter(item -> item.getSupplierCode().equals(supplierCode)).collect(Collectors.toList()); + + for (OutsourceOrderDetail detail: filtDetails) { + detail.setClosedStatus("3"); + detail.setRemitStatus("3");//待结案 + detail.setUpdateBy(ShiroUtils.getLoginName()); + detail.setUpdateTime(DateUtils.getNowDate()); + int updateResult = outOrderDetailMapper.updateOutsourceOrderDetail(detail); + if(updateResult <= 0 ){ + throw new BusinessException("关联委外订单详情更新失败"); + } + } + /*更新关联委外订单结案状态*/ + boolean allToClose = true; + for (OutsourceOrderDetail detail: filtDetails) { + if(!detail.getRemitStatus().equals("2")&&!detail.getRemitStatus().equals("3")){ + allToClose = false; + break; + } + } + if(allToClose){ + OutsourceOrderVO orderVO = new OutsourceOrderVO(); + orderVO.setOutsourceOrderId(outsourceOrder.getOutsourceOrderId()); + orderVO.setClosedStatus("3");//待结案 + orderVO.setUpdateBy(ShiroUtils.getLoginName()); + orderVO.setUpdateTime(DateUtils.getNowDate()); + int updateResult = outsourceOrderMapper.updateOutsourceOrder(orderVO); + if(updateResult <= 0 ){ + throw new BusinessException("关联委外订单更新失败"); + } + } + } int result = financialAccountsPayableMapper.updateFinancialAccountsPayable(payable); return result; } diff --git a/ruoyi-admin/src/main/resources/mapper/financial/FinancialAccountsPayableMapper.xml b/ruoyi-admin/src/main/resources/mapper/financial/FinancialAccountsPayableMapper.xml index c27f91d2..d99e5f27 100644 --- a/ruoyi-admin/src/main/resources/mapper/financial/FinancialAccountsPayableMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/financial/FinancialAccountsPayableMapper.xml @@ -81,6 +81,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where relevance_code = #{relevanceCode} + + insert into financial_accounts_payable