|
|
@@ -22,12 +22,13 @@ import com.sckw.payment.model.constant.SettlementEnum;
|
|
|
import com.sckw.payment.model.constant.TradeUnitType;
|
|
|
import com.sckw.payment.model.dto.*;
|
|
|
import com.sckw.payment.model.vo.req.*;
|
|
|
+import com.sckw.payment.model.vo.res.LedgerCountSumVo;
|
|
|
import com.sckw.payment.model.vo.res.LedgerTradeDetailVo;
|
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
|
import com.sckw.system.api.model.dto.res.EntCacheResDto;
|
|
|
import com.sckw.system.api.model.dto.res.SysDictResDto;
|
|
|
import io.seata.spring.annotation.GlobalTransactional;
|
|
|
-import jakarta.annotation.Resource;
|
|
|
+import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
@@ -47,17 +48,13 @@ import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
@Slf4j
|
|
|
+@RequiredArgsConstructor
|
|
|
public class KwpLedgerTradeService extends AbsLedger {
|
|
|
- @Resource
|
|
|
- private KwpLedgerTradeMapper tradeMapper;
|
|
|
- @Resource
|
|
|
- private KwpLedgerTradeTrackService tradeTrackService;
|
|
|
- @Resource
|
|
|
- private KwpLedgerTradeOrderService tradeOrderService;
|
|
|
- @Resource
|
|
|
- private KwpSettlementTradeService settlementTradeService;
|
|
|
- @Resource
|
|
|
- private KwpLedgerTradeUnitService tradeUnitService;
|
|
|
+ private final KwpLedgerTradeMapper tradeMapper;
|
|
|
+ private final KwpLedgerTradeTrackService tradeTrackService;
|
|
|
+ private final KwpLedgerTradeOrderService tradeOrderService;
|
|
|
+ private final KwpSettlementTradeService settlementTradeService;
|
|
|
+ private final KwpLedgerTradeUnitService tradeUnitService;
|
|
|
@DubboReference(version = "1.0.0", group = "design", check = false)
|
|
|
private RemoteSystemService remoteSystemService;
|
|
|
@DubboReference(version = "1.0.0", group = "design", check = false)
|
|
|
@@ -68,7 +65,7 @@ public class KwpLedgerTradeService extends AbsLedger {
|
|
|
*
|
|
|
* @param list
|
|
|
*/
|
|
|
- private void changeDict(List<ILedger> list) {
|
|
|
+ private void changeDict(List<? extends ILedger> list) {
|
|
|
List<SysDictResDto> taxRateDict = remoteSystemService.queryDictByType(DictTypeEnum.TAX_RATE.getType());
|
|
|
Map<String, String> taxRateMap = new HashMap<>();
|
|
|
Map<String, String> tradingMap = new HashMap<>();
|
|
|
@@ -111,43 +108,64 @@ public class KwpLedgerTradeService extends AbsLedger {
|
|
|
* @param tradeReq
|
|
|
* @return
|
|
|
*/
|
|
|
- public PageRes<ILedger> sellList(TradeReq tradeReq) {
|
|
|
+ public PageRes<LedgerSellDto> sellList(TradeReq tradeReq) {
|
|
|
fillPara(tradeReq);
|
|
|
- PageHelper.startPage(tradeReq.getPage(), tradeReq.getPageSize());
|
|
|
+ if (tradeReq.getPage() != 0 && tradeReq.getPageSize() != 0) {
|
|
|
+ PageHelper.startPage(tradeReq.getPage(), tradeReq.getPageSize());
|
|
|
+ }
|
|
|
tradeReq.setUnitType(TradeUnitType.PURCHASE);
|
|
|
tradeReq.setUnitTypeTwo(TradeUnitType.SELL);
|
|
|
List<LedgerSellDto> ledgerTradeDto = tradeMapper.sellList(tradeReq);
|
|
|
- PageInfo<ILedger> ledgerPageInfo = new PageInfo<>(ledgerTradeDto);
|
|
|
-
|
|
|
//字典转换
|
|
|
if (!CollectionUtils.isEmpty(ledgerTradeDto)) {
|
|
|
- changeDict(ledgerPageInfo.getList());
|
|
|
- return new PageRes<>(ledgerPageInfo);
|
|
|
+ changeDict(ledgerTradeDto);
|
|
|
+ return new PageRes<>(ledgerTradeDto);
|
|
|
}
|
|
|
return new PageRes<>();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * app端统计对账数据
|
|
|
+ *
|
|
|
+ * @param tradeReq
|
|
|
+ * @return 总应收、对账单数
|
|
|
+ */
|
|
|
+ public LedgerCountSumVo sellSum(TradeReq tradeReq) {
|
|
|
+ fillPara(tradeReq);
|
|
|
+ tradeReq.setUnitType(TradeUnitType.PURCHASE);
|
|
|
+ tradeReq.setUnitTypeTwo(TradeUnitType.SELL);
|
|
|
+ return tradeMapper.countSum(tradeReq);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 采购方
|
|
|
*
|
|
|
* @param tradeReq
|
|
|
* @return
|
|
|
*/
|
|
|
- public PageRes<ILedger> purchaseList(TradeReq tradeReq) {
|
|
|
+ public PageRes<LedgerPurchaseDto> purchaseList(TradeReq tradeReq) {
|
|
|
fillPara(tradeReq);
|
|
|
- PageHelper.startPage(tradeReq.getPage(), tradeReq.getPageSize());
|
|
|
+ if (tradeReq.getPage() != 0 && tradeReq.getPageSize() != 0) {
|
|
|
+ PageHelper.startPage(tradeReq.getPage(), tradeReq.getPageSize());
|
|
|
+ }
|
|
|
tradeReq.setUnitType(TradeUnitType.SELL);
|
|
|
tradeReq.setUnitTypeTwo(TradeUnitType.PURCHASE);
|
|
|
List<LedgerPurchaseDto> ledgerTradeDto = tradeMapper.purchaseList(tradeReq);
|
|
|
- PageInfo<ILedger> ledgerPageInfo = new PageInfo<>(ledgerTradeDto);
|
|
|
//字典转换
|
|
|
if (!CollectionUtils.isEmpty(ledgerTradeDto)) {
|
|
|
- changeDict(ledgerPageInfo.getList());
|
|
|
- return new PageRes<>(ledgerPageInfo);
|
|
|
+ changeDict(ledgerTradeDto);
|
|
|
+ return new PageRes<>(ledgerTradeDto);
|
|
|
}
|
|
|
return new PageRes<>(new PageInfo<>());
|
|
|
}
|
|
|
|
|
|
+ public LedgerCountSumVo purchaseSum(TradeReq tradeReq) {
|
|
|
+ fillPara(tradeReq);
|
|
|
+ tradeReq.setUnitType(TradeUnitType.SELL);
|
|
|
+ tradeReq.setUnitTypeTwo(TradeUnitType.PURCHASE);
|
|
|
+ return tradeMapper.countSum(tradeReq);
|
|
|
+ }
|
|
|
+
|
|
|
private void removeDraft(Long id) {
|
|
|
//删除kwp_ledger_trade_order
|
|
|
tradeOrderService.remove(id);
|
|
|
@@ -185,7 +203,7 @@ public class KwpLedgerTradeService extends AbsLedger {
|
|
|
|
|
|
kwpLedgerTrade.setDelFlag(Global.UN_DELETED);
|
|
|
if (Objects.isNull(tradeSendReq.getId())) {
|
|
|
- kwpLedgerTrade.setTLedgerNo(OrderGenerateUtils.generateOrderNo("TL"));
|
|
|
+ kwpLedgerTrade.setTLedgerNo(OrderGenerateUtils.generateOrderNo("BR"));
|
|
|
kwpLedgerTrade.setCreateBy(LoginUserHolder.getUserId());
|
|
|
kwpLedgerTrade.setCreateTime(LocalDateTime.now());
|
|
|
kwpLedgerTrade.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
@@ -486,7 +504,7 @@ public class KwpLedgerTradeService extends AbsLedger {
|
|
|
kwpSettlementTrade.setId(new IdWorker(NumberConstant.ONE).nextId());
|
|
|
kwpSettlementTrade.setEntId(LoginUserHolder.getEntId());
|
|
|
kwpSettlementTrade.setTLedgerId(kwpLedgerTrade.getId());
|
|
|
- kwpSettlementTrade.setStOrderNo(OrderGenerateUtils.generateOrderNo("ST"));
|
|
|
+ kwpSettlementTrade.setStOrderNo(OrderGenerateUtils.generateOrderNo("BP"));
|
|
|
kwpSettlementTrade.setName(kwpLedgerTrade.getName());
|
|
|
kwpSettlementTrade.setTotalPrice(kwpLedgerTrade.getTotalPrice());
|
|
|
kwpSettlementTrade.setActualPrice(kwpLedgerTrade.getActualPrice());
|
|
|
@@ -546,14 +564,13 @@ public class KwpLedgerTradeService extends AbsLedger {
|
|
|
* @param ids 对账单id列表
|
|
|
* @return 对账单数据
|
|
|
*/
|
|
|
- public List<ILedger> selectSellList(List<Long> ids) {
|
|
|
+ public List<LedgerSellDto> selectSellList(List<Long> ids) {
|
|
|
if (CollectionUtils.isEmpty(ids)) {
|
|
|
return new ArrayList<>();
|
|
|
}
|
|
|
List<LedgerSellDto> ledgerTradeDto = tradeMapper.selectSellIds(ids);
|
|
|
- List<ILedger> ledgerSellDto = new ArrayList<>(ledgerTradeDto);
|
|
|
- changeDict(ledgerSellDto);
|
|
|
- return ledgerSellDto;
|
|
|
+ changeDict(ledgerTradeDto);
|
|
|
+ return ledgerTradeDto;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -562,14 +579,13 @@ public class KwpLedgerTradeService extends AbsLedger {
|
|
|
* @param ids 对账单id列表
|
|
|
* @return 对账单数据
|
|
|
*/
|
|
|
- public List<ILedger> selectPurchaseList(List<Long> ids) {
|
|
|
+ public List<LedgerPurchaseDto> selectPurchaseList(List<Long> ids) {
|
|
|
if (CollectionUtils.isEmpty(ids)) {
|
|
|
return new ArrayList<>();
|
|
|
}
|
|
|
List<LedgerPurchaseDto> ledgerTradeDto = tradeMapper.selectPurchaseIds(ids);
|
|
|
- List<ILedger> ledgerSellDto = new ArrayList<>(ledgerTradeDto);
|
|
|
- changeDict(ledgerSellDto);
|
|
|
- return ledgerSellDto;
|
|
|
+ changeDict(ledgerTradeDto);
|
|
|
+ return ledgerTradeDto;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -660,7 +676,7 @@ public class KwpLedgerTradeService extends AbsLedger {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- orderDto.setTorderId(orderDetailRes.getId());
|
|
|
+ orderDto.setTOrderId(orderDetailRes.getId());
|
|
|
return orderDto;
|
|
|
}
|
|
|
|
|
|
@@ -692,4 +708,43 @@ public class KwpLedgerTradeService extends AbsLedger {
|
|
|
}
|
|
|
return PageRes.build(pageInfo, detailRes);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询对账单关联订单 可通过商品名称、订单编号搜索
|
|
|
+ *
|
|
|
+ * @param ledgerListReq
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<OrderDto> queryOrderList(LedgerListReq ledgerListReq) {
|
|
|
+ List<KwpLedgerTradeOrder> kwpLedgerLogisticsOrders = tradeOrderService.queryList(ledgerListReq.getIdLong());
|
|
|
+ if (CollectionUtils.isEmpty(kwpLedgerLogisticsOrders)) {
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ List<OrderDto> detailRes = new ArrayList<>();
|
|
|
+ for (KwpLedgerTradeOrder kwpLedgerLogisticsOrder : kwpLedgerLogisticsOrders) {
|
|
|
+ OrderDetailRes orderDetailById = tradeOrderInfoService.getOrderDetailById(kwpLedgerLogisticsOrder.getTOrderId());
|
|
|
+ detailRes.add(changeOrder(orderDetailById));
|
|
|
+ }
|
|
|
+ //过滤筛选条件
|
|
|
+ if (StringUtils.isNotBlank(ledgerListReq.getKeywords())) {
|
|
|
+ return detailRes.stream().filter(o -> StringUtils.contains(o.getTOrderNo(), ledgerListReq.getKeywords()) ||
|
|
|
+ StringUtils.contains(o.getGoodsName(), ledgerListReq.getKeywords())).toList();
|
|
|
+ }
|
|
|
+ return detailRes;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据企业id查询关联的订单
|
|
|
+ *
|
|
|
+ * @param entId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<String> checkOrder(Long entId) {
|
|
|
+ List<Long> longs = tradeUnitService.selectByEnt(entId);
|
|
|
+ if (CollectionUtils.isEmpty(longs)) {
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ List<KwpLedgerTrade> kwpLedgerTrades = tradeMapper.selectBatchIds(longs);
|
|
|
+ return kwpLedgerTrades.stream().filter(a->!Objects.equals(a.getStatus(),LedgerEnum.SUCCESS.getStatus())).map(KwpLedgerTrade::getTLedgerNo).distinct().toList();
|
|
|
+ }
|
|
|
}
|