|
|
@@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.jzg.commons.core.base.BaseController;
|
|
|
import com.jzg.commons.core.base.StateResult;
|
|
|
import com.jzg.commons.core.page.HttpResult;
|
|
|
-import com.jzg.commons.entity.account.po.SysUserAccountIncomeLog;
|
|
|
+import com.jzg.commons.entity.account.po.SysUserAccountChangeLog;
|
|
|
import com.jzg.commons.entity.dto.CostCalculateRespVO;
|
|
|
import com.jzg.commons.entity.dto.FeeAuditParam;
|
|
|
import com.jzg.commons.entity.dto.VerifyOrderParam;
|
|
|
@@ -28,6 +28,7 @@ import com.jzg.commons.entity.vo.*;
|
|
|
import com.jzg.commons.exception.ServiceException;
|
|
|
import com.jzg.commons.exception.SystemException;
|
|
|
import com.jzg.commons.util.AssertionUtils;
|
|
|
+import com.jzg.commons.util.BigDecimalUtil;
|
|
|
import com.jzg.commons.util.PDFUtil;
|
|
|
import com.jzg.commons.util.StringUtils;
|
|
|
import com.jzg.commons.util.idgen.IdGenerate;
|
|
|
@@ -46,6 +47,7 @@ import com.jzg.quotation.summary.mapper.InsOrderRightsPackageMapper;
|
|
|
import com.jzg.quotation.summary.service.*;
|
|
|
import com.jzg.quotation.summary.state.AuditState;
|
|
|
import com.jzg.quotation.summary.state.listener.AuditStateListener;
|
|
|
+import io.seata.spring.annotation.GlobalTransactional;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.hibernate.validator.internal.util.stereotypes.Lazy;
|
|
|
import org.redisson.api.RBucket;
|
|
|
@@ -385,10 +387,19 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
insOrdersService.updateById(orders);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 费用审核通过
|
|
|
+ * 费用审核通过后,会给业务员账号打钱
|
|
|
+ *
|
|
|
+ * @author lipf
|
|
|
+ * @date 2026/6/8 9:08
|
|
|
+ */
|
|
|
@Override
|
|
|
+ @GlobalTransactional(rollbackFor = Exception.class)
|
|
|
public void verifyOrder(VerifyOrderParam param) {
|
|
|
String systemCode = baseController.getSystemCode();
|
|
|
- log.info("审核订单.systemCode=[{}], param=[{}]",systemCode, JSONUtil.toJsonStr(param));
|
|
|
+ String userId = baseController.getUserId();
|
|
|
+ log.info("订单费用审核.systemCode=[{}], param=[{}]",systemCode, JSONUtil.toJsonStr(param));
|
|
|
InsFeeAudit audit = this.getById(param.getOrderNo());
|
|
|
if(audit == null){
|
|
|
throw new ServiceException("要审核的订单不存在");
|
|
|
@@ -415,8 +426,9 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
}
|
|
|
InsFeeOrders feeOrders = null;
|
|
|
SysUserAccount userAccount = null;
|
|
|
+ String jzgInfoId = null;
|
|
|
if(param.getAuditStatus().equals(1)){
|
|
|
- List<SysUserAccountIncomeLog> incomeLogs = new ArrayList<>();
|
|
|
+ List<SysUserAccountChangeLog> incomeLogs = new ArrayList<>();
|
|
|
StateResult stateFailResult = auditStateListener.statusChange(AuditState.AuditStateEnum.SUCCESS_AUDIT,audit.getAuditStatus()+"");
|
|
|
audit.setAuditStatus(stateFailResult.getCurrentState());
|
|
|
|
|
|
@@ -435,17 +447,22 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
AssertionUtils.isFail(true, "权益券下发失败");
|
|
|
}
|
|
|
if(Objects.isNull(userAccount)){
|
|
|
+ log.info("订单费用审核时,检查到租户[{}]下的账号[{}]不存在",systemCode,sysUserResult.getData().getId());
|
|
|
userAccount = new SysUserAccount();
|
|
|
// 新建账户
|
|
|
userAccount.setId(IdGenerate.nextId());
|
|
|
userAccount.setUserId(sysUserResult.getData().getId());
|
|
|
- userAccount.setSumAmount(feeOrders.getTotalReceivablePremium());
|
|
|
- userAccount.setSumAmountUnpaid(feeOrders.getTotalReceivablePremium());
|
|
|
userAccount.setSystemCode(systemCode);
|
|
|
- }else{
|
|
|
- userAccount.setSumAmount(feeOrders.getTotalReceivablePremium().add(userAccount.getSumAmount()));
|
|
|
- userAccount.setSumAmountUnpaid(feeOrders.getTotalReceivablePremium().add(userAccount.getSumAmount()));
|
|
|
}
|
|
|
+ BigDecimal sumAmount = userAccount.getSumAmount();
|
|
|
+ BigDecimal amount = feeOrders.getTotalReceivablePremium();
|
|
|
+
|
|
|
+ SysUserAccountChangeLog changeLog = new SysUserAccountChangeLog(systemCode, userId,jzgInfoId);
|
|
|
+ changeLog.setAmount(amount);
|
|
|
+ changeLog.setAmountBefore(sumAmount);
|
|
|
+
|
|
|
+ userAccount.setSumAmount(BigDecimalUtil.add(feeOrders.getTotalReceivablePremium(),userAccount.getSumAmount()));
|
|
|
+ userAccount.setSumAmountUnpaid(BigDecimalUtil.add(feeOrders.getTotalReceivablePremium(), userAccount.getSumAmount()));
|
|
|
orgClient.saveOrUpdate(userAccount);
|
|
|
// 进入应收表
|
|
|
List<String> orderNos = new ArrayList<>();
|
|
|
@@ -520,7 +537,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
}
|
|
|
// 增加账户的金额记录
|
|
|
// modify by lipf, 2026年5月20日11:31:59 审核通过后,才需要 生成收入明细日志
|
|
|
- List<SysUserAccountIncomeLog>builderIncomeLog = this.builderIncomeLog(feeOrders.getOrderNo(),feeOrders,userAccount,distributor1,distributor2,distributor3);
|
|
|
+ List<SysUserAccountChangeLog>builderIncomeLog = this.builderIncomeLog(feeOrders.getOrderNo(),feeOrders,userAccount,distributor1,distributor2,distributor3);
|
|
|
HttpResult result2 = orgClient.addUserAccountIncomeLog(builderIncomeLog);
|
|
|
AssertionUtils.isFail(result2.getCode() != 200,"账户记录添加失败,审核失败");
|
|
|
}
|
|
|
@@ -643,7 +660,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
* @param distributor3 3级分销人员
|
|
|
* @return
|
|
|
*/
|
|
|
- private List<SysUserAccountIncomeLog> builderIncomeLog(String orderNo,
|
|
|
+ private List<SysUserAccountChangeLog> builderIncomeLog(String orderNo,
|
|
|
InsFeeOrders feeOrders,
|
|
|
SysUserAccount userAccount,
|
|
|
SysUserAccount distributor1,
|
|
|
@@ -651,47 +668,46 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
SysUserAccount distributor3){
|
|
|
log.info("生成收入明细日志:feeOrders=[{}],userAccount=[{}],distributor1=[{}],distributor2=[{}],distributor3=[{}]",
|
|
|
JSONUtil.toJsonStr(feeOrders), JSONUtil.toJsonStr(userAccount), JSONUtil.toJsonStr(distributor1), JSONUtil.toJsonStr(distributor2), JSONUtil.toJsonStr(distributor3));
|
|
|
- List<SysUserAccountIncomeLog> incomeLogs = new ArrayList<>();
|
|
|
+ List<SysUserAccountChangeLog> incomeLogs = new ArrayList<>();
|
|
|
// 出口费用
|
|
|
- SysUserAccountIncomeLog exportIncomeLog = new SysUserAccountIncomeLog();
|
|
|
- exportIncomeLog.setOrderId(orderNo);
|
|
|
+ SysUserAccountChangeLog exportIncomeLog = new SysUserAccountChangeLog();
|
|
|
+ exportIncomeLog.setRelatedOrderId(orderNo);
|
|
|
exportIncomeLog.setUserId(userAccount.getUserId());
|
|
|
exportIncomeLog.setAmount(feeOrders.getJqExportPremium().add(feeOrders.getSyExportPremium()).add(feeOrders.getJyExportPremium()));
|
|
|
- exportIncomeLog.setProperty(1);
|
|
|
- exportIncomeLog.setBalanceAmount(userAccount.getSumAmount());
|
|
|
-
|
|
|
+ //exportIncomeLog.setProperty(1);
|
|
|
+ exportIncomeLog.setAmountBefore(userAccount.getSumAmount());
|
|
|
incomeLogs.add(exportIncomeLog);
|
|
|
|
|
|
// 1级分销费
|
|
|
if (feeOrders.getFirstDistributorId() != null && feeOrders.getFirstDistributionFee().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
- SysUserAccountIncomeLog distributor1IncomeLog = new SysUserAccountIncomeLog();
|
|
|
- distributor1IncomeLog.setOrderId(orderNo);
|
|
|
+ SysUserAccountChangeLog distributor1IncomeLog = new SysUserAccountChangeLog();
|
|
|
+ distributor1IncomeLog.setRelatedOrderId(orderNo);
|
|
|
distributor1IncomeLog.setUserId(distributor1.getUserId());
|
|
|
distributor1IncomeLog.setAmount(feeOrders.getFirstDistributionFee());
|
|
|
- distributor1IncomeLog.setProperty(2);
|
|
|
- distributor1IncomeLog.setBalanceAmount(userAccount.getSumAmount());
|
|
|
+ //distributor1IncomeLog.setProperty(2);
|
|
|
+ distributor1IncomeLog.setAmountBefore(userAccount.getSumAmount());
|
|
|
incomeLogs.add(distributor1IncomeLog);
|
|
|
}
|
|
|
|
|
|
// 2级分销费
|
|
|
if (feeOrders.getSecondDistributorId() != null && feeOrders.getSecondDistributionFee().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
- SysUserAccountIncomeLog distributor2IncomeLog = new SysUserAccountIncomeLog();
|
|
|
- distributor2IncomeLog.setOrderId(orderNo);
|
|
|
+ SysUserAccountChangeLog distributor2IncomeLog = new SysUserAccountChangeLog();
|
|
|
+ distributor2IncomeLog.setRelatedOrderId(orderNo);
|
|
|
distributor2IncomeLog.setUserId(distributor2.getUserId());
|
|
|
distributor2IncomeLog.setAmount(feeOrders.getFirstDistributionFee());
|
|
|
- distributor2IncomeLog.setProperty(2);
|
|
|
- distributor2IncomeLog.setBalanceAmount(userAccount.getSumAmount());
|
|
|
+ //distributor2IncomeLog.setProperty(2);
|
|
|
+ distributor2IncomeLog.setAmountBefore(userAccount.getSumAmount());
|
|
|
incomeLogs.add(distributor2IncomeLog);
|
|
|
}
|
|
|
|
|
|
// 3级分销费
|
|
|
if (feeOrders.getThirdDistributorId() != null && feeOrders.getThirdDistributionFee().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
- SysUserAccountIncomeLog distributor3IncomeLog = new SysUserAccountIncomeLog();
|
|
|
- distributor3IncomeLog.setOrderId(orderNo);
|
|
|
+ SysUserAccountChangeLog distributor3IncomeLog = new SysUserAccountChangeLog();
|
|
|
+ distributor3IncomeLog.setRelatedOrderId(orderNo);
|
|
|
distributor3IncomeLog.setUserId(distributor3.getUserId());
|
|
|
distributor3IncomeLog.setAmount(feeOrders.getFirstDistributionFee());
|
|
|
- distributor3IncomeLog.setProperty(2);
|
|
|
- distributor3IncomeLog.setBalanceAmount(userAccount.getSumAmount());
|
|
|
+ //distributor3IncomeLog.setProperty(2);
|
|
|
+ distributor3IncomeLog.setAmountBefore(userAccount.getSumAmount());
|
|
|
incomeLogs.add(distributor3IncomeLog);
|
|
|
}
|
|
|
return incomeLogs;
|