|
|
@@ -20,7 +20,6 @@ import org.dromara.common.core.domain.R;
|
|
|
import org.dromara.common.core.domain.model.ErrorInfo;
|
|
|
import org.dromara.common.core.enums.BalanceUpdateEnum;
|
|
|
import org.dromara.common.core.enums.CreditTypeEnum;
|
|
|
-import org.dromara.common.core.enums.ResultCodeEnum;
|
|
|
import org.dromara.common.core.exception.consume.ConsumeException;
|
|
|
import org.dromara.common.core.utils.RecordIdUtils;
|
|
|
import org.dromara.common.core.utils.SpringUtils;
|
|
|
@@ -34,9 +33,11 @@ import org.dromara.server.base.service.yktOperation.SyncRemoteSendMessageRecordS
|
|
|
import org.dromara.server.common.domain.consume.bo.ConsumptionBo;
|
|
|
import org.dromara.server.common.domain.vo.yc.YcPushConsumeInfoVo;
|
|
|
import org.dromara.server.consume.domain.bo.*;
|
|
|
+import org.dromara.server.consume.domain.convert.RemoteVoConvert;
|
|
|
import org.dromara.server.consume.domain.vo.*;
|
|
|
import org.dromara.server.consume.service.*;
|
|
|
import org.dromara.system.api.RemoteRegisterInfoService;
|
|
|
+import org.jetbrains.annotations.NotNull;
|
|
|
import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
@@ -92,40 +93,56 @@ public class BaseBusiness {
|
|
|
accountVo.getUserNo().intValue(), 0);
|
|
|
}
|
|
|
|
|
|
- XfConsumeDetailOriginalBo originalBo = new XfConsumeDetailOriginalBo();
|
|
|
- BeanUtil.copyProperties(consumeBo, originalBo);
|
|
|
- if (ObjectUtil.isNotEmpty(originalBo.getRecordId()) && originalBo.getRecordId() == 0) {
|
|
|
- originalBo.setRecordId(null);
|
|
|
- }
|
|
|
- originalBo.setOriginalId(originalId);
|
|
|
- originalBo.setDataFlag(consumeBo.getRecordStatus());
|
|
|
- originalBo.setAnalysisFlag(0L);
|
|
|
- originalBo.setCardValue(consumeBo.getBalance());
|
|
|
- originalBo.setConsumeBalance(consumeBo.getBalance());
|
|
|
- originalBo.setDigitalSign(consumeBo.getDigitalSign());
|
|
|
- originalBo.setUserId(accountVo.getUserId());
|
|
|
- originalBo.setDeptId(accountVo.getDeptId());
|
|
|
+ XfConsumeDetailOriginalBo originalBo = getXfConsumeDetailOriginalBo(consumeBo, accountVo, originalId);
|
|
|
+
|
|
|
XfConsumeDetailOriginalVo vo = originalService.queryById(originalId);
|
|
|
if (ObjUtil.isNotEmpty(vo)) {
|
|
|
- // 如果原始消费记录表中已有该笔消费,则检查是否入账
|
|
|
- XfConsumeDetailVo detailVo = consumeDetailService.queryById(originalId);
|
|
|
- if (ObjUtil.isNotEmpty(detailVo)) {
|
|
|
- // 该笔消费记录已入账
|
|
|
- return R.fail(new ErrorInfo(ResultCodeEnum.DATA_ALREADY_EXISTED.code(), "该笔交易已入账", "该笔消费记录已入账,不能重复入账"));
|
|
|
- }
|
|
|
- // 未入账,直接返回入账数据
|
|
|
- BeanUtil.copyProperties(vo, originalVo);
|
|
|
+ RemoteVoConvert.INSTANCE.copyXfConsumeDetailOriginalVo(originalVo, vo);
|
|
|
return R.ok();
|
|
|
}
|
|
|
// 原始记录表不存在此消费记录,直接插入
|
|
|
vo = originalService.insertByBo(originalBo);
|
|
|
if (ObjUtil.isNotEmpty(vo)) {
|
|
|
- BeanUtil.copyProperties(vo, originalVo);
|
|
|
+ RemoteVoConvert.INSTANCE.copyXfConsumeDetailOriginalVo(originalVo, vo);
|
|
|
return R.ok();
|
|
|
}
|
|
|
+
|
|
|
return R.fail();
|
|
|
}
|
|
|
|
|
|
+ @NotNull
|
|
|
+ private XfConsumeDetailOriginalBo getXfConsumeDetailOriginalBo(ConsumptionBo consumeBo, RemoteUserAccountVo accountVo, String originalId) {
|
|
|
+ XfConsumeDetailOriginalBo originalBo = new XfConsumeDetailOriginalBo();
|
|
|
+ originalBo.setOriginalId(originalId);
|
|
|
+ originalBo.setUserId(accountVo.getUserId());
|
|
|
+ originalBo.setUserNumb(accountVo.getUserNumb());
|
|
|
+ originalBo.setRealName(accountVo.getRealName());
|
|
|
+ originalBo.setDeptId(accountVo.getDeptId());
|
|
|
+ originalBo.setDeptName(accountVo.getDeptName());
|
|
|
+ originalBo.setConsumeDate(consumeBo.getConsumeDate());
|
|
|
+ originalBo.setConsumeMoney(consumeBo.getConsumeMoney());
|
|
|
+ originalBo.setCardNo(consumeBo.getCardNo());
|
|
|
+ originalBo.setFactoryId(consumeBo.getFactoryId());
|
|
|
+ originalBo.setCardValue(consumeBo.getBalance());
|
|
|
+ originalBo.setConsumeBalance(consumeBo.getBalance());
|
|
|
+ originalBo.setTermNo(consumeBo.getTermNo().intValue());
|
|
|
+ // originalBo.setTermName(consumeBo.ter);
|
|
|
+ originalBo.setTermRecordId(consumeBo.getTermRecordId());
|
|
|
+ originalBo.setAnalysisFlag(0L);
|
|
|
+ originalBo.setDataFlag(consumeBo.getRecordStatus());
|
|
|
+ originalBo.setStatusFlag(consumeBo.getStatusFlag());
|
|
|
+ originalBo.setDigitalSign(consumeBo.getDigitalSign());
|
|
|
+ originalBo.setWaterValue(new BigDecimal("0"));
|
|
|
+ originalBo.setWaterHistoryValue(new BigDecimal("0"));
|
|
|
+ originalBo.setWaterDaySum(new BigDecimal("0"));
|
|
|
+ originalBo.setWaterErrValue(new BigDecimal("0"));
|
|
|
+ originalBo.setWaterErrMoney(new BigDecimal("0"));
|
|
|
+ originalBo.setOperatorId(0L);
|
|
|
+ originalBo.setTenantId(defaultConfig.getTenantId());
|
|
|
+
|
|
|
+ return originalBo;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 消费记录入库
|
|
|
* 1.写入消费明细表
|
|
|
@@ -295,6 +312,7 @@ public class BaseBusiness {
|
|
|
public Boolean updateConsumeStatusById(Long messageId) {
|
|
|
return syncRemoteSendMessageRecordService.updateConsumeStatusById(messageId);
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 创建一条消费明细记录
|
|
|
*
|
|
|
@@ -309,7 +327,7 @@ public class BaseBusiness {
|
|
|
private XfConsumeDetailVo createConsumeRecord(ConsumptionBo bo, RemoteUserAccountVo userAccountVo,
|
|
|
RemoteCardVo cardVo, PtBagVo bagVo, XfTermVo termVo,
|
|
|
RemoteMealTypeVo mealTypeVo, String remark) {
|
|
|
- String recordId = RecordIdUtils.getRecordId(new Date(), Short.parseShort(bo.getTermNo().toString()),
|
|
|
+ String recordId = RecordIdUtils.getRecordId(bo.getConsumeDate(), Short.parseShort(bo.getTermNo().toString()),
|
|
|
bo.getTermRecordId().intValue(),
|
|
|
userAccountVo.getUserNo().intValue(),
|
|
|
Integer.parseInt(bagVo.getBagCode()));
|