package com.zteits.park.job; import org.apache.commons.lang3.StringUtils; import com.clouds.common.utils.ResultUtils; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.context.XxlJobHelper; import com.xxl.job.core.handler.annotation.XxlJob; import com.zteits.clouds.api.apibase.bean.BizResult; import com.zteits.clouds.api.apibase.bean.PageBean; import com.zteits.clouds.api.dto.pay.ParkLotTempInfoTruncateReq; import com.zteits.clouds.api.dto.pay.TdBTempParklotDTO; import com.zteits.clouds.api.dto.pay.param.ParkLotTempInfoBatchSaveReq; import com.zteits.clouds.api.dto.pay.param.ParkTempInfoPageQueryRequest; import com.zteits.clouds.api.service.park.ParkingLotService; import com.zteits.clouds.api.service.pay.ParkLotTempInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; import java.util.List; /** * Copyright: Copyright (c) 2017 zteits * * @ClassName: com.zteits.park.job * @Description: 统计停车场临时信息,插入到order域的停车场临时表中 * @version: v1.0.0 * @author: atao * @date: 2017/10/14 下午3:03 * Modification History: * Date Author Version Description * ---------------------------------------------------------* * 2017/10/14 atao v1.0.0 创建 */ @Component public class ParkLotTempInfoJob { @Autowired private ParkLotTempInfoService parkLotTempInfoService; @Autowired private ParkingLotService parkingLotService; @XxlJob("parkLotTempInfoJob") public ReturnT execute(String... params) throws Exception { String param = XxlJobHelper.getJobParam(); if (StringUtils.isNotEmpty(param) && params == null) { params = param.split(","); } String sysCode = "123456"; XxlJobHelper.log("开始清空停车场临时表"); ParkLotTempInfoTruncateReq req = new ParkLotTempInfoTruncateReq(); req.setSysCode(sysCode); BizResult result = parkLotTempInfoService.truncateParkLotTempInfo(req); if (ResultUtils.isSuccess(result)) { XxlJobHelper.log("清空停车场临时表成功!"); }else { XxlJobHelper.log("清空停车场临时表失败!"); return returnFail(result.getErrMsg(),"清空停车场临时表失败!"); } int maxPageSize = 200; ParkTempInfoPageQueryRequest request = new ParkTempInfoPageQueryRequest(); request.setSysCode(sysCode); request.getBaseRequest().setPageNum(1); request.getBaseRequest().setPageSize(maxPageSize); BizResult> bizResult = parkingLotService.queryParkTempInfoPage(request); if (ResultUtils.isError(bizResult)) { return returnFail(bizResult.getErrMsg(), "获取第1页停车场临时信息失败!"); }else { BizResult saveResult = saveParkLotTempInfo(1,bizResult.getData().getDataList()); if(ResultUtils.isError(saveResult)){ return returnFail(saveResult.getErrMsg(),"保存停车场临时信息失败!"); } } PageBean pageBean = bizResult.getData(); Integer totalPage = pageBean.getPages(); for (int i = 2; i <= totalPage; i++) { request.getBaseRequest().setPageNum(i); bizResult = parkingLotService.queryParkTempInfoPage(request); if (ResultUtils.isError(bizResult)) { return returnFail(bizResult.getErrMsg(), "获取第"+i+"页停车场临时信息失败!"); }else { BizResult saveResult = saveParkLotTempInfo(i,bizResult.getData().getDataList()); if(ResultUtils.isError(saveResult)){ return returnFail(saveResult.getErrMsg(),"保存停车场临时信息失败!"); } } } return returnSuccess("成功","保存停车场临时信息成功! 总共"+pageBean.getPageTotals()+"条数据!"); } private BizResult saveParkLotTempInfo(Integer num,List dtoList) { if(CollectionUtils.isEmpty(dtoList)){ XxlJobHelper.log("开始保存第"+num+"页停车场临时信息,dataSize = 0"); return new BizResult<>(0); } XxlJobHelper.log("开始保存第"+num+"页停车场临时信息,dataSize = "+dtoList.size()); ParkLotTempInfoBatchSaveReq req = new ParkLotTempInfoBatchSaveReq(); req.setSysCode("123456"); req.setTempParklotDTOList(dtoList); BizResult bizResult = parkLotTempInfoService.batchSaveParkLotTempInfo(req); if(ResultUtils.isSuccess(bizResult)){ XxlJobHelper.log("成功保存第"+num+"页停车场临时信息,dataSize = "+dtoList.size()); }else{ XxlJobHelper.log("保存第"+num+"页停车场临时信息失败!"); } return bizResult; } private ReturnT returnSuccess(String msg, String content) { ReturnT returnT = new ReturnT<>(); returnT.setCode(ReturnT.SUCCESS_CODE); returnT.setMsg(msg); returnT.setContent(content); return returnT; } private ReturnT returnFail(String msg, String content) { ReturnT returnT = new ReturnT<>(); returnT.setCode(ReturnT.FAIL_CODE); returnT.setMsg(msg); returnT.setContent(content); return returnT; } }