|
|
@@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
+import com.github.pagehelper.PageHelper;
|
|
|
+import com.github.pagehelper.PageInfo;
|
|
|
import com.sckw.contract.api.RemoteContractService;
|
|
|
import com.sckw.contract.api.model.dto.res.ContractCommonInfoResDto;
|
|
|
import com.sckw.core.common.enums.NumberConstant;
|
|
|
@@ -14,8 +16,12 @@ import com.sckw.core.exception.BusinessException;
|
|
|
import com.sckw.core.model.enums.CarWaybillEnum;
|
|
|
import com.sckw.core.model.enums.CooperateTypeEnum;
|
|
|
import com.sckw.core.model.enums.LogisticsOrderEnum;
|
|
|
+import com.sckw.core.model.page.PageRes;
|
|
|
import com.sckw.core.model.page.PageResult;
|
|
|
-import com.sckw.core.utils.*;
|
|
|
+import com.sckw.core.utils.CollectionUtils;
|
|
|
+import com.sckw.core.utils.IdWorker;
|
|
|
+import com.sckw.core.utils.RegularUtils;
|
|
|
+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;
|
|
|
@@ -27,17 +33,22 @@ import com.sckw.manage.api.model.dto.res.FindEntCooperateResVo;
|
|
|
import com.sckw.mongo.enums.BusinessTypeEnum;
|
|
|
import com.sckw.mongo.model.SckwLogisticsOrder;
|
|
|
import com.sckw.mongo.model.SckwWaybillOrder;
|
|
|
+import com.sckw.mongo.model.TableTops;
|
|
|
import com.sckw.order.api.dubbo.TradeOrderInfoService;
|
|
|
import com.sckw.order.api.model.CompleteLogisticsOrderParam;
|
|
|
+import com.sckw.order.api.model.OrderDetailRes;
|
|
|
+import com.sckw.order.api.model.UnitInfoDetailRes;
|
|
|
import com.sckw.product.api.dubbo.GoodsInfoService;
|
|
|
import com.sckw.product.api.model.KwpGoods;
|
|
|
import com.sckw.stream.model.SckwBusSum;
|
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
|
import com.sckw.system.api.model.dto.res.EntCacheResDto;
|
|
|
import com.sckw.system.api.model.dto.res.SysDictResDto;
|
|
|
+import com.sckw.system.api.model.dto.res.UserCacheResDto;
|
|
|
import com.sckw.transport.dao.*;
|
|
|
import com.sckw.transport.model.*;
|
|
|
import com.sckw.transport.model.dto.*;
|
|
|
+import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
|
|
|
import com.sckw.transport.model.param.DriverParam;
|
|
|
import com.sckw.transport.model.vo.*;
|
|
|
import jakarta.annotation.Resource;
|
|
|
@@ -82,6 +93,9 @@ public class AcceptCarriageOrderService {
|
|
|
@DubboReference(version = "1.0.0", group = "design", check = false, timeout = 6000)
|
|
|
RemoteManageService remoteManageService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ public CommonService commonService;
|
|
|
+
|
|
|
@Resource
|
|
|
private StreamBridge streamBridge;
|
|
|
|
|
|
@@ -556,6 +570,7 @@ public class AcceptCarriageOrderService {
|
|
|
order.setIgnoreAmount(decimal);
|
|
|
order.setDeficitPrice(decimal);
|
|
|
order.setDeficitAmount(decimal);
|
|
|
+ order.setBindStatus(String.valueOf(NumberConstant.ZERO));
|
|
|
kwtLogisticsOrderMapper.insert(order);
|
|
|
}
|
|
|
|
|
|
@@ -599,8 +614,8 @@ public class AcceptCarriageOrderService {
|
|
|
return result;
|
|
|
}
|
|
|
KwtLogisticsOrder logisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
|
|
|
- .eq(StringUtils.isNotBlank(orderDTO.getLOrderId()), KwtLogisticsOrder::getId, orderDTO.getLOrderId())
|
|
|
- .eq(StringUtils.isNotBlank(orderDTO.getLOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDTO.getLOrderNo())
|
|
|
+ .eq(StringUtils.isNotBlank(orderDTO.getLOrderId()), KwtLogisticsOrder::getId, orderDTO.getLOrderId())
|
|
|
+ .eq(StringUtils.isNotBlank(orderDTO.getLOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDTO.getLOrderNo())
|
|
|
/*.eq(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId())*/
|
|
|
);
|
|
|
if (logisticsOrder == null) {
|
|
|
@@ -1842,6 +1857,9 @@ public class AcceptCarriageOrderService {
|
|
|
contract.setId(new IdWorker(NumberConstant.ONE).nextId());
|
|
|
contract.setContractId(Long.parseLong(orderDTO.getContractId()));
|
|
|
contract.setLOrderId(lOrderId);
|
|
|
+ contract.setContractNo(orderDTO.getContractNo());
|
|
|
+ contract.setContractName(orderDTO.getContractName());
|
|
|
+ contract.setSigningWay(orderDTO.getSigningWay());
|
|
|
contract.setStatus(NumberConstant.ZERO);
|
|
|
contract.setCreateBy(LoginUserHolder.getUserId());
|
|
|
contract.setCreateTime(new Date());
|
|
|
@@ -1895,7 +1913,136 @@ public class AcceptCarriageOrderService {
|
|
|
order.setCreateTime(new Date());
|
|
|
order.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
order.setUpdateTime(new Date());
|
|
|
+ order.setBindStatus(String.valueOf(NumberConstant.ZERO));
|
|
|
logisticsOrderMapper.insert(order);
|
|
|
}
|
|
|
|
|
|
+ public PageRes selectLogisticsOrderList(AcceptCarriageOrderQuery query, String type) {
|
|
|
+ Long entId = LoginUserHolder.getEntId();
|
|
|
+ PageHelper.startPage(query.getPage(), query.getPageSize());
|
|
|
+ List<Integer> orderList = new ArrayList<>();
|
|
|
+ if (StringUtils.isNotBlank(query.getStatus())) {
|
|
|
+ if (String.valueOf(NumberConstant.EIGHT).equals(query.getStatus())) {
|
|
|
+ orderList.add(LogisticsOrderEnum.REJECT_ORDER.getCode());
|
|
|
+ orderList.add(LogisticsOrderEnum.CANCEL_ORDER.getCode());
|
|
|
+ } else {
|
|
|
+ orderList.add(Integer.valueOf(query.getStatus()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //装卸货地址
|
|
|
+ String loadCode = query.getLoadAddressCode();
|
|
|
+ if (StringUtils.isNotBlank(loadCode)) {
|
|
|
+ switch (query.getLoadAddressLevel()) {
|
|
|
+ case 1 -> query.setLoadAddressCode(
|
|
|
+ loadCode.substring(0, 2).trim());
|
|
|
+ case 2 -> query.setLoadAddressCode(
|
|
|
+ loadCode.substring(0, 4).trim());
|
|
|
+ case 3 -> query.setLoadAddressCode(loadCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String unloadCode = query.getUnloadAddressCode();
|
|
|
+ if (StringUtils.isNotBlank(unloadCode)) {
|
|
|
+ switch (query.getUnloadAddressLevel()) {
|
|
|
+ case 1 -> query.setUnloadAddressCode(
|
|
|
+ loadCode.substring(0, 2).trim());
|
|
|
+ case 2 -> query.setUnloadAddressCode(
|
|
|
+ loadCode.substring(0, 4).trim());
|
|
|
+ case 3 -> query.setUnloadAddressCode(loadCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<AcceptCarriageOrderVO> list = logisticsOrderMapper.selectLogisticsOrderList(query, orderList, type, entId);
|
|
|
+ PageInfo<AcceptCarriageOrderVO> pageInfo = new PageInfo<>(list);
|
|
|
+ if (CollectionUtils.isEmpty(list)) {
|
|
|
+ return PageRes.build(pageInfo, list);
|
|
|
+ }
|
|
|
+// List<AcceptCarriageOrderVO> detailRes = new ArrayList<>();
|
|
|
+ /**计量单位*/
|
|
|
+ Map<String, String> unitTypeDictData = getDictData(DictTypeEnum.UNIT_TYPE.getType());
|
|
|
+ /**运价方式*/
|
|
|
+ Map<String, String> priceDictData = getDictData(DictTypeEnum.PRICE_TYPE.getType());
|
|
|
+ /**计费方式*/
|
|
|
+ Map<String, String> chargingDictData = getDictData(DictTypeEnum.CHARGING_TYPE.getType());
|
|
|
+ /**结算周期*/
|
|
|
+ Map<String, String> settlementDictData = getDictData(DictTypeEnum.SETTLEMENT_CYCLE.getType());
|
|
|
+ /**签约方式*/
|
|
|
+ Map<String, String> signingWay = getDictData(DictTypeEnum.SIGNING_TYPE.getType());
|
|
|
+ /**合理损耗*/
|
|
|
+// Map<String, String> taxRateTypeDictData = getDictData(DictTypeEnum.TAX_RATE_TYPE.getType());
|
|
|
+ Map<Long, UserCacheResDto> longUserMap = new HashMap<>();
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
+ List<Long> collect = list.stream().map(AcceptCarriageOrderVO::getCreateBy).collect(Collectors.toList());
|
|
|
+ if (CollectionUtils.isNotEmpty(collect)) {
|
|
|
+ longUserMap = remoteSystemService.queryUserCacheMapByIds(collect);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (AcceptCarriageOrderVO vo : list) {
|
|
|
+ vo.setAccountsCycleLabel(settlementDictData.get(vo.getAccountsCycle()));
|
|
|
+ vo.setAppointor(longUserMap.get(vo.getCreateBy()) == null ? null : longUserMap.get(vo.getCreateBy()).getName());
|
|
|
+ vo.setBillingModeLabel(chargingDictData.get(vo.getBillingMode()));
|
|
|
+ vo.setSigningLabel(signingWay.get(vo.getSigning()));
|
|
|
+ vo.setStatusLabel(LogisticsOrderEnum.getName(vo.getStatus()));
|
|
|
+ vo.setLoadAddress(vo.getLoadCityName() + vo.getLoadAddress());
|
|
|
+ vo.setUnloadAddress(vo.getUnloadCityName() + vo.getUnloadAddress());
|
|
|
+ if (vo.getTOrderId() != null) {
|
|
|
+ OrderDetailRes orderDetailRes = tradeOrderInfoService.getOrderDetailById(Long.valueOf(vo.getTOrderId()));
|
|
|
+ if (orderDetailRes != null) {
|
|
|
+ List<UnitInfoDetailRes> unitInfo = orderDetailRes.getUnitInfo();
|
|
|
+ for (UnitInfoDetailRes detailRes : unitInfo) {
|
|
|
+ if (String.valueOf(NumberConstant.ONE).equals(detailRes.getUnitType())) {
|
|
|
+ vo.setShipmentsUnitEntId(String.valueOf(detailRes.getEntId()));
|
|
|
+ vo.setShipmentsUnit(detailRes.getFirmName());
|
|
|
+ } else {
|
|
|
+ vo.setReceiveGoodsUnitEntId(String.valueOf(detailRes.getEntId()));
|
|
|
+ vo.setReceiveGoodsUnit(detailRes.getFirmName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return PageRes.build(pageInfo, list);
|
|
|
+ }
|
|
|
+
|
|
|
+ public HttpResult statisticsAcceptCarriage(AcceptCarriageOrderQuery query, String type) {
|
|
|
+ Long entId = LoginUserHolder.getEntId();
|
|
|
+ List<Integer> orderList = new ArrayList<>();
|
|
|
+ if (StringUtils.isNotBlank(query.getStatus())) {
|
|
|
+ if (String.valueOf(NumberConstant.EIGHT).equals(query.getStatus())) {
|
|
|
+ orderList.add(LogisticsOrderEnum.REJECT_ORDER.getCode());
|
|
|
+ orderList.add(LogisticsOrderEnum.CANCEL_ORDER.getCode());
|
|
|
+ } else {
|
|
|
+ orderList.add(Integer.valueOf(query.getStatus()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //装卸货地址
|
|
|
+ String loadCode = query.getLoadAddressCode();
|
|
|
+ if (StringUtils.isNotBlank(loadCode)) {
|
|
|
+ switch (query.getLoadAddressLevel()) {
|
|
|
+ case 1 -> query.setLoadAddressCode(
|
|
|
+ loadCode.substring(0, 2).trim());
|
|
|
+ case 2 -> query.setLoadAddressCode(
|
|
|
+ loadCode.substring(0, 4).trim());
|
|
|
+ case 3 -> query.setLoadAddressCode(loadCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String unloadCode = query.getUnloadAddressCode();
|
|
|
+ if (StringUtils.isNotBlank(unloadCode)) {
|
|
|
+ switch (query.getUnloadAddressLevel()) {
|
|
|
+ case 1 -> query.setUnloadAddressCode(
|
|
|
+ loadCode.substring(0, 2).trim());
|
|
|
+ case 2 -> query.setUnloadAddressCode(
|
|
|
+ loadCode.substring(0, 4).trim());
|
|
|
+ case 3 -> query.setUnloadAddressCode(loadCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<TableTops> list = logisticsOrderMapper.selectLogisticsOrderListByStatus(query, orderList, type, entId);
|
|
|
+ List<TableTops> arrayList = new ArrayList<>();
|
|
|
+ arrayList.addAll(list);
|
|
|
+ /**补全数据状态不齐的情况*/
|
|
|
+ arrayList = commonService.packageReturnStatistics(list, arrayList);
|
|
|
+ // 查询结果
|
|
|
+ Map<String, Object> map = new HashMap<>(NumberConstant.SIXTEEN);
|
|
|
+ map.put("tableTop", arrayList);
|
|
|
+ // 查询结果
|
|
|
+ return HttpResult.ok(map);
|
|
|
+ }
|
|
|
}
|