shiyunteng
2 天以前 8de09297dcc5393cc8542f29318b17f5696d4f8d
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractInvoiceServiceImpl.java
@@ -20,6 +20,7 @@
import com.by4cloud.platformx.admin.api.feign.RemoteDeptService;
import com.by4cloud.platformx.business.api.feign.RemoteFlowProcessService;
import com.by4cloud.platformx.business.constant.FlowNameEnum;
import com.by4cloud.platformx.business.dto.ContractInvoiceQueryDTO;
import com.by4cloud.platformx.business.dto.GenInvoiceInfoDTO;
import com.by4cloud.platformx.business.entity.*;
import com.by4cloud.platformx.business.mapper.*;
@@ -27,6 +28,7 @@
import com.by4cloud.platformx.business.service.PaymentConfirmService;
import com.by4cloud.platformx.business.vo.*;
import com.by4cloud.platformx.common.core.util.R;
import com.by4cloud.platformx.common.data.datascope.DataScope;
import com.by4cloud.platformx.common.data.mybatis.BaseModel;
import com.by4cloud.platformx.common.security.util.SecurityUtils;
import com.by4cloud.platformx.flow.task.dto.ProcessInstanceParamDto;
@@ -627,11 +629,12 @@
               }
            }
         }
         //更新合同开票状态
         contract.setBillingStatus("2");
         contract.setBillingAmout(contract.getBillingAmout().subtract(invoice.getInvoiceTotalPriceTax()));
         contractMapper.updateById(contract);
         //更新合同开票状态 前提出库完成
         if (StrUtil.equals(contract.getBillingStatus(),"3")) {
            contract.setBillingStatus("2");
            contract.setBillingAmout(contract.getBillingAmout().subtract(invoice.getInvoiceTotalPriceTax()));
            contractMapper.updateById(contract);
         }
         blueInvoice.setRedReversal("1");
         baseMapper.updateById(blueInvoice);
@@ -652,18 +655,30 @@
   @Override
   public void refuseApproval(Long id) {
      ContractInvoice invoice = baseMapper.selectById(id);
      //更新合同出库单状态
      String[] outBoundIds = invoice.getOutBoundId().split(",");
      Arrays.stream(outBoundIds).forEach(outBoundId -> {
         ContractOutBound bound = contractOutBoundMapper.selectById(outBoundId);
         bound.setInvoiceStatus("0");
         contractOutBoundMapper.updateById(bound);
      });
      invoice.setApprovalStatus("2");
      baseMapper.updateById(invoice);
      //蓝票
      if (invoice.getInvoiceCategory().equals("1")) {
         //更新合同出库单状态
         List<ContractOutBoundInvoiceVo> outBoundInvoiceVoList = BeanUtil.copyToList(JSONArray.parseArray(invoice.getInvoicePreviewParam()),ContractOutBoundInvoiceVo.class);
         if (ArrayUtil.isNotEmpty(outBoundInvoiceVoList.toArray())){
            outBoundInvoiceVoList.stream().forEach(contractOutBoundInvoiceVo -> {
               ContractOutBound contractOutBound = contractOutBoundMapper.selectById(contractOutBoundInvoiceVo.getContractOutBoundId());
               contractOutBound.setInvoiceNum(contractOutBound.getInvoiceNum().subtract(contractOutBoundInvoiceVo.getInvoiceNum()));
               contractOutBoundMapper.updateById(contractOutBound);
            });
         }
      }
      //红票
      if (invoice.getInvoiceCategory().equals("2")) {
         ContractInvoice blueInvoice = baseMapper.selectById(invoice.getBlueInvoiceId());
         blueInvoice.setRedReversal("0");
         baseMapper.updateById(blueInvoice);
      }
   }
      ContractInvoice blueInvoice = baseMapper.selectById(invoice.getBlueInvoiceId());
      blueInvoice.setRedReversal("0");
      baseMapper.updateById(blueInvoice);
   @Override
   public Page pageInvoice(Page page, ContractInvoiceQueryDTO queryDTO) {
      return baseMapper.pageInvoice(page,queryDTO, DataScope.of("comp_id"));
   }
}