|
@@ -638,7 +638,20 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
|
|
|
APPLoginUserInfo appLoginInfo = StpAPPUserUtil.getAPPLoginInfo();
|
|
|
TbPeople tbPeople = tbPeopleMapper.selectById(appLoginInfo.getFk());
|
|
|
if (tbPeople == null) throw new ServiceException("当前用户不存在,请联系管理员!");
|
|
|
- List<TbOrder> orderList = findByBuyUserId(appLoginInfo.getFk());
|
|
|
+ List<TbOrder> list = findByBuyUserId(appLoginInfo.getFk());
|
|
|
+
|
|
|
+ //互助社未确认关联的大订单时边民不能做订单确认
|
|
|
+ List<TbOrder> orderList = new ArrayList<>();
|
|
|
+ for (TbOrder order : list) {
|
|
|
+ QueryWrapper<HtTradeSettlement> htWrapper = new QueryWrapper<>();
|
|
|
+ htWrapper.lambda().eq(HtTradeSettlement::getId, order.getSaleMainId())
|
|
|
+ .eq(HtTradeSettlement::getHzsConfirmStatus, 1);
|
|
|
+ List<HtTradeSettlement> tradeSettlementList = htTradeSettlementService.list(htWrapper);
|
|
|
+ if(tradeSettlementList.size() > 0) {
|
|
|
+ orderList.add(order);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
OrderVo orderVo = new OrderVo();
|
|
|
//被委托订单,并且三个状态中有一个未确认
|
|
|
List<TbOrder> declareList2 = orderList.stream().filter(item -> item.getApplyConfirmStatus() == 0).collect(Collectors.toList());
|
|
@@ -704,12 +717,12 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 订单补扣款
|
|
|
+ * 订单补扣款——单个订单
|
|
|
*/
|
|
|
public boolean deduction(Long id) {
|
|
|
TbOrder tbOrder = getById(id);
|
|
|
if (tbOrder == null) {
|
|
|
- log.error("补扣款失败:{}不存在", id);
|
|
|
+ StaticLog.error("\n---------补扣款失败:{}不存在", id);
|
|
|
return false;
|
|
|
}
|
|
|
|
|
@@ -722,6 +735,34 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
|
|
|
|
|
|
return super.updateById(tbOrder);
|
|
|
}
|
|
|
+ /**
|
|
|
+ * 订单补扣款——按车,并且未扣款
|
|
|
+ */
|
|
|
+ public boolean deductionByVeNo(String veNo) {
|
|
|
+ LambdaQueryWrapper<TbOrder> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(TbOrder::getVeNo, veNo);
|
|
|
+ wrapper.ne(TbOrder::getSxb010Status, 1);
|
|
|
+ List<TbOrder> tbOrders = tbOrderMapper.selectList(wrapper);
|
|
|
+ if (!tbOrders.isEmpty()) {
|
|
|
+ for (TbOrder tbOrder : tbOrders) {
|
|
|
+ PaymentDto paymentDto = this.getPaymentData(tbOrder);
|
|
|
+ StaticLog.info("\n---订单补扣款——按车---sendSXB010——PaymentDto——:{}", JSONUtil.toJsonStr(paymentDto));
|
|
|
+ paymentServerInterface.sendSXB010(paymentDto);
|
|
|
+
|
|
|
+ tbOrder.setDeductionCount(tbOrder.getDeductionCount() + 1);
|
|
|
+ tbOrder.setDeductionTime(new Date());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return super.updateBatchById(tbOrders);
|
|
|
+ }
|
|
|
+ List<TbOrder> getDeductionByVeNoList(SoMap so) {
|
|
|
+ LambdaQueryWrapper<TbOrder> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(TbOrder::getVeNo, so.getString("veNo"));
|
|
|
+ wrapper.ne(TbOrder::getSxb010Status, 1);
|
|
|
+ List<TbOrder> tbOrders = tbOrderMapper.selectList(wrapper);
|
|
|
+ return tbOrders;
|
|
|
+ }
|
|
|
|
|
|
/*----- 正常业务逻辑👆👆 rpc远程调用👇👇 -----*/
|
|
|
|
|
@@ -795,6 +836,85 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
|
|
|
return updateById(tbOrder);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 订单补推结关信息给银行
|
|
|
+ */
|
|
|
+ public boolean sendCXB001(Long id) {
|
|
|
+ TbOrder tbOrder = getById(id);
|
|
|
+ if (tbOrder == null) {
|
|
|
+ StaticLog.error("\n----------订单补推结关信息失败:{}不存在", id);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ HtTradeSettlement htTradeSettlement = htTradeSettlementService.getById(tbOrder.getSaleMainId());
|
|
|
+
|
|
|
+ //todo: 收到航通007报文即收到海关结关信息,转发结关信息给到银行
|
|
|
+ PaymentDto paymentDto = new PaymentDto();
|
|
|
+ paymentDto.setTradeNo(tbOrder.getTradeNo());
|
|
|
+ paymentDto.setDeclTime(htTradeSettlement.getDeclTime());
|
|
|
+ StaticLog.info("\nsendCXB001——PaymentDto——:{}", JSONUtil.toJsonStr(paymentDto));
|
|
|
+ paymentServerInterface.sendCXB001(paymentDto);
|
|
|
+
|
|
|
+ //todo: 收到航通007报文即收到海关结关信息,转发通车批信息给到银行
|
|
|
+ PaymentDto paymentDto2 = new PaymentDto();
|
|
|
+ paymentDto2.setTradeNos(tbOrder.getTradeNo());
|
|
|
+ paymentDto2.setVoyageNo(htTradeSettlement.getVoyageNo());
|
|
|
+ paymentDto2.setVeNo(tbOrder.getVeNo());
|
|
|
+ StaticLog.info("\nsendSXB023——PaymentDto——:{}", JSONUtil.toJsonStr(paymentDto2));
|
|
|
+ paymentServerInterface.sendSXB023(paymentDto2);
|
|
|
+
|
|
|
+
|
|
|
+ tbOrder.setFinishTime(new Date());
|
|
|
+ tbOrder.setFinishStatus(FinishStatus.FINISH_STATUS_ONE.getCode());
|
|
|
+
|
|
|
+ return updateById(tbOrder);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 订单补推结关信息给银行——按车,并且未完成
|
|
|
+ */
|
|
|
+ public boolean sendCXB001ByVeNo(String veNo) {
|
|
|
+ LambdaQueryWrapper<TbOrder> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(TbOrder::getVeNo, veNo);
|
|
|
+ wrapper.ne(TbOrder::getFinishStatus, 1).orderByDesc(TbOrder::getCreateTime);
|
|
|
+ List<TbOrder> tbOrders = tbOrderMapper.selectList(wrapper);
|
|
|
+
|
|
|
+ if (!tbOrders.isEmpty()) {
|
|
|
+ HtTradeSettlement htTradeSettlement = htTradeSettlementService.getById(tbOrders.get(0).getSaleMainId());
|
|
|
+ String tradeNos = "";
|
|
|
+ PaymentDto paymentDto = new PaymentDto();
|
|
|
+ for (TbOrder tbOrder : tbOrders) {
|
|
|
+ tradeNos += tbOrder.getTradeNo() + ",";
|
|
|
+ //收到007结关信息后边民即可上架订单,不需等收到打款给外籍商户的成功回执SXB017才能完成订单
|
|
|
+ tbOrder.setFinishTime(new Date());
|
|
|
+ tbOrder.setFinishStatus(FinishStatus.FINISH_STATUS_ONE.getCode());
|
|
|
+
|
|
|
+ //todo: 收到航通007报文即收到海关结关信息,转发结关信息给到银行
|
|
|
+ paymentDto.setTradeNo(tbOrder.getTradeNo());
|
|
|
+ paymentDto.setDeclTime(htTradeSettlement.getDeclTime());
|
|
|
+ StaticLog.info("\nsendCXB001——PaymentDto——:{}", JSONUtil.toJsonStr(paymentDto));
|
|
|
+ paymentServerInterface.sendCXB001(paymentDto);
|
|
|
+ }
|
|
|
+ this.updateBatchById(tbOrders);
|
|
|
+
|
|
|
+ tradeNos = StringUtils.removeEnd(tradeNos, ",");
|
|
|
+ //todo: 收到航通007报文即收到海关结关信息,转发通车批信息给到银行
|
|
|
+ PaymentDto paymentDto2 = new PaymentDto();
|
|
|
+ paymentDto2.setTradeNos(tradeNos);
|
|
|
+ paymentDto2.setVoyageNo(htTradeSettlement.getVoyageNo());
|
|
|
+ paymentDto2.setVeNo(veNo);
|
|
|
+ StaticLog.info("\nsendSXB023——PaymentDto——:{}", JSONUtil.toJsonStr(paymentDto2));
|
|
|
+ paymentServerInterface.sendSXB023(paymentDto2);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ List<TbOrder> getSendCXB001ByVeNoList(SoMap so) {
|
|
|
+ LambdaQueryWrapper<TbOrder> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(TbOrder::getVeNo, so.getString("veNo"));
|
|
|
+ wrapper.ne(TbOrder::getFinishStatus, 1).orderByDesc(TbOrder::getCreateTime);
|
|
|
+ List<TbOrder> tbOrders = tbOrderMapper.selectList(wrapper);
|
|
|
+ return tbOrders;
|
|
|
+ }
|
|
|
+
|
|
|
// TODO: 2023/8/28 系统接收到航通007接口信息:车辆已出一级市场(系统接收到这个信息时,证明已经查验通过,不会有进出口申报单退单)
|
|
|
public boolean orderFinish(HtPassCardDTO htPassCardDTO) {
|
|
|
String billCodeStr = htPassCardDTO.getBillCode();
|
|
@@ -806,33 +926,31 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
|
|
|
//获取出了一级市场的所有边民订单
|
|
|
LambdaQueryWrapper<TbOrder> wrapper = new LambdaQueryWrapper<>();
|
|
|
wrapper.in(TbOrder::getPreIeportNo, billCodeList);
|
|
|
- wrapper.ne(TbOrder::getFinishStatus, 1);
|
|
|
+ wrapper.ne(TbOrder::getFinishStatus, 1).orderByDesc(TbOrder::getCreateTime);
|
|
|
List<TbOrder> tbOrders = tbOrderMapper.selectList(wrapper);
|
|
|
if (!tbOrders.isEmpty()) {
|
|
|
- TbTradeArea area = tbTradeAreaService.getById(tbOrders.get(0).getTradeAreaId());
|
|
|
- StringBuilder tradeNos = new StringBuilder();
|
|
|
+ String tradeNos = "";
|
|
|
PaymentDto paymentDto = new PaymentDto();
|
|
|
for (TbOrder tbOrder : tbOrders) {
|
|
|
- tradeNos.append(tbOrder.getTradeNo()).append(",");
|
|
|
+ tradeNos += tbOrder.getTradeNo() + ",";
|
|
|
//收到007结关信息后边民即可上架订单,不需等收到打款给外籍商户的成功回执SXB017才能完成订单
|
|
|
tbOrder.setFinishTime(new Date());
|
|
|
tbOrder.setFinishStatus(FinishStatus.FINISH_STATUS_ONE.getCode());
|
|
|
+
|
|
|
//todo: 收到航通007报文即收到海关结关信息,转发结关信息给到银行
|
|
|
paymentDto.setTradeNo(tbOrder.getTradeNo());
|
|
|
paymentDto.setDeclTime(htPassCardDTO.getCheckTime());
|
|
|
- paymentDto.setFieldCode(area.getCode());
|
|
|
StaticLog.info("\nsendCXB001——PaymentDto——:{}", JSONUtil.toJsonStr(paymentDto));
|
|
|
paymentServerInterface.sendCXB001(paymentDto);
|
|
|
}
|
|
|
this.updateBatchById(tbOrders);
|
|
|
|
|
|
- tradeNos = new StringBuilder(StringUtils.removeEnd(tradeNos.toString(), ","));
|
|
|
- //todo: 调用银行接口发起划扣:将边民划扣至银行第三方账户的货款,支付至外籍商户的账户
|
|
|
+ tradeNos = StringUtils.removeEnd(tradeNos, ",");
|
|
|
+ //todo: 收到航通007报文即收到海关结关信息,转发通车批信息给到银行
|
|
|
PaymentDto paymentDto2 = new PaymentDto();
|
|
|
- paymentDto2.setTradeNos(tradeNos.toString());
|
|
|
+ paymentDto2.setTradeNos(tradeNos);
|
|
|
paymentDto2.setVoyageNo(htPassCardDTO.getManifestId());
|
|
|
paymentDto2.setVeNo(tbOrders.get(0).getVeNo());
|
|
|
- paymentDto2.setFieldCode(area.getCode());
|
|
|
StaticLog.info("\nsendSXB023——PaymentDto——:{}", JSONUtil.toJsonStr(paymentDto2));
|
|
|
paymentServerInterface.sendSXB023(paymentDto2);
|
|
|
}
|