|
|
@ -9,7 +9,11 @@ import com.qs.serve.modules.tbs.entity.TbsCostApply; |
|
|
|
import com.qs.serve.modules.tbs.service.TbsCostApplyService; |
|
|
|
import lombok.AllArgsConstructor; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.scheduling.annotation.Scheduled; |
|
|
|
import org.springframework.stereotype.Component; |
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.List; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
@ -22,13 +26,13 @@ import java.util.stream.Collectors; |
|
|
|
@AllArgsConstructor |
|
|
|
public class PayTask { |
|
|
|
|
|
|
|
private final PayPaymentService payPaymentService; |
|
|
|
private final TbsCostApplyService costApplyService; |
|
|
|
private final PayPaymentItemMapper payPaymentItemMapper; |
|
|
|
|
|
|
|
/** |
|
|
|
* 同步支付 |
|
|
|
*/ |
|
|
|
@Scheduled(cron="0 0 2 * * ?") |
|
|
|
public void syncCostPayStatus(){ |
|
|
|
LambdaQueryWrapper<TbsCostApply> costLqw = new LambdaQueryWrapper<>(); |
|
|
|
costLqw.select( |
|
|
@ -36,14 +40,37 @@ public class PayTask { |
|
|
|
TbsCostApply::getTotalActivityAmount |
|
|
|
); |
|
|
|
costLqw.ne(TbsCostApply::getPayStatus,2); |
|
|
|
costLqw.eq(TbsCostApply::getCheckState,3); |
|
|
|
//SyFormId 代表非销路通数据
|
|
|
|
costLqw.isNotNull(TbsCostApply::getSyFormId); |
|
|
|
costLqw.apply(" limit 2000"); |
|
|
|
List<TbsCostApply> costApplyList = costApplyService.list(costLqw); |
|
|
|
List<String> costIds = costApplyList.stream().map(a->a.toString()).collect(Collectors.toList()); |
|
|
|
|
|
|
|
List<AmountDTO> amountDTOList = payPaymentItemMapper.selectCostTotal(costIds); |
|
|
|
List<TbsCostApply> updatePayStateList = new ArrayList<>(); |
|
|
|
for (TbsCostApply costApply : costApplyList) { |
|
|
|
|
|
|
|
String costId = costApply.getId().toString(); |
|
|
|
for (AmountDTO dto : amountDTOList) { |
|
|
|
if(costId.equals(dto.getId())){ |
|
|
|
BigDecimal totalPay = dto.getAmount(); |
|
|
|
if(totalPay.compareTo(BigDecimal.ZERO)==0){ |
|
|
|
//未支付忽略
|
|
|
|
continue; |
|
|
|
} |
|
|
|
BigDecimal totalCost = costApply.getTotalActivityAmount(); |
|
|
|
TbsCostApply updParam = new TbsCostApply(); |
|
|
|
updParam.setId(costApply.getId()); |
|
|
|
if(totalPay.compareTo(totalCost)<0){ |
|
|
|
updParam.setPayStatus(1); |
|
|
|
}else { |
|
|
|
updParam.setPayStatus(2); |
|
|
|
} |
|
|
|
updatePayStateList.add(updParam); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
costApplyService.updateBatchById(updatePayStateList); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|