sgj
2026-03-12 533c9a4e44b06c90df7434a38e0da26e10cdac46
fzzy-igdss-core/src/main/java/com/fzzy/igds/timer/JobWarnService.java
@@ -2,6 +2,7 @@
import com.fzzy.igds.constant.Constant;
import com.fzzy.igds.data.BaseResp;
import com.fzzy.igds.data.PledgeReminders;
import com.fzzy.igds.domain.Depot;
import com.fzzy.igds.domain.FoodPrice;
import com.fzzy.igds.domain.PledgeContract;
@@ -17,6 +18,7 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -26,7 +28,6 @@
 * @Date 2026/1/23 9:14
 */
@Slf4j
@Service
public class JobWarnService {
@@ -39,33 +40,35 @@
    @Resource
    private BizWorkService workService;
    /**
     * 每天两点执行:还款提醒
     */
    @Scheduled(cron = "0 0 2 * * ?")
    public void timer() {
        doExe();
        doExe(null);
    }
    /**
     * 开始质押合同核算
     */
    public void doExe() {
        List<PledgeContract> contractList = contractService.getContractByPledge(new Date());
    public void doExe(String bankId) {
        List<PledgeContract> contractList = contractService.getContractByPledge(new Date(), bankId);
        if (null == contractList || contractList.isEmpty()) {
            log.error("-----当前没有有效期的质押合同,不执行提醒核算-----");
            return;
        }
        Depot depot;
        FoodPrice foodPrice;
        WorkOrderConf conf;
        double sumMoney = 0.0;
        double per = 0.0;
        double backMoney = 0.0;
        for (PledgeContract pledgeContract : contractList) {
            log.info("-----开始处理质押合同:{}-----", pledgeContract.getName());
            List<PledgeReminders> remindersList = new ArrayList<>();
            //计算待还款金额
            backMoney = pledgeContract.getContractAmount() - pledgeContract.getRepaidAmount();
@@ -112,12 +115,20 @@
                }
                sumMoney += depot.getStorageReal() * foodPrice.getPrice();
                PledgeReminders reminders = new PledgeReminders();
                reminders.setDepotId(depot.getId());
                reminders.setDepotName(depot.getName());
                reminders.setFoodVariety(depot.getFoodVariety());
                reminders.setFoodVarietyName(depot.getFoodVarietyName());
                reminders.setFoodPrice(foodPrice.getPrice());
                reminders.setStorageReal(depot.getStorageReal());
                remindersList.add(reminders);
                log.info("-----当前合同={}下仓库={}:对应的实际储量={},对应粮食单价={}-----", pledgeContract.getName(), depot.getName(), depot.getStorageReal(), foodPrice.getPrice());
            }
            per = sumMoney / backMoney;
            if (per > 1.1) {
            if (per < 1.1) {
                log.error("-----当前合同={}下质押仓库={}库存未到待还款的110%,sumMoney={},backMoney={},不生成还款提醒工单-----", pledgeContract.getName(), pledgeContract.getDepotNames(), sumMoney, backMoney);
                continue;
            }
@@ -130,7 +141,7 @@
                continue;
            }
            BaseResp resp = workService.startByBackMoney(pledgeContract, conf);
            BaseResp resp = workService.startByBackMoney(pledgeContract, conf,remindersList);
            log.info("---------当前合同={}启动还款提醒工单流程------{}", pledgeContract.getName(), resp);
        }
    }