|
|
@@ -2,10 +2,12 @@ package com.sckw.transport.service.dubbo;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.sckw.core.common.enums.NumberConstant;
|
|
|
import com.sckw.core.common.enums.enums.DictTypeEnum;
|
|
|
import com.sckw.core.model.enums.LogisticsOrderEnum;
|
|
|
import com.sckw.core.utils.CollectionUtils;
|
|
|
+import com.sckw.core.utils.StringUtils;
|
|
|
import com.sckw.core.web.constant.HttpStatus;
|
|
|
import com.sckw.core.web.context.LoginUserHolder;
|
|
|
import com.sckw.core.web.response.HttpResult;
|
|
|
@@ -15,6 +17,7 @@ import com.sckw.stream.model.SckwBusSum;
|
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
|
import com.sckw.system.api.model.dto.res.SysDictResDto;
|
|
|
import com.sckw.transport.api.dubbo.TransportDubboService;
|
|
|
+import com.sckw.transport.api.model.dto.AccountCheckingBindDTO;
|
|
|
import com.sckw.transport.api.model.dto.AddressResDTO;
|
|
|
import com.sckw.transport.api.model.dto.LogisticsOrderDTO;
|
|
|
import com.sckw.transport.api.model.param.LogisticsOrderParam;
|
|
|
@@ -25,6 +28,7 @@ import com.sckw.transport.dao.KwtLogisticsOrderUnitMapper;
|
|
|
import com.sckw.transport.model.KwtLogisticsOrder;
|
|
|
import com.sckw.transport.model.KwtLogisticsOrderAddress;
|
|
|
import com.sckw.transport.model.KwtLogisticsOrderUnit;
|
|
|
+import io.seata.spring.annotation.GlobalLock;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
@@ -33,6 +37,7 @@ import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.cloud.stream.function.StreamBridge;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
@@ -142,7 +147,7 @@ public class TransportDubboServiceImpl implements TransportDubboService {
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
- public Map<String, String> getDictData (String type) {
|
|
|
+ public Map<String, String> getDictData(String type) {
|
|
|
Map<String, String> maps = new HashMap<>(NumberConstant.SIXTEEN);
|
|
|
List<SysDictResDto> list = remoteSystemService.queryDictByType(type);
|
|
|
if (CollectionUtils.isNotEmpty(list)) {
|
|
|
@@ -257,7 +262,7 @@ public class TransportDubboServiceImpl implements TransportDubboService {
|
|
|
order.setUpdateByName(LoginUserHolder.getUserName());
|
|
|
SckwBusSum busSum = new SckwBusSum();
|
|
|
busSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
|
|
|
- busSum.setMethod(NumberConstant.ONE);
|
|
|
+ busSum.setMethod(NumberConstant.TWO);
|
|
|
busSum.setObject(order);
|
|
|
streamBridge.send("sckw-busSum", com.alibaba.fastjson2.JSON.toJSONString(busSum));
|
|
|
return HttpResult.ok();
|
|
|
@@ -280,4 +285,48 @@ public class TransportDubboServiceImpl implements TransportDubboService {
|
|
|
}
|
|
|
return map;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 运费对账是否进行对账绑定数据
|
|
|
+ * accountCheckingBindDTO
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+// @GlobalLock
|
|
|
+ @Transactional
|
|
|
+ public HttpResult logisticsOrderAccountCheckingBind(AccountCheckingBindDTO accountCheckingBindDTO) {
|
|
|
+ log.info("物流订单对账,推送是否绑定,请求数据:{}", JSONObject.toJSONString(accountCheckingBindDTO));
|
|
|
+ if (org.springframework.util.CollectionUtils.isEmpty(accountCheckingBindDTO.getLOrderList())) {
|
|
|
+ return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, "物流订单不能为空!");
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(accountCheckingBindDTO.getStatus())) {
|
|
|
+ return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, "绑定状态不能为空");
|
|
|
+ }
|
|
|
+ if (!String.valueOf(NumberConstant.ZERO).equals(accountCheckingBindDTO.getStatus()) &&
|
|
|
+ String.valueOf(NumberConstant.ONE).equals(accountCheckingBindDTO.getStatus())) {
|
|
|
+ return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, "绑定状态类型错误!");
|
|
|
+ }
|
|
|
+ accountCheckingBindDTO.getLOrderList().forEach(id -> {
|
|
|
+ logisticsOrderMapper.update(null,
|
|
|
+ new LambdaUpdateWrapper<KwtLogisticsOrder>()
|
|
|
+ .eq(KwtLogisticsOrder::getId, id)
|
|
|
+ .set(KwtLogisticsOrder::getBindStatus, accountCheckingBindDTO.getStatus())
|
|
|
+ .set(KwtLogisticsOrder::getUpdateBy, accountCheckingBindDTO.getUpdateBy())
|
|
|
+ .set(KwtLogisticsOrder::getUpdateTime, new Date()));
|
|
|
+ //修改mongodb数据
|
|
|
+ SckwLogisticsOrder order = new SckwLogisticsOrder();
|
|
|
+ order.set_id(id);
|
|
|
+ order.setLOrderId(id);
|
|
|
+ order.setBindStatus(accountCheckingBindDTO.getStatus());
|
|
|
+ order.setUpdateTime(new Date());
|
|
|
+ order.setUpdateByName(accountCheckingBindDTO.getUpdateName());
|
|
|
+ SckwBusSum busSum = new SckwBusSum();
|
|
|
+ busSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
|
|
|
+ busSum.setMethod(NumberConstant.TWO);
|
|
|
+ busSum.setObject(order);
|
|
|
+ streamBridge.send("sckw-busSum", com.alibaba.fastjson2.JSON.toJSONString(busSum));
|
|
|
+ });
|
|
|
+ return HttpResult.ok();
|
|
|
+ }
|
|
|
}
|