|
|
@@ -182,7 +182,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
.eq(FinStlBills::getIsDeleted, 0)
|
|
|
.in(FinStlBills::getId, ids));
|
|
|
if (!finStlBillsList.isEmpty()) {
|
|
|
- List<FinStlBills> recordListD = finStlBillsList.stream().filter(e -> "D".equals(e.getDc()) && "1".equals(e.getWhetherManual())).collect(Collectors.toList());
|
|
|
+ List<FinStlBills> recordListD = finStlBillsList.stream().filter(e -> "D".equals(e.getDc()) && "0".equals(e.getWhetherManual())).collect(Collectors.toList());
|
|
|
if (!recordListD.isEmpty()) {
|
|
|
List<Record> recordList = new ArrayList<>();
|
|
|
for (FinStlBills item : recordListD) {
|
|
|
@@ -202,7 +202,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
}
|
|
|
detail.setRecordListD(recordList);
|
|
|
}
|
|
|
- List<FinStlBills> recordListC = finStlBillsList.stream().filter(e -> "C".equals(e.getDc()) && "1".equals(e.getWhetherManual())).collect(Collectors.toList());
|
|
|
+ List<FinStlBills> recordListC = finStlBillsList.stream().filter(e -> "C".equals(e.getDc()) && "0".equals(e.getWhetherManual())).collect(Collectors.toList());
|
|
|
if (!recordListC.isEmpty()) {
|
|
|
List<Record> recordList = new ArrayList<>();
|
|
|
for (FinStlBills item : recordListC) {
|
|
|
@@ -430,9 +430,11 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
item.setPodCode(agent.getPodCode());
|
|
|
item.setPodCnName(agent.getPodCnName());
|
|
|
item.setPodEnName(agent.getPodEnName());
|
|
|
+ item.setPid(agent.getId());
|
|
|
+ } else {
|
|
|
+ item.setStlPid(agent.getId());
|
|
|
}
|
|
|
if (item.getId() == null) {
|
|
|
- item.setPid(agent.getId());
|
|
|
item.setCreateTime(new Date());
|
|
|
item.setCreateUser(AuthUtil.getUserId());
|
|
|
item.setCreateUserName(AuthUtil.getUserName());
|
|
|
@@ -466,10 +468,11 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
item.setPodId(agent.getPodId());
|
|
|
item.setPodCode(agent.getPodCode());
|
|
|
item.setPodCnName(agent.getPodCnName());
|
|
|
- item.setPodEnName(agent.getPodEnName());
|
|
|
+ item.setPid(agent.getId());
|
|
|
+ } else {
|
|
|
+ item.setStlPid(agent.getId());
|
|
|
}
|
|
|
if (item.getId() == null) {
|
|
|
- item.setPid(agent.getId());
|
|
|
item.setCreateTime(new Date());
|
|
|
item.setCreateUser(AuthUtil.getUserId());
|
|
|
item.setCreateUserName(AuthUtil.getUserName());
|
|
|
@@ -1301,26 +1304,12 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
throw new RuntimeException("缺少必要参数");
|
|
|
}
|
|
|
Agent declare = baseMapper.selectById(agent.getId());
|
|
|
- Integer actId = null;
|
|
|
- String processType = "";
|
|
|
- String checkType = "";
|
|
|
- String fidStatus = "";
|
|
|
- if ("FFSQ-SK".equals(agent.getPaidApplication())) {
|
|
|
- actId = 1123;
|
|
|
- processType = "贸易代理首款付费申请";
|
|
|
- checkType = "FFSQ-SK";
|
|
|
- fidStatus = "first_status";
|
|
|
- declare.setApplyForPayment("1");
|
|
|
- declare.setOrderStatus("已申请首付款");
|
|
|
-
|
|
|
- } else if ("FFSQ-WK".equals(agent.getPaidApplication())) {
|
|
|
- actId = 1124;
|
|
|
- processType = "贸易代理尾款付费申请";
|
|
|
- checkType = "FFSQ-WK";
|
|
|
- fidStatus = "final_status";
|
|
|
- declare.setApplyForPaymentBalance("1");
|
|
|
- declare.setOrderStatus("已申请尾款");
|
|
|
- }
|
|
|
+ Integer actId = 1123;
|
|
|
+ String processType = "贸易代理首款付费申请";
|
|
|
+ String checkType = "FFSQ-SK";
|
|
|
+ String fidStatus = "first_status";
|
|
|
+ declare.setApplyForPayment("1");
|
|
|
+ declare.setOrderStatus("已申请首付款");
|
|
|
//获取审批级次
|
|
|
List<LosAuditPathsLevels> auditPathsLevels;
|
|
|
// 判断是否有审批流,如果审批流已开启就进入审批流,否则直接走申请通过
|
|
|
@@ -1378,67 +1367,9 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
throw new SecurityException("发送消息失败");
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- String feeType = "";
|
|
|
- if ("FFSQ-SK".equals(agent.getPaidApplication())) {
|
|
|
- declare.setFirstStatus("审核通过");
|
|
|
- feeType = "1";
|
|
|
- } else if ("FFSQ-WK".equals(agent.getPaidApplication())) {
|
|
|
- declare.setFinalStatus("审核通过");
|
|
|
- feeType = "2";
|
|
|
- }
|
|
|
- List<FeeCenter> feeCenters = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .eq(FeeCenter::getPid, agent.getId())
|
|
|
- .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getIsDeleted, 0)
|
|
|
- .eq(FeeCenter::getDc, "D")
|
|
|
- .eq(FeeCenter::getFeeType, feeType));
|
|
|
- if ("FFSQ-SK".equals(agent.getPaidApplication())) {
|
|
|
- declare.setFirstPaymentPayable(feeCenters.stream().filter(e -> "SFK".equals(e.getFeeCode())).map(FeeCenter::getAmountLoc)
|
|
|
- .reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- } else if ("FFSQ-WK".equals(agent.getPaidApplication())) {
|
|
|
- declare.setFinalPaymentPayable(feeCenters.stream().filter(e -> "WK".equals(e.getFeeCode())).map(FeeCenter::getAmountLoc)
|
|
|
- .reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- }
|
|
|
- List<FeeCenter> feeCenterList = new ArrayList<>();
|
|
|
- for (FeeCenter item : feeCenters) {
|
|
|
- FeeCenter feeCenter = new FeeCenter();
|
|
|
- BeanUtil.copyProperties(item, feeCenter);
|
|
|
- feeCenter.setDc("C");
|
|
|
- feeCenter.setId(null);
|
|
|
- feeCenter.setCreateTime(new Date());
|
|
|
- feeCenter.setCreateUser(AuthUtil.getUserId());
|
|
|
- feeCenter.setCreateUserName(AuthUtil.getUserName());
|
|
|
- feeCenter.setFeeType(feeType);
|
|
|
- feeCenter.setAccBillId(null);
|
|
|
- feeCenter.setAccBillNo(null);
|
|
|
- feeCenter.setAccDate(null);
|
|
|
- feeCenter.setAccAmount(new BigDecimal("0"));
|
|
|
- feeCenter.setAccStatus(0);
|
|
|
- feeCenter.setAccById(null);
|
|
|
- feeCenter.setAccByName(null);
|
|
|
- feeCenter.setUnsettledAmount(item.getAmount());
|
|
|
- feeCenter.setStlTtlAmount(new BigDecimal("0.00"));
|
|
|
- feeCenter.setStlOrgAmount(new BigDecimal("0.00"));
|
|
|
- feeCenter.setStlCurCode(null);
|
|
|
- feeCenter.setStlAmount(new BigDecimal("0.00"));
|
|
|
- feeCenter.setStlAmountLoc(new BigDecimal("0.00"));
|
|
|
- feeCenter.setStlStatus(0);
|
|
|
- feeCenter.setStlById(null);
|
|
|
- feeCenter.setStlByName(null);
|
|
|
- feeCenter.setUnsettledAmount(new BigDecimal("0.00"));
|
|
|
- feeCenter.setStlTtlAmount(new BigDecimal("0.00"));
|
|
|
- feeCenterList.add(feeCenter);
|
|
|
- }
|
|
|
- if (!feeCenterList.isEmpty()) {
|
|
|
- feeCenterService.saveBatch(feeCenterList);
|
|
|
- }
|
|
|
+ declare.setFirstStatus("审核通过");
|
|
|
} else {
|
|
|
- if ("FFSQ-SK".equals(agent.getPaidApplication())) {
|
|
|
- declare.setFirstStatus("审核提交");
|
|
|
- } else if ("FFSQ-WK".equals(agent.getPaidApplication())) {
|
|
|
- declare.setFinalStatus("审核提交");
|
|
|
- }
|
|
|
+ declare.setFirstStatus("审核提交");
|
|
|
//审批数据
|
|
|
LosAuditProecessDTO auditProecessDTO = new LosAuditProecessDTO();
|
|
|
auditProecessDTO.setTimes(1);
|
|
|
@@ -1509,9 +1440,16 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
if (businessType == null) {
|
|
|
throw new RuntimeException("未找到可用业务类型");
|
|
|
}
|
|
|
-
|
|
|
+ List<FeeCenter> feeCentersList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .eq(FeeCenter::getStlPid, agent.getId())
|
|
|
+ .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getIsDeleted, 0));
|
|
|
+ if (feeCentersList.isEmpty()) {
|
|
|
+ throw new RuntimeException("未找到费用明细");
|
|
|
+ }
|
|
|
+ List<Long> pids = feeCentersList.stream().map(FeeCenter::getPid).distinct().collect(Collectors.toList());
|
|
|
List<FeeCenter> feeCenters = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .eq(FeeCenter::getPid, agent.getId())
|
|
|
+ .in(FeeCenter::getPid, pids)
|
|
|
.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(FeeCenter::getIsDeleted, 0));
|
|
|
List<FeeCenter> feeCenterListD = feeCenters.stream().filter(e -> "D".equals(e.getDc())).collect(Collectors.toList());
|
|
|
@@ -2296,47 +2234,16 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
throw new RuntimeException("缺少必要参数");
|
|
|
}
|
|
|
Agent declare = baseMapper.selectById(agent.getId());
|
|
|
- if ("FFSQ-SK".equals(agent.getPaidApplication())) {
|
|
|
- if ("审核通过".equals(declare.getFirstStatus())) {
|
|
|
- throw new SecurityException("审核已通过,撤销失败");
|
|
|
- }
|
|
|
- declare.setFirstStatus("录入");
|
|
|
- declare.setOrderStatus("申请首付款撤销");
|
|
|
- } else if ("FFSQ-WK".equals(agent.getPaidApplication())) {
|
|
|
- if ("审核通过".equals(declare.getFinalStatus())) {
|
|
|
- throw new SecurityException("审核已通过,撤销失败");
|
|
|
- }
|
|
|
- declare.setFinalStatus("录入");
|
|
|
- declare.setOrderStatus("申请尾款撤销");
|
|
|
+ if ("审核通过".equals(declare.getFirstStatus())) {
|
|
|
+ throw new SecurityException("审核已通过,撤销失败");
|
|
|
}
|
|
|
+ declare.setFirstStatus("录入");
|
|
|
String status = sysClient.getParamServiceByDept("whether.apply.for.payment", AuthUtil.getTenantId(), AuthUtil.getDeptId());
|
|
|
if (ObjectUtils.isNotNull(status) && !"0".equals(status)) {
|
|
|
R financeProcess = auditProecessService.deteleByBillIdAndType(agent.getId(), agent.getPaidApplication());
|
|
|
if (!financeProcess.isSuccess()) {
|
|
|
throw new SecurityException("操作失败,请联系管理员");
|
|
|
}
|
|
|
- if ("FFSQ-SK".equals(agent.getPaidApplication())) {
|
|
|
- declare.setApplyForPayment("0");
|
|
|
- } else if ("FFSQ-WK".equals(agent.getPaidApplication())) {
|
|
|
- declare.setApplyForPaymentBalance("0");
|
|
|
- }
|
|
|
- } else {
|
|
|
- String feeType = "";
|
|
|
- if ("FFSQ-SK".equals(agent.getPaidApplication())) {
|
|
|
- feeType = "1";
|
|
|
- } else if ("FFSQ-WK".equals(agent.getPaidApplication())) {
|
|
|
- feeType = "2";
|
|
|
- }
|
|
|
- List<FeeCenter> feeCenters = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .eq(FeeCenter::getPid, agent.getId())
|
|
|
- .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getIsDeleted, 0)
|
|
|
- .eq(FeeCenter::getDc, "C")
|
|
|
- .eq(FeeCenter::getFeeType, feeType));
|
|
|
- if (!feeCenters.isEmpty()) {
|
|
|
- List<Long> ids = feeCenters.stream().map(FeeCenter::getId).collect(Collectors.toList());
|
|
|
- feeCenterService.removeByIds(ids);
|
|
|
- }
|
|
|
}
|
|
|
baseMapper.updateById(declare);
|
|
|
return declare;
|
|
|
@@ -2471,34 +2378,35 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
if (agent.getId() == null) {
|
|
|
throw new RuntimeException("缺少必要参数");
|
|
|
}
|
|
|
- String feeType = "";
|
|
|
- String feeTypeName = "";
|
|
|
- if ("SK".equals(agent.getPaidApplication())) {
|
|
|
- feeType = "1";
|
|
|
- feeTypeName = "首付款";
|
|
|
- } else if ("WK".equals(agent.getPaidApplication())) {
|
|
|
- feeType = "2";
|
|
|
- feeTypeName = "尾款";
|
|
|
- }
|
|
|
List<FeeCenter> feeCenters = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .eq(FeeCenter::getPid, agent.getId())
|
|
|
+ .eq(FeeCenter::getStlPid, agent.getId())
|
|
|
.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getIsDeleted, 0)
|
|
|
- .eq(FeeCenter::getFeeType, feeType));
|
|
|
- List<FeeCenter> feeCenterListD = feeCenters.stream().filter(e -> "D".equals(e.getDc())).collect(Collectors.toList());
|
|
|
- if (feeCenterListD.isEmpty()) {
|
|
|
- throw new RuntimeException("未找到" + feeTypeName + "应收费用明细");
|
|
|
- }
|
|
|
- BigDecimal amountD = feeCenterListD.stream().map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- BigDecimal amount = feeCenterListD.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- if (amount.compareTo(amountD) != 0) {
|
|
|
- return R.data(feeTypeName + "实收未全部到账是否继续确认付款");
|
|
|
+ .eq(FeeCenter::getIsDeleted, 0));
|
|
|
+ if (!feeCenters.isEmpty()) {
|
|
|
+ List<Long> pids = feeCenters.stream().map(FeeCenter::getPid).distinct().collect(Collectors.toList());
|
|
|
+ List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .in(FeeCenter::getPid, pids)
|
|
|
+ .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getIsDeleted, 0));
|
|
|
+ List<FeeCenter> feeCenterListD = feeCenterList.stream().filter(e -> "D".equals(e.getDc())).collect(Collectors.toList());
|
|
|
+ if (feeCenterListD.isEmpty()) {
|
|
|
+ throw new RuntimeException("未找到应收费用明细");
|
|
|
+ }
|
|
|
+ BigDecimal amountD = feeCenterListD.stream().map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal amount = feeCenterListD.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ if (amount.compareTo(amountD) != 0) {
|
|
|
+ return R.data("实收未全部到账是否继续确认付款");
|
|
|
+ } else {
|
|
|
+ return R.data("是否确认付款");
|
|
|
+ }
|
|
|
} else {
|
|
|
- return R.data("是否确认付款");
|
|
|
+ throw new RuntimeException("未找到费用明细");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ @GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
|
|
|
public Agent generatePayment(Agent agent) {
|
|
|
if (agent.getId() == null) {
|
|
|
throw new RuntimeException("缺少必要参数");
|
|
|
@@ -2590,6 +2498,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ @GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
|
|
|
public R applyForPaymentList(String ids, String dc) {
|
|
|
List<Agent> agentList = baseMapper.selectList(new LambdaQueryWrapper<Agent>()
|
|
|
.eq(Agent::getTenantId, AuthUtil.getTenantId())
|
|
|
@@ -2611,6 +2521,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ @GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
|
|
|
public R generate(List<FeeCenter> feeCenterList) {
|
|
|
Long deptId = 0L;
|
|
|
String deptName = "";
|
|
|
@@ -2638,6 +2550,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
stlAgent.setBusinessType("MYDL-STL");
|
|
|
stlAgent.setDc(feeCenterList.get(0).getDc());
|
|
|
stlAgent.setBusinessDate(date);
|
|
|
+ stlAgent.setGoodsValue(feeCenterList.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
BusinessBillNo businessBillNo = new BusinessBillNo();
|
|
|
businessBillNo.setBusinessTypeId(businessType.getId());
|
|
|
businessBillNo.setCode("MYDL-STL");
|