|
@@ -1,462 +0,0 @@
|
|
|
-package com.jkcredit.invoice.async;
|
|
|
-
|
|
|
-import cn.hutool.core.util.StrUtil;
|
|
|
-import com.alibaba.fastjson.JSON;
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
|
|
-import com.jkcredit.invoice.common.CommonConstants;
|
|
|
-import com.jkcredit.invoice.model.entity.*;
|
|
|
-import com.jkcredit.invoice.model.vo.CarFreeCarrierBillVo;
|
|
|
-import com.jkcredit.invoice.service.CarFreeCarrierBillEndService;
|
|
|
-import com.jkcredit.invoice.service.CarFreeCarrierBillStartService;
|
|
|
-import com.jkcredit.invoice.service.InvoiceService;
|
|
|
-import com.jkcredit.invoice.util.DateUtil;
|
|
|
-import com.jkcredit.invoice.util.HttpUtil;
|
|
|
-import com.jkcredit.invoice.util.ReadExcelUtil;
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
-import org.joda.time.DateTime;
|
|
|
-import org.joda.time.format.DateTimeFormat;
|
|
|
-import org.joda.time.format.DateTimeFormatter;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.data.redis.core.RedisTemplate;
|
|
|
-import org.springframework.scheduling.annotation.Async;
|
|
|
-import org.springframework.stereotype.Component;
|
|
|
-
|
|
|
-import java.text.SimpleDateFormat;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.concurrent.*;
|
|
|
-
|
|
|
-/**
|
|
|
- * @description: 异步处理运单
|
|
|
- * @author: sunzhaoning
|
|
|
- * @create: 2019-07-04 14:13
|
|
|
- * @version: V1.0
|
|
|
- **/
|
|
|
-@Component
|
|
|
-@Slf4j
|
|
|
-public class CarFreeBillAsync {
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private InvoiceService invoiceService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private CarFreeCarrierBillStartService carFreeCarrierBillStartService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private CarFreeCarrierBillEndService carFreeCarrierBillEndService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private HttpUtil httpUtil;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private RedisTemplate redisTemplate;
|
|
|
-
|
|
|
- /**
|
|
|
- * 异步处理历史运单
|
|
|
- *
|
|
|
- * @param list
|
|
|
- * @param user
|
|
|
- * @param id
|
|
|
- * @param batchNumber
|
|
|
- */
|
|
|
- @Async
|
|
|
- public void historyBill(List<CarFreeCarrierBillVo> list, User user, String id, String batchNumber,
|
|
|
- Map<String, String> registerFailedMap) {
|
|
|
- log.info("批量导入历史运单异步接口接收到的数据:{}", JSON.toJSONString(list));
|
|
|
- DateTimeFormatter sdf = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
-
|
|
|
- Map<String, Integer> startBillResult = new HashMap<>();
|
|
|
- if (null != list) {
|
|
|
- list.stream().forEach(c -> {
|
|
|
- Integer isSuccess = startBill(c, CommonConstants.WAY_BILL_HISTORY_START_API, registerFailedMap, user, id, batchNumber);
|
|
|
- startBillResult.put(c.getNum(), isSuccess);
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- if (null != list) {
|
|
|
- list.stream().forEach(c -> {
|
|
|
- DateTime endDateTime = new DateTime(c.getEndTime());
|
|
|
- String endTime = endDateTime.toString(sdf);
|
|
|
-
|
|
|
- //构建运单结束实体
|
|
|
- CarFreeCarrierBillEnd carFreeCarrierBillEnd = new CarFreeCarrierBillEnd();
|
|
|
-
|
|
|
- if (startBillResult.get(c.getNum()) == 1) {
|
|
|
- // isSuccess == 1 历史运单开始指令成功
|
|
|
-
|
|
|
- Map<String, Object> endMap = new HashMap<>(8);
|
|
|
- endMap.put("num", c.getNum());
|
|
|
- endMap.put("realDestAddr", c.getDestAddr());
|
|
|
- endMap.put("endTime", DateUtil.dateToTime(endTime));
|
|
|
- //调用接口
|
|
|
- String endResult = httpUtil.getCheckResult(endMap, CommonConstants.WAY_BILL_HISTORY_END_API);
|
|
|
- //测试用 不能提交!!!
|
|
|
-// String endResult = "{\n" +
|
|
|
-// " \"data\": 1,\n" +
|
|
|
-// " \"code\": 200,\n" +
|
|
|
-// " \"requestid\": \"20190429094207829,503b6b8d-ce1b-4d8f-82a0-1b5b9f6c5792\",\n" +
|
|
|
-// " \"msg\": \"{\\\"info\\\":\\\"成功\\\",\\\"receiveTime\\\":\\\"2019-04-29T09:50:16\\\"}\"\n" +
|
|
|
-// "}";
|
|
|
- log.info("历史运单结束接口返回:{},请求参数:{}", endResult, JSON.toJSONString(endMap));
|
|
|
- //转换结果为jsonobject
|
|
|
- JSONObject endResultJson = JSON.parseObject(endResult);
|
|
|
- //获取返回data值
|
|
|
- String endDataCode = endResultJson.getString("data");
|
|
|
- //判断返回值是否为1 如果是1 设置状态为成功
|
|
|
- if ("1".equals(endDataCode)) {
|
|
|
- carFreeCarrierBillEnd.setIsSuccess(CommonConstants.SUCCESS);
|
|
|
- } else {
|
|
|
- //设置失败
|
|
|
- log.info(endResultJson.getString("msg"));
|
|
|
- carFreeCarrierBillEnd.setIsSuccess(CommonConstants.ERROR);
|
|
|
- if (StringUtils.isNotBlank(endResultJson.getString("msg"))) {
|
|
|
- carFreeCarrierBillEnd.setErrorMsg(endResultJson.getString("msg").replace("\n", ""));
|
|
|
- } else {
|
|
|
- carFreeCarrierBillEnd.setErrorMsg("上传失败!");
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- // isSuccess == 2 历史运单开始指令失败
|
|
|
- carFreeCarrierBillEnd.setIsSuccess(CommonConstants.ERROR);
|
|
|
- carFreeCarrierBillEnd.setErrorMsg("上传失败:运单开始指令上传失败");
|
|
|
- }
|
|
|
-
|
|
|
- carFreeCarrierBillEnd.setNum(c.getNum());
|
|
|
- carFreeCarrierBillEnd.setRealDestAddr(c.getDestAddr());
|
|
|
- carFreeCarrierBillEnd.setEndTime(endTime);
|
|
|
- carFreeCarrierBillEnd.setBatchId(id);
|
|
|
- carFreeCarrierBillEnd.setBatchNumber(batchNumber);
|
|
|
- carFreeCarrierBillEnd.setUserId(user.getId());
|
|
|
- carFreeCarrierBillEnd.setUserName(user.getUserName());
|
|
|
- carFreeCarrierBillEnd.setUserCompany(user.getCompany());
|
|
|
- carFreeCarrierBillEnd.setUserPhone(user.getPhone());
|
|
|
- carFreeCarrierBillEnd.setCreateTime(System.currentTimeMillis());
|
|
|
- carFreeCarrierBillEnd.setIsHistory(CommonConstants.ERROR);
|
|
|
- //判断运单结束是否成功
|
|
|
- if (StrUtil.equals(CommonConstants.SUCCESS.toString(), carFreeCarrierBillEnd.getIsSuccess().toString())) {
|
|
|
- //设置运单状态已完结
|
|
|
- carFreeCarrierBillStartService.updateStatusAndBatchId(c.getNum(), CommonConstants.FINISHED, id);
|
|
|
- }
|
|
|
- //插入运单结束信息
|
|
|
- carFreeCarrierBillEndService.save(carFreeCarrierBillEnd);
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 异步处理实时运单开始
|
|
|
- *
|
|
|
- * @param list
|
|
|
- * @param user
|
|
|
- * @param id
|
|
|
- * @param batchNumber
|
|
|
- */
|
|
|
- @Async
|
|
|
- public void startBill(List<CarFreeCarrierBillVo> list, User user, String id, String batchNumber,
|
|
|
- Map<String, String> registerFailedMap) {
|
|
|
- log.info("批量导入实时运单异步接口接收到的数据:{}", JSON.toJSONString(list));
|
|
|
- DateTimeFormatter sdf = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
- //线程分割数
|
|
|
- int count = 0;
|
|
|
- //获取list大小
|
|
|
- int listSize = list.size();
|
|
|
- if (listSize <= 100) {
|
|
|
- count = 20;
|
|
|
- } else if (listSize <= 1000 && listSize > 100) {
|
|
|
- count = 50;
|
|
|
- } else if (listSize <= 12000 && listSize > 1000) {
|
|
|
- count = 120;
|
|
|
- } else if (listSize <= 20000 && listSize > 12000) {
|
|
|
- count = 150;
|
|
|
- } else if (listSize <= 30000 && listSize > 20000) {
|
|
|
- count = 300;
|
|
|
- } else {
|
|
|
- count = 500;
|
|
|
- }
|
|
|
- //线程数
|
|
|
- int threadSize = (listSize / count) + 1;
|
|
|
-
|
|
|
- ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat("thread-billStart-%d").build();
|
|
|
- ExecutorService executor = new ThreadPoolExecutor(threadSize, threadSize, 200L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(), namedThreadFactory);
|
|
|
-
|
|
|
- CountDownLatch countDownLatch = new CountDownLatch(threadSize);
|
|
|
-
|
|
|
- List<CarFreeCarrierBillVo> newList;
|
|
|
- for (int i = 0; i < threadSize; i++) {
|
|
|
- if ((i + 1) == threadSize) {
|
|
|
- int startIndex = (i * count);
|
|
|
- int endIndex = list.size();
|
|
|
- newList = list.subList(startIndex, endIndex);
|
|
|
- } else {
|
|
|
- int startIndex = i * count;
|
|
|
- int endIndex = (i + 1) * count;
|
|
|
- newList = list.subList(startIndex, endIndex);
|
|
|
- }
|
|
|
-
|
|
|
- List<CarFreeCarrierBillVo> finalNewList = newList;
|
|
|
- executor.execute(new Thread(() -> {
|
|
|
- if (null != finalNewList) {
|
|
|
- finalNewList.stream().forEach(c -> {
|
|
|
- startBill(c, CommonConstants.WAY_BILL_START_API, registerFailedMap, user, id, batchNumber);
|
|
|
- });
|
|
|
- }
|
|
|
- countDownLatch.countDown();
|
|
|
- }));
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- try {
|
|
|
- countDownLatch.await();
|
|
|
- } catch (InterruptedException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
-
|
|
|
- executor.shutdown();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- private Integer startBill(CarFreeCarrierBillVo carFreeCarrierBillVo, String api, Map<String, String> registerFailedMap,
|
|
|
- User user, String id, String batchNumber) {
|
|
|
- DateTimeFormatter sdf = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
- Invoice invoice = invoiceService.getInvoiceByDutyParagraph(carFreeCarrierBillVo.getTaxPlayerCode());
|
|
|
- CarFreeCarrierBillStart carFreeCarrierBillStart = new CarFreeCarrierBillStart();
|
|
|
- DateTime startDateTime = new DateTime(carFreeCarrierBillVo.getStartTime());
|
|
|
- String startTime = startDateTime.toString(sdf);
|
|
|
-
|
|
|
- DateTime endDateTime = new DateTime(carFreeCarrierBillVo.getEndTime());
|
|
|
- String endTime = endDateTime.toString(sdf);
|
|
|
-
|
|
|
- if (registerFailedMap.containsKey(carFreeCarrierBillVo.getPlateNumber())
|
|
|
- && carFreeCarrierBillVo.getPlateColor().equals(registerFailedMap.get(carFreeCarrierBillVo.getPlateNumber()))) {
|
|
|
- //设置失败
|
|
|
- log.info("运单号:{},运单开始失败原因:车辆备案失败", carFreeCarrierBillVo.getNum());
|
|
|
- carFreeCarrierBillStart.setIsSuccess(CommonConstants.ERROR);
|
|
|
- carFreeCarrierBillStart.setErrorMsg("车辆备案失败");
|
|
|
- } else {
|
|
|
- //构建运单开始实体
|
|
|
- Map<String, Object> startMap = new HashMap<>(16);
|
|
|
-// startMap.put("companyNum", "10004616");
|
|
|
- startMap.put("num", carFreeCarrierBillVo.getNum());
|
|
|
- startMap.put("plateNumber", carFreeCarrierBillVo.getPlateNumber());
|
|
|
- startMap.put("plateColor", carFreeCarrierBillVo.getPlateColor());
|
|
|
- startMap.put("startTime", DateUtil.dateToTime(startTime));
|
|
|
- startMap.put("sourceAddr", carFreeCarrierBillVo.getSourceAddr());
|
|
|
- startMap.put("destAddr", carFreeCarrierBillVo.getDestAddr());
|
|
|
- startMap.put("predictEndTime", DateUtil.dateToTime(endTime));
|
|
|
- startMap.put("fee", ReadExcelUtil.bigDecimalToLong(carFreeCarrierBillVo.getFee()));
|
|
|
- startMap.put("titleType", 2);
|
|
|
- startMap.put("taxplayerCode", carFreeCarrierBillVo.getTaxPlayerCode());
|
|
|
-
|
|
|
- //调用接口
|
|
|
- String startMResult = httpUtil.getCheckResult(startMap, api);
|
|
|
- // 测试用 不可提交
|
|
|
-// String startMResult = "{\n" +
|
|
|
-// " \"data\": 1,\n" +
|
|
|
-// " \"code\": 200,\n" +
|
|
|
-// " \"requestid\": \"20190429094207829,503b6b8d-ce1b-4d8f-82a0-1b5b9f6c5792\",\n" +
|
|
|
-// " \"msg\": \"{\\\"info\\\":\\\"成功\\\",\\\"receiveTime\\\":\\\"2019-04-29T09:50:16\\\"}\"\n" +
|
|
|
-// "}";
|
|
|
- log.info("运单开始接口返回:{},请求参数:{}", startMResult, JSON.toJSONString(startMap));
|
|
|
- //转换结果为jsonobject
|
|
|
- JSONObject startResultJson = JSON.parseObject(startMResult);
|
|
|
- //获取返回data值
|
|
|
- String dataCode = startResultJson.getString("data");
|
|
|
- //判断返回值是否为1 如果是1 设置状态为成功
|
|
|
- if ("1".equals(dataCode)) {
|
|
|
- carFreeCarrierBillStart.setIsSuccess(CommonConstants.SUCCESS);
|
|
|
- } else {
|
|
|
- //设置失败
|
|
|
- log.info(startResultJson.getString("msg"));
|
|
|
- carFreeCarrierBillStart.setIsSuccess(CommonConstants.ERROR);
|
|
|
-
|
|
|
- if (StringUtils.isNotBlank(startResultJson.getString("msg"))) {
|
|
|
- carFreeCarrierBillStart.setErrorMsg(startResultJson.getString("msg").replace("\n", ""));
|
|
|
- } else {
|
|
|
- carFreeCarrierBillStart.setErrorMsg("上传失败,请重试");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- carFreeCarrierBillStart.setNum(carFreeCarrierBillVo.getNum());
|
|
|
- carFreeCarrierBillStart.setPlateNumber(carFreeCarrierBillVo.getPlateNumber());
|
|
|
- carFreeCarrierBillStart.setPlateColor(carFreeCarrierBillVo.getPlateColor());
|
|
|
- carFreeCarrierBillStart.setStartTime(startTime);
|
|
|
- carFreeCarrierBillStart.setSourceAddr(carFreeCarrierBillVo.getSourceAddr());
|
|
|
- carFreeCarrierBillStart.setDestAddr(carFreeCarrierBillVo.getDestAddr());
|
|
|
- carFreeCarrierBillStart.setPredictEndTime(endTime);
|
|
|
- carFreeCarrierBillStart.setFee(ReadExcelUtil.bigDecimalToLong(carFreeCarrierBillVo.getFee()));
|
|
|
- carFreeCarrierBillStart.setTitleType(2);
|
|
|
- carFreeCarrierBillStart.setTaxPlayerCode(carFreeCarrierBillVo.getTaxPlayerCode());
|
|
|
- carFreeCarrierBillStart.setName(invoice.getCompany());
|
|
|
- carFreeCarrierBillStart.setAddress(invoice.getAddress());
|
|
|
- carFreeCarrierBillStart.setTel(invoice.getBuyerTel());
|
|
|
- carFreeCarrierBillStart.setBank(invoice.getBankAddress());
|
|
|
- carFreeCarrierBillStart.setBankAccount(invoice.getBankNumber());
|
|
|
- carFreeCarrierBillStart.setBatchId(id);
|
|
|
- carFreeCarrierBillStart.setBatchNumber(batchNumber);
|
|
|
- carFreeCarrierBillStart.setUserId(user.getId());
|
|
|
- carFreeCarrierBillStart.setUserName(user.getUserName());
|
|
|
- carFreeCarrierBillStart.setUserCompany(user.getCompany());
|
|
|
- carFreeCarrierBillStart.setUserPhone(user.getPhone());
|
|
|
- carFreeCarrierBillStart.setCreateTime(System.currentTimeMillis());
|
|
|
- carFreeCarrierBillStart.setStatus(CommonConstants.BILL_ERROR);
|
|
|
- if (api.equals(CommonConstants.WAY_BILL_HISTORY_START_API)) {
|
|
|
- carFreeCarrierBillStart.setIsHistory(2);
|
|
|
- } else {
|
|
|
- carFreeCarrierBillStart.setIsHistory(1);
|
|
|
- }
|
|
|
-
|
|
|
- if (CommonConstants.AUTO_INVOICE.equals(carFreeCarrierBillVo.getAutoFlag())) {
|
|
|
- carFreeCarrierBillStart.setAutoFlag(CommonConstants.AUTO_INVOICE);
|
|
|
- }
|
|
|
- //判断运单开始状态是否成功
|
|
|
- if (StrUtil.equals(carFreeCarrierBillStart.getIsSuccess().toString(), CommonConstants.SUCCESS.toString())) {
|
|
|
- //设置运单状态为未完结
|
|
|
- carFreeCarrierBillStart.setStatus(CommonConstants.UNFINISHED);
|
|
|
- }
|
|
|
- //插入运单开始信息
|
|
|
- carFreeCarrierBillStartService.save(carFreeCarrierBillStart);
|
|
|
-
|
|
|
- return carFreeCarrierBillStart.getIsSuccess();
|
|
|
- }
|
|
|
- /**
|
|
|
- * 异步处理实时运单结束
|
|
|
- *
|
|
|
- * @param list
|
|
|
- * @param user
|
|
|
- * @param id
|
|
|
- * @param batchNumber
|
|
|
- */
|
|
|
- @Async
|
|
|
- public void endBill(List<CarFreeCarrierBillEnd> list, User user, String id, String batchNumber) {
|
|
|
- log.info("批量导入结束运单异步接口接收到的数据:{}", JSON.toJSONString(list));
|
|
|
-
|
|
|
- DateTimeFormatter sdf = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
- //线程分割数
|
|
|
- int count = 0;
|
|
|
- //获取list大小
|
|
|
- int listSize = list.size();
|
|
|
- if (listSize <= 100) {
|
|
|
- count = 20;
|
|
|
- } else if (listSize <= 1000 && listSize > 100) {
|
|
|
- count = 50;
|
|
|
- } else if (listSize <= 12000 && listSize > 1000) {
|
|
|
- count = 120;
|
|
|
- } else if (listSize <= 20000 && listSize > 12000) {
|
|
|
- count = 150;
|
|
|
- } else if (listSize <= 30000 && listSize > 20000) {
|
|
|
- count = 300;
|
|
|
- } else {
|
|
|
- count = 500;
|
|
|
- }
|
|
|
- //线程数
|
|
|
- int threadSize = (listSize / count) + 1;
|
|
|
-
|
|
|
- ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat("thread-billEnd-%d").build();
|
|
|
- ExecutorService executor = new ThreadPoolExecutor(threadSize, threadSize, 200L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(), namedThreadFactory);
|
|
|
-
|
|
|
- CountDownLatch countDownLatch = new CountDownLatch(threadSize);
|
|
|
- List<CarFreeCarrierBillEnd> newList;
|
|
|
- for (int i = 0; i < threadSize; i++) {
|
|
|
- if ((i + 1) == threadSize) {
|
|
|
- int startIndex = (i * count);
|
|
|
- int endIndex = list.size();
|
|
|
- newList = list.subList(startIndex, endIndex);
|
|
|
- } else {
|
|
|
- int startIndex = i * count;
|
|
|
- int endIndex = (i + 1) * count;
|
|
|
- newList = list.subList(startIndex, endIndex);
|
|
|
- }
|
|
|
-
|
|
|
- List<CarFreeCarrierBillEnd> finalNewList = newList;
|
|
|
- executor.execute(new Thread(() -> {
|
|
|
- if (null != finalNewList) {
|
|
|
- finalNewList.stream().forEach(c -> {
|
|
|
- String redisKey = CommonConstants.NUM_KEY_END + c.getNum();
|
|
|
- if (redisTemplate.hasKey(redisKey)) {
|
|
|
- log.info("实时运单结束,运单号:{},已存在", c.getNum());
|
|
|
- } else {
|
|
|
- DateTime endDateTime = new DateTime(c.getBillEndTime());
|
|
|
- String endTime = endDateTime.toString(sdf);
|
|
|
-
|
|
|
- //构建运单结束实体
|
|
|
- CarFreeCarrierBillEnd carFreeCarrierBillEnd = new CarFreeCarrierBillEnd();
|
|
|
- Map<String, Object> endMap = new HashMap<>(8);
|
|
|
- endMap.put("companyNum", "10004616");
|
|
|
- endMap.put("num", c.getNum());
|
|
|
- endMap.put("realDestAddr", c.getRealDestAddr());
|
|
|
- endMap.put("endTime", DateUtil.dateToTime(endTime));
|
|
|
-// endMap.put("invoiceTime", c.getInvoiceTime());
|
|
|
- //调用接口
|
|
|
- String endResult = httpUtil.getCheckResult(endMap, CommonConstants.WAY_BILL_END_API);
|
|
|
- // todo 测试后删除
|
|
|
-// String endResult = "{\n" +
|
|
|
-// " \"data\": 1,\n" +
|
|
|
-// " \"code\": 200,\n" +
|
|
|
-// " \"requestid\": \"20190429094207829,503b6b8d-ce1b-4d8f-82a0-1b5b9f6c5792\",\n" +
|
|
|
-// " \"msg\": \"{\\\"info\\\":\\\"成功\\\",\\\"receiveTime\\\":\\\"2019-04-29T09:50:16\\\"}\"\n" +
|
|
|
-// "}";
|
|
|
- log.info("运单结束接口返回:{},请求参数:{},结束时间是:{}", endResult, JSON.toJSONString(endMap),endTime);
|
|
|
- //转换结果为jsonobject
|
|
|
- JSONObject endResultJson = JSON.parseObject(endResult);
|
|
|
- //获取返回data值
|
|
|
- String endDataCode = endResultJson.getString("data");
|
|
|
- //判断返回值是否为1 如果是1 设置状态为成功
|
|
|
- if ("1".equals(endDataCode)) {
|
|
|
- //设置状态为成功
|
|
|
- carFreeCarrierBillEnd.setIsSuccess(CommonConstants.SUCCESS);
|
|
|
- redisTemplate.opsForValue().set(redisKey, JSON.toJSONString(c));
|
|
|
- } else {
|
|
|
- //设置失败
|
|
|
- log.info(endResultJson.getString("msg"));
|
|
|
- carFreeCarrierBillEnd.setIsSuccess(CommonConstants.ERROR);
|
|
|
- }
|
|
|
- carFreeCarrierBillEnd.setInvoiceTime(c.getInvoiceTime());
|
|
|
- carFreeCarrierBillEnd.setNum(c.getNum());
|
|
|
- carFreeCarrierBillEnd.setEndTime(endTime);
|
|
|
- carFreeCarrierBillEnd.setRealDestAddr(c.getRealDestAddr());
|
|
|
- carFreeCarrierBillEnd.setBatchId(id);
|
|
|
- carFreeCarrierBillEnd.setBatchNumber(batchNumber);
|
|
|
- carFreeCarrierBillEnd.setUserId(user.getId());
|
|
|
- carFreeCarrierBillEnd.setUserName(user.getUserName());
|
|
|
- carFreeCarrierBillEnd.setUserCompany(user.getCompany());
|
|
|
- carFreeCarrierBillEnd.setUserPhone(user.getPhone());
|
|
|
- carFreeCarrierBillEnd.setCreateTime(System.currentTimeMillis());
|
|
|
- //设置运单是否为历史运单
|
|
|
- carFreeCarrierBillEnd.setIsHistory(CommonConstants.SUCCESS);
|
|
|
- //判断运单结束是否成功
|
|
|
- if (carFreeCarrierBillEnd.getIsSuccess().equals(CommonConstants.SUCCESS)) {
|
|
|
- try {
|
|
|
- //设置运单状态已完结
|
|
|
- carFreeCarrierBillStartService.updateStatus(c.getNum(), CommonConstants.FINISHED);
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("运单状态更新失败:{}", e.getMessage());
|
|
|
- }
|
|
|
- }
|
|
|
- //插入运单结束信息
|
|
|
- try {
|
|
|
- carFreeCarrierBillEndService.save(carFreeCarrierBillEnd);
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("运单状态插入失败:{}", e.getMessage());
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- countDownLatch.countDown();
|
|
|
- }));
|
|
|
- }
|
|
|
-
|
|
|
- try {
|
|
|
- countDownLatch.await();
|
|
|
- } catch (InterruptedException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
-
|
|
|
- executor.shutdown();
|
|
|
- }
|
|
|
-}
|