From 80821b70c41a06952fa50207a9a82fa289e0152e Mon Sep 17 00:00:00 2001 From: wujianwei <wjw@11.com> Date: 星期四, 04 九月 2025 14:16:29 +0800 Subject: [PATCH] 修改接口 --- service/src/main/java/com/ruoyi/cwgl/service/impl/PendingSettlementBusinessServiceImpl.java | 202 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 199 insertions(+), 3 deletions(-) diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/PendingSettlementBusinessServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/PendingSettlementBusinessServiceImpl.java index 385875d..90b16c2 100644 --- a/service/src/main/java/com/ruoyi/cwgl/service/impl/PendingSettlementBusinessServiceImpl.java +++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/PendingSettlementBusinessServiceImpl.java @@ -1,15 +1,30 @@ package com.ruoyi.cwgl.service.impl; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.Arrays; +import java.util.Date; import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; -import com.ruoyi.common.utils.DateUtils; +import cn.hutool.core.collection.CollectionUtil; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.*; + import javax.annotation.Resource; + +import com.ruoyi.cwgl.domain.EstimatedReceivableBill; +import com.ruoyi.cwgl.domain.ReceivableLineTruckPriceRule; +import com.ruoyi.cwgl.domain.vo.CreateBillVo; +import com.ruoyi.cwgl.mapper.EstimatedReceivableBillMapper; +import com.ruoyi.cwgl.mapper.EstimatedReceivableMapper; +import com.ruoyi.cwgl.service.IEstimatedReceivableBillService; import org.springframework.transaction.annotation.Transactional; import org.springframework.stereotype.Service; import org.springframework.scheduling.annotation.Async; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.annotation.DataSource; import com.ruoyi.common.enums.DataSourceType; @@ -33,7 +48,10 @@ protected final Logger logger = LoggerFactory.getLogger(getClass()); @Resource private PendingSettlementBusinessMapper pendingSettlementBusinessMapper; - + @Resource + private EstimatedReceivableBillMapper estimatedReceivableBillMapper; + @Resource + private EstimatedReceivableMapper estimatedReceivableMapper; /** * 鏌ヨ寰呭叆璐︿笟鍔� @@ -179,4 +197,182 @@ { return pendingSettlementBusinessMapper.deletePendingSettlementBusinessById(id); } + + @Override + public void insertPendingSettlement(List<PendingSettlementBusiness> pendingSettlementBusinesses ) { + + if (CollectionUtil.isNotEmpty(pendingSettlementBusinesses)) { + pendingSettlementBusinessMapper.insertPendingSettlementBusinessBatch(pendingSettlementBusinesses); + + } + + } + + @DataSource(DataSourceType.CWSJ) + @Override + public List<PendingSettlementBusiness> selectPendingSettlement2Cw() { + List<PendingSettlementBusiness> pendingSettlementBusinesses = pendingSettlementBusinessMapper.selectPendingSettlement2Cw(); + //鏇存柊鍚屾鐘舵�佺敤 + /* Integer[] ids = pendingSettlementBusinesses.stream().map(PendingSettlementBusiness::getServiceId).toArray(Integer[]::new); + int i = pendingSettlementBusinessMapper.updeteCwData(ids); + if (i>0){ + logger.info("鍚屾鐘舵�佹洿鏂版垚鍔�"); + }*/ + return pendingSettlementBusinesses; + } + + @DataSource(DataSourceType.CWSJ) + @Override + public int updateCwData(Integer[] ids) { + return pendingSettlementBusinessMapper.updeteCwData(ids); + } + + @DataSource(DataSourceType.CWSJ) + @Override + public List<ReceivableLineTruckPriceRule> selectReceivableLineTruckPriceRule() { + return pendingSettlementBusinessMapper.selectReceivableLineTruckPriceRule(); + } + + @DataSource(DataSourceType.CWSJ) + @Override + public List<ReceivableLineTruckPriceRule> selectPayableLineTruckPriceRule() { + return pendingSettlementBusinessMapper.selectPayableLineTruckPriceRule(); + } + + @Override + public CreateBillVo billIds(Integer[] ids) { + List<PendingSettlementBusiness> pendingSettlementBusinesses = pendingSettlementBusinessMapper.selectBatchIds(Arrays.asList(ids)); + if (CollectionUtil.isEmpty(pendingSettlementBusinesses)){ + throw new ServiceException("璐﹀崟涓嶅瓨鍦�"); + } + CreateBillVo createBillVo = new CreateBillVo(); + String customerName = pendingSettlementBusinesses.get(0).getCustomerName(); + createBillVo.setCustomerName(customerName); + createBillVo.setCount(pendingSettlementBusinesses.size()); + BigDecimal priceTotal = BigDecimal.ZERO; + for (PendingSettlementBusiness pendingSettlementBusiness : pendingSettlementBusinesses) { + if (pendingSettlementBusiness.getIsCreate().equals(1)){ + throw new ServiceException(pendingSettlementBusiness.getDispatchNo()+"宸插叆璐�"); + + } + if (!pendingSettlementBusiness.getCustomerName().equals(customerName)){ + throw new ServiceException("鍙兘閫夋嫨鐩稿悓瀹㈡埛鍚嶇О鐨勬暟鎹�"); + + } + priceTotal =priceTotal.add( pendingSettlementBusiness.getEstimatedTotalIncome()==null?BigDecimal.ZERO:pendingSettlementBusiness.getEstimatedTotalIncome()); + } + createBillVo.setPrice(priceTotal); + return createBillVo; + } + + @Override + public CreateBillVo billList(PendingSettlementBusiness pendingSettlementBusiness) { + String customerName = pendingSettlementBusiness.getCustomerName(); + if (StringUtils.isEmpty(customerName)){ + throw new ServiceException("瀹㈡埛鍚嶇О涓嶈兘涓虹┖"); + } + pendingSettlementBusiness.setIsCreate(0); + List<PendingSettlementBusiness> pendingSettlementBusinesses = pendingSettlementBusinessMapper.selectPendingSettlementBusinessList(pendingSettlementBusiness); + BigDecimal priceTotal = pendingSettlementBusinesses.stream() + .map(b -> Optional.ofNullable(b.getEstimatedTotalIncome()).orElse(BigDecimal.ZERO)) + .reduce(BigDecimal.ZERO, BigDecimal::add); + CreateBillVo createBillVo = new CreateBillVo(); + createBillVo.setCustomerName(customerName); + createBillVo.setCount(pendingSettlementBusinesses.size()); + createBillVo.setPrice(priceTotal); + return createBillVo; + } + + @Override + public int createBillIds(Integer[] ids, CreateBillVo createBillVo) { + String username = SecurityUtils.getUsername(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd"); + Date date = new Date(); + String datePart = dateFormat.format(date); + List<PendingSettlementBusiness> pendingSettlementBusinesses = pendingSettlementBusinessMapper.selectBatchIds(Arrays.asList(ids)); + if (CollectionUtil.isEmpty(pendingSettlementBusinesses)){ + throw new ServiceException("璐﹀崟涓嶅瓨鍦�"); + } + for (PendingSettlementBusiness pendingSettlementBusiness : pendingSettlementBusinesses) { + if (pendingSettlementBusiness.getIsCreate().equals(1)){ + throw new ServiceException(pendingSettlementBusiness.getDispatchNo()+"宸插叆璐�"); + + } + String customerName = pendingSettlementBusinesses.get(0).getCustomerName(); + + if (!pendingSettlementBusiness.getCustomerName().equals(customerName)){ + throw new ServiceException("鍙兘閫夋嫨鐩稿悓瀹㈡埛鍚嶇О鐨勬暟鎹�"); + + } + } + //璋冨害鍗曢泦鍚� + List<String> collect = pendingSettlementBusinesses.stream().map(PendingSettlementBusiness::getDispatchNo).collect(Collectors.toList()); + EstimatedReceivableBill estimatedReceivableBill = new EstimatedReceivableBill(); + estimatedReceivableBill.setCreateTime(date); + estimatedReceivableBill.setBillSystemNo("ZD"+datePart+RandomUtils.random(4)); + estimatedReceivableBill.setBillName(createBillVo.getBillName()); + estimatedReceivableBill.setCustomerName(createBillVo.getCustomerName()); + estimatedReceivableBill.setDispatchCount(createBillVo.getCount()); + estimatedReceivableBill.setTotalAmount(createBillVo.getPrice()); + estimatedReceivableBill.setSettledAmount(BigDecimal.ZERO); + estimatedReceivableBill.setInvoiceStatus(0); + estimatedReceivableBill.setStatus(0); + estimatedReceivableBill.setCreateBy(username); + estimatedReceivableBillMapper.insertEstimatedReceivableBill(estimatedReceivableBill); + //淇敼鍏ヨ处 + estimatedReceivableMapper.updateEstimatedReceivableBillStatus(collect,1,createBillVo.getBillName()); + + //淇敼璋冨害鍗曚负宸插垱寤鸿处鍗� + return pendingSettlementBusinessMapper.updatePendingSettlementBusinessIsCreate(collect,estimatedReceivableBill.getId(),createBillVo.getBillName()); + + } + + @Override + public int createBillList(PendingSettlementBusiness pendingSettlementBusiness) { + String customerName = pendingSettlementBusiness.getCustomerName(); + if (StringUtils.isEmpty(customerName)){ + throw new ServiceException("瀹㈡埛鍚嶇О涓嶈兘涓虹┖"); + } + String billName = pendingSettlementBusiness.getBillName(); + if (StringUtils.isEmpty(billName)){ + throw new ServiceException("璐﹀崟鍚嶇О涓嶈兘涓虹┖"); + } + pendingSettlementBusiness.setIsCreate(0); + List<PendingSettlementBusiness> pendingSettlementBusinesses = pendingSettlementBusinessMapper.selectPendingSettlementBusinessList(pendingSettlementBusiness); + if (CollectionUtil.isEmpty(pendingSettlementBusinesses)){ + throw new ServiceException("濉啓鐨勫鎴锋病鏈夎兘鍏ヨ处鏁版嵁"); + + } + String username = SecurityUtils.getUsername(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd"); + Date date = new Date(); + String datePart = dateFormat.format(date); + + BigDecimal priceTotal = pendingSettlementBusinesses.stream() + .map(b -> Optional.ofNullable(b.getEstimatedTotalIncome()).orElse(BigDecimal.ZERO)) + .reduce(BigDecimal.ZERO, BigDecimal::add); + //璋冨害鍗曢泦鍚� + List<String> collect = pendingSettlementBusinesses.stream().map(PendingSettlementBusiness::getDispatchNo).collect(Collectors.toList()); + EstimatedReceivableBill estimatedReceivableBill = new EstimatedReceivableBill(); + estimatedReceivableBill.setCreateTime(date); + estimatedReceivableBill.setBillSystemNo("ZD"+datePart+RandomUtils.random(4)); + estimatedReceivableBill.setBillName(billName); + estimatedReceivableBill.setCustomerName(customerName); + estimatedReceivableBill.setDispatchCount(pendingSettlementBusinesses.size()); + estimatedReceivableBill.setTotalAmount(priceTotal); + estimatedReceivableBill.setSettledAmount(BigDecimal.ZERO); + estimatedReceivableBill.setInvoiceStatus(0); + estimatedReceivableBill.setStatus(0); + estimatedReceivableBill.setCreateBy(username); + estimatedReceivableBillMapper.insertEstimatedReceivableBill(estimatedReceivableBill); + //淇敼搴旀敹绠$悊琛ㄥ凡鍏ヨ处 + estimatedReceivableMapper.updateEstimatedReceivableBillStatus(collect,1,billName); + //淇敼璋冨害鍗曚负宸插垱寤鸿处鍗� + return pendingSettlementBusinessMapper.updatePendingSettlementBusinessIsCreate(collect,estimatedReceivableBill.getId(),billName); + } + + @Override + public List<String> selectCustomName() { + return pendingSettlementBusinessMapper.selectCustomName(); + } } -- Gitblit v1.8.0