|
@@ -5,7 +5,9 @@ import com.github.pagehelper.PageHelper;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
import com.github.pagehelper.PageInfo;
|
|
|
import com.sckw.core.exception.BusinessException;
|
|
import com.sckw.core.exception.BusinessException;
|
|
|
import com.sckw.core.model.page.PageRes;
|
|
import com.sckw.core.model.page.PageRes;
|
|
|
|
|
+import com.sckw.core.utils.CollectionUtils;
|
|
|
import com.sckw.core.utils.IdWorker;
|
|
import com.sckw.core.utils.IdWorker;
|
|
|
|
|
+import com.sckw.core.utils.OrderGenerateUtils;
|
|
|
import com.sckw.payment.dao.KwpLedgerTradeMapper;
|
|
import com.sckw.payment.dao.KwpLedgerTradeMapper;
|
|
|
import com.sckw.payment.model.KwpLedgerTrade;
|
|
import com.sckw.payment.model.KwpLedgerTrade;
|
|
|
import com.sckw.payment.model.KwpLedgerTradeTrack;
|
|
import com.sckw.payment.model.KwpLedgerTradeTrack;
|
|
@@ -14,18 +16,21 @@ import com.sckw.payment.model.KwpSettlementTrade;
|
|
|
import com.sckw.payment.model.constant.LedgerEnum;
|
|
import com.sckw.payment.model.constant.LedgerEnum;
|
|
|
import com.sckw.payment.model.constant.LedgerTrackEnum;
|
|
import com.sckw.payment.model.constant.LedgerTrackEnum;
|
|
|
import com.sckw.payment.model.constant.TradeUnitType;
|
|
import com.sckw.payment.model.constant.TradeUnitType;
|
|
|
|
|
+import com.sckw.payment.model.dto.LedgerCountVo;
|
|
|
import com.sckw.payment.model.dto.LedgerTradeDto;
|
|
import com.sckw.payment.model.dto.LedgerTradeDto;
|
|
|
import com.sckw.payment.model.vo.req.*;
|
|
import com.sckw.payment.model.vo.req.*;
|
|
|
-import lombok.AllArgsConstructor;
|
|
|
|
|
|
|
+import com.sckw.system.api.RemoteSystemService;
|
|
|
|
|
+import com.sckw.system.api.model.dto.res.SysDictResDto;
|
|
|
|
|
+import jakarta.annotation.Resource;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
+import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
|
-import java.util.ArrayList;
|
|
|
|
|
-import java.util.List;
|
|
|
|
|
-import java.util.Objects;
|
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @author xucaiqin
|
|
* @author xucaiqin
|
|
@@ -33,14 +38,42 @@ import java.util.Objects;
|
|
|
*/
|
|
*/
|
|
|
|
|
|
|
|
@Service
|
|
@Service
|
|
|
-@AllArgsConstructor
|
|
|
|
|
@Slf4j
|
|
@Slf4j
|
|
|
public class KwpLedgerTradeService extends AbsLedger {
|
|
public class KwpLedgerTradeService extends AbsLedger {
|
|
|
- private final KwpLedgerTradeMapper tradeMapper;
|
|
|
|
|
- private final KwpLedgerTradeTrackService tradeTrackService;
|
|
|
|
|
- private final KwpLedgerTradeOrderService tradeOrderService;
|
|
|
|
|
- private final KwpSettlementTradeService settlementTradeService;
|
|
|
|
|
- private final KwpLedgerTradeUnitService tradeUnitService;
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private KwpLedgerTradeMapper tradeMapper;
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private KwpLedgerTradeTrackService tradeTrackService;
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private KwpLedgerTradeOrderService tradeOrderService;
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private KwpSettlementTradeService settlementTradeService;
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private KwpLedgerTradeUnitService tradeUnitService;
|
|
|
|
|
+ @DubboReference(version = "2.0.0", group = "design", check = false)
|
|
|
|
|
+ private RemoteSystemService remoteSystemService;
|
|
|
|
|
+
|
|
|
|
|
+ private void changeDict(List<LedgerTradeDto> list) {
|
|
|
|
|
+ List<SysDictResDto> taxRateDict = remoteSystemService.queryDictByType("taxRate");//todo
|
|
|
|
|
+ Map<String, String> taxRateMap = new HashMap<>();
|
|
|
|
|
+ Map<String, String> tradingMap = new HashMap<>();
|
|
|
|
|
+
|
|
|
|
|
+ if (!CollectionUtils.isEmpty(taxRateDict)) {
|
|
|
|
|
+ taxRateMap = taxRateDict.stream().collect(Collectors.toMap(SysDictResDto::getValue, SysDictResDto::getLabel, (a, b) -> a));
|
|
|
|
|
+ }
|
|
|
|
|
+ List<SysDictResDto> tradingDict = remoteSystemService.queryDictByType("trade_type");//todo
|
|
|
|
|
+ if (!CollectionUtils.isEmpty(tradingDict)) {
|
|
|
|
|
+ tradingMap = tradingDict.stream().collect(Collectors.toMap(SysDictResDto::getValue, SysDictResDto::getLabel, (a, b) -> a));
|
|
|
|
|
+ }
|
|
|
|
|
+ for (LedgerTradeDto tradeDto : list) {
|
|
|
|
|
+ Integer trading = tradeDto.getTrading();
|
|
|
|
|
+ tradeDto.setTradingLabel(tradingMap.get(String.valueOf(trading)));
|
|
|
|
|
+ Integer taxRate = tradeDto.getTaxRate();
|
|
|
|
|
+ tradeDto.setTaxRateLabel(taxRateMap.get(String.valueOf(taxRate)));
|
|
|
|
|
+
|
|
|
|
|
+ tradeDto.setStatusLabel(LedgerEnum.getDesc(tradeDto.getStatus()));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 分页查询对账单列表
|
|
* 分页查询对账单列表
|
|
@@ -51,6 +84,10 @@ public class KwpLedgerTradeService extends AbsLedger {
|
|
|
public PageRes<LedgerTradeDto> pageList(TradeReq tradeReq) {
|
|
public PageRes<LedgerTradeDto> pageList(TradeReq tradeReq) {
|
|
|
PageHelper.startPage(tradeReq.getPage(), tradeReq.getPageSize());
|
|
PageHelper.startPage(tradeReq.getPage(), tradeReq.getPageSize());
|
|
|
List<LedgerTradeDto> ledgerTradeDto = tradeMapper.pageSelect(tradeReq);
|
|
List<LedgerTradeDto> ledgerTradeDto = tradeMapper.pageSelect(tradeReq);
|
|
|
|
|
+ //字典转换
|
|
|
|
|
+ if (!CollectionUtils.isEmpty(ledgerTradeDto)) {
|
|
|
|
|
+ changeDict(ledgerTradeDto);
|
|
|
|
|
+ }
|
|
|
return new PageRes<>(new PageInfo<>(ledgerTradeDto));
|
|
return new PageRes<>(new PageInfo<>(ledgerTradeDto));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -67,27 +104,30 @@ public class KwpLedgerTradeService extends AbsLedger {
|
|
|
KwpLedgerTrade kwpLedgerTrade = new KwpLedgerTrade();
|
|
KwpLedgerTrade kwpLedgerTrade = new KwpLedgerTrade();
|
|
|
kwpLedgerTrade.setId(Objects.isNull(tradeSendReq.getId()) ? new IdWorker(1).nextId() : tradeSendReq.getId());
|
|
kwpLedgerTrade.setId(Objects.isNull(tradeSendReq.getId()) ? new IdWorker(1).nextId() : tradeSendReq.getId());
|
|
|
kwpLedgerTrade.setEntId(0L);//todo
|
|
kwpLedgerTrade.setEntId(0L);//todo
|
|
|
- kwpLedgerTrade.setTLedgerNo("");
|
|
|
|
|
kwpLedgerTrade.setName(tradeSendReq.getName());
|
|
kwpLedgerTrade.setName(tradeSendReq.getName());
|
|
|
kwpLedgerTrade.setStartTime(tradeSendReq.getStartTime());
|
|
kwpLedgerTrade.setStartTime(tradeSendReq.getStartTime());
|
|
|
kwpLedgerTrade.setEndTime(tradeSendReq.getEndTime());
|
|
kwpLedgerTrade.setEndTime(tradeSendReq.getEndTime());
|
|
|
kwpLedgerTrade.setTaxRate(tradeSendReq.getTaxRate());
|
|
kwpLedgerTrade.setTaxRate(tradeSendReq.getTaxRate());
|
|
|
- kwpLedgerTrade.setTrading(0L);
|
|
|
|
|
|
|
+ kwpLedgerTrade.setTrading(tradeSendReq.getTrading());
|
|
|
kwpLedgerTrade.setTotalPrice(tradeSendReq.getTotalPrice());
|
|
kwpLedgerTrade.setTotalPrice(tradeSendReq.getTotalPrice());
|
|
|
|
|
+ kwpLedgerTrade.setExTaxPrice(tradeSendReq.getTotalPrice());//todo 不含税金额计算方式:订单含税金额总和/1.13(税率)
|
|
|
kwpLedgerTrade.setSettlePrice(tradeSendReq.getSettlePrice());
|
|
kwpLedgerTrade.setSettlePrice(tradeSendReq.getSettlePrice());
|
|
|
kwpLedgerTrade.setActualPrice(new BigDecimal("0.0"));
|
|
kwpLedgerTrade.setActualPrice(new BigDecimal("0.0"));
|
|
|
kwpLedgerTrade.setAuditUser("");
|
|
kwpLedgerTrade.setAuditUser("");
|
|
|
kwpLedgerTrade.setAuditPhone("");
|
|
kwpLedgerTrade.setAuditPhone("");
|
|
|
kwpLedgerTrade.setGenerateTime(tradeSendReq.getGenerateTime());
|
|
kwpLedgerTrade.setGenerateTime(tradeSendReq.getGenerateTime());
|
|
|
|
|
+ kwpLedgerTrade.setReceiptTime(null);
|
|
|
|
|
+ kwpLedgerTrade.setOrderCount(tradeSendReq.getIds().size());
|
|
|
kwpLedgerTrade.setUrl("");
|
|
kwpLedgerTrade.setUrl("");
|
|
|
kwpLedgerTrade.setRemark("");
|
|
kwpLedgerTrade.setRemark("");
|
|
|
- kwpLedgerTrade.setStatus(LedgerEnum.SAVE.getStatus());
|
|
|
|
|
|
|
+ kwpLedgerTrade.setStatus(tradeSendReq.getStatus());
|
|
|
kwpLedgerTrade.setCreateBy(0L);
|
|
kwpLedgerTrade.setCreateBy(0L);
|
|
|
kwpLedgerTrade.setCreateTime(LocalDateTime.now());
|
|
kwpLedgerTrade.setCreateTime(LocalDateTime.now());
|
|
|
kwpLedgerTrade.setUpdateBy(0L);
|
|
kwpLedgerTrade.setUpdateBy(0L);
|
|
|
kwpLedgerTrade.setUpdateTime(LocalDateTime.now());
|
|
kwpLedgerTrade.setUpdateTime(LocalDateTime.now());
|
|
|
kwpLedgerTrade.setDelFlag(0);
|
|
kwpLedgerTrade.setDelFlag(0);
|
|
|
if (Objects.isNull(tradeSendReq.getId())) {
|
|
if (Objects.isNull(tradeSendReq.getId())) {
|
|
|
|
|
+ kwpLedgerTrade.setTLedgerNo(OrderGenerateUtils.generateOrderNo("TL"));
|
|
|
tradeMapper.insert(kwpLedgerTrade);
|
|
tradeMapper.insert(kwpLedgerTrade);
|
|
|
} else {
|
|
} else {
|
|
|
tradeMapper.updateById(kwpLedgerTrade);
|
|
tradeMapper.updateById(kwpLedgerTrade);
|
|
@@ -119,6 +159,26 @@ public class KwpLedgerTradeService extends AbsLedger {
|
|
|
kwpLedgerTradeUnit.setDelFlag(0);
|
|
kwpLedgerTradeUnit.setDelFlag(0);
|
|
|
|
|
|
|
|
list.add(kwpLedgerTradeUnit);
|
|
list.add(kwpLedgerTradeUnit);
|
|
|
|
|
+ //非客户企业方,通过登录用户获取顶级企业
|
|
|
|
|
+ KwpLedgerTradeUnit sellLedgerTradeUnit = new KwpLedgerTradeUnit();
|
|
|
|
|
+ sellLedgerTradeUnit.setId(new IdWorker(1).nextId());
|
|
|
|
|
+ sellLedgerTradeUnit.setTLedgerId(kwpLedgerTrade.getId());
|
|
|
|
|
+ sellLedgerTradeUnit.setTLedgerNo(kwpLedgerTrade.getTLedgerNo());
|
|
|
|
|
+ sellLedgerTradeUnit.setUnitType(TradeUnitType.SELL);
|
|
|
|
|
+ sellLedgerTradeUnit.setEntId(purchaseEntId);//todo
|
|
|
|
|
+ sellLedgerTradeUnit.setTopEntId(0L);
|
|
|
|
|
+ sellLedgerTradeUnit.setFirmName("");
|
|
|
|
|
+ sellLedgerTradeUnit.setContacts("");
|
|
|
|
|
+ sellLedgerTradeUnit.setPhone("");
|
|
|
|
|
+ sellLedgerTradeUnit.setRemark("");
|
|
|
|
|
+ sellLedgerTradeUnit.setStatus(0);
|
|
|
|
|
+ sellLedgerTradeUnit.setCreateBy(0L);
|
|
|
|
|
+ sellLedgerTradeUnit.setCreateTime(LocalDateTime.now());
|
|
|
|
|
+ sellLedgerTradeUnit.setUpdateBy(0L);
|
|
|
|
|
+ sellLedgerTradeUnit.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
+ sellLedgerTradeUnit.setDelFlag(0);
|
|
|
|
|
+ list.add(sellLedgerTradeUnit);
|
|
|
|
|
+
|
|
|
tradeUnitService.saveList(list);
|
|
tradeUnitService.saveList(list);
|
|
|
return kwpLedgerTrade.getId();
|
|
return kwpLedgerTrade.getId();
|
|
|
}
|
|
}
|
|
@@ -131,10 +191,12 @@ public class KwpLedgerTradeService extends AbsLedger {
|
|
|
*/
|
|
*/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public String sendLedger(TradeSendReq tradeSendReq) {
|
|
public String sendLedger(TradeSendReq tradeSendReq) {
|
|
|
|
|
+ log.info("保存对账单入参:{}", JSONObject.toJSONString(tradeSendReq));
|
|
|
Long id = tradeSendReq.getId();
|
|
Long id = tradeSendReq.getId();
|
|
|
if (Objects.isNull(id)) {
|
|
if (Objects.isNull(id)) {
|
|
|
//新增
|
|
//新增
|
|
|
tradeSendReq.setGenerateTime(LocalDateTime.now());
|
|
tradeSendReq.setGenerateTime(LocalDateTime.now());
|
|
|
|
|
+ tradeSendReq.setStatus(LedgerEnum.TO_LEDGER.getStatus());
|
|
|
Long aLong = saveDraft(tradeSendReq);
|
|
Long aLong = saveDraft(tradeSendReq);
|
|
|
tradeTrackService.saveTrack(aLong, "", LedgerTrackEnum.TO_LEDGER);
|
|
tradeTrackService.saveTrack(aLong, "", LedgerTrackEnum.TO_LEDGER);
|
|
|
} else {
|
|
} else {
|
|
@@ -142,6 +204,7 @@ public class KwpLedgerTradeService extends AbsLedger {
|
|
|
removeDraft(id);
|
|
removeDraft(id);
|
|
|
//在新增
|
|
//在新增
|
|
|
tradeSendReq.setGenerateTime(LocalDateTime.now());
|
|
tradeSendReq.setGenerateTime(LocalDateTime.now());
|
|
|
|
|
+ tradeSendReq.setStatus(LedgerEnum.TO_LEDGER.getStatus());
|
|
|
Long aLong = saveDraft(tradeSendReq);
|
|
Long aLong = saveDraft(tradeSendReq);
|
|
|
tradeTrackService.saveTrack(aLong, "", LedgerTrackEnum.TO_LEDGER);
|
|
tradeTrackService.saveTrack(aLong, "", LedgerTrackEnum.TO_LEDGER);
|
|
|
|
|
|
|
@@ -159,6 +222,7 @@ public class KwpLedgerTradeService extends AbsLedger {
|
|
|
public String sendLedgerDraft(TradeSendReq tradeSendReq) {
|
|
public String sendLedgerDraft(TradeSendReq tradeSendReq) {
|
|
|
log.info("贸易对账单保存草稿:{}", JSONObject.toJSONString(tradeSendReq));
|
|
log.info("贸易对账单保存草稿:{}", JSONObject.toJSONString(tradeSendReq));
|
|
|
tradeSendReq.setGenerateTime(null);
|
|
tradeSendReq.setGenerateTime(null);
|
|
|
|
|
+ tradeSendReq.setStatus(LedgerEnum.SAVE.getStatus());
|
|
|
Long aLong = saveDraft(tradeSendReq);
|
|
Long aLong = saveDraft(tradeSendReq);
|
|
|
tradeTrackService.saveTrack(aLong, "", LedgerTrackEnum.SAVE);
|
|
tradeTrackService.saveTrack(aLong, "", LedgerTrackEnum.SAVE);
|
|
|
return "草稿保存成功";
|
|
return "草稿保存成功";
|
|
@@ -172,6 +236,7 @@ public class KwpLedgerTradeService extends AbsLedger {
|
|
|
}
|
|
}
|
|
|
deleteCheck(kwpLedgerTrade.getStatus());
|
|
deleteCheck(kwpLedgerTrade.getStatus());
|
|
|
kwpLedgerTrade.setDelFlag(1);
|
|
kwpLedgerTrade.setDelFlag(1);
|
|
|
|
|
+ kwpLedgerTrade.setUpdateTime(LocalDateTime.now());
|
|
|
tradeMapper.updateById(kwpLedgerTrade);
|
|
tradeMapper.updateById(kwpLedgerTrade);
|
|
|
tradeTrackService.saveTrack(kwpLedgerTrade.getId(), "", LedgerTrackEnum.DELETE);
|
|
tradeTrackService.saveTrack(kwpLedgerTrade.getId(), "", LedgerTrackEnum.DELETE);
|
|
|
return "删除成功";
|
|
return "删除成功";
|
|
@@ -203,7 +268,6 @@ public class KwpLedgerTradeService extends AbsLedger {
|
|
|
*/
|
|
*/
|
|
|
public List<KwpLedgerTradeTrack> queryBack(Long id) {
|
|
public List<KwpLedgerTradeTrack> queryBack(Long id) {
|
|
|
return tradeTrackService.selectList(id, LedgerTrackEnum.REJECT);
|
|
return tradeTrackService.selectList(id, LedgerTrackEnum.REJECT);
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -217,6 +281,10 @@ public class KwpLedgerTradeService extends AbsLedger {
|
|
|
if (Objects.isNull(kwpLedgerTrade)) {
|
|
if (Objects.isNull(kwpLedgerTrade)) {
|
|
|
throw new BusinessException("对账单不存在!");
|
|
throw new BusinessException("对账单不存在!");
|
|
|
}
|
|
}
|
|
|
|
|
+ backCheck(kwpLedgerTrade.getStatus());
|
|
|
|
|
+ kwpLedgerTrade.setStatus(LedgerEnum.BACK.getStatus());
|
|
|
|
|
+ kwpLedgerTrade.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
+ tradeMapper.updateById(kwpLedgerTrade);
|
|
|
return tradeTrackService.saveTrack(ledgerReq.getId(), ledgerReq.getRemark(), LedgerTrackEnum.REJECT);
|
|
return tradeTrackService.saveTrack(ledgerReq.getId(), ledgerReq.getRemark(), LedgerTrackEnum.REJECT);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -231,6 +299,7 @@ public class KwpLedgerTradeService extends AbsLedger {
|
|
|
if (Objects.isNull(kwpLedgerTrade)) {
|
|
if (Objects.isNull(kwpLedgerTrade)) {
|
|
|
throw new BusinessException("对账单不存在!");
|
|
throw new BusinessException("对账单不存在!");
|
|
|
}
|
|
}
|
|
|
|
|
+ confirmCheck(kwpLedgerTrade.getStatus());
|
|
|
kwpLedgerTrade.setStatus(LedgerEnum.LEDGERED.getStatus());
|
|
kwpLedgerTrade.setStatus(LedgerEnum.LEDGERED.getStatus());
|
|
|
kwpLedgerTrade.setAuditPhone(confirmReq.getAuditPhone());
|
|
kwpLedgerTrade.setAuditPhone(confirmReq.getAuditPhone());
|
|
|
kwpLedgerTrade.setAuditUser(confirmReq.getAuditUser());
|
|
kwpLedgerTrade.setAuditUser(confirmReq.getAuditUser());
|
|
@@ -278,4 +347,25 @@ public class KwpLedgerTradeService extends AbsLedger {
|
|
|
tradeTrackService.saveTrack(ledgerReq.getId(), "", LedgerTrackEnum.SUCCESS);
|
|
tradeTrackService.saveTrack(ledgerReq.getId(), "", LedgerTrackEnum.SUCCESS);
|
|
|
return "对账完成";
|
|
return "对账完成";
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ public List<LedgerCountVo> orderCount() {
|
|
|
|
|
+ Map<String, Long> map = tradeMapper.countOrder();
|
|
|
|
|
+ LedgerCountVo ledgerCountVo;
|
|
|
|
|
+ List<LedgerCountVo> res = new ArrayList<>();
|
|
|
|
|
+ for (LedgerEnum value : LedgerEnum.values()) {
|
|
|
|
|
+ ledgerCountVo = new LedgerCountVo();
|
|
|
|
|
+ ledgerCountVo.setCount(map.get(String.valueOf(value.getStatus())));
|
|
|
|
|
+ ledgerCountVo.setLabel(value.getDesc());
|
|
|
|
|
+ ledgerCountVo.setStatus(value.getStatus());
|
|
|
|
|
+ res.add(ledgerCountVo);
|
|
|
|
|
+ }
|
|
|
|
|
+ return res;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public List<LedgerTradeDto> selectList(List<Long> ids) {
|
|
|
|
|
+ List<LedgerTradeDto> ledgerTradeDto = tradeMapper.selectIds(ids);
|
|
|
|
|
+ changeDict(ledgerTradeDto);
|
|
|
|
|
+ return ledgerTradeDto;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|