|
|
@@ -4,17 +4,17 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.sckw.core.common.enums.enums.DictTypeEnum;
|
|
|
import com.sckw.core.model.constant.Global;
|
|
|
import com.sckw.core.model.constant.NumberConstant;
|
|
|
+import com.sckw.core.model.enums.AddressDefaultTypeEnum;
|
|
|
import com.sckw.core.utils.CollectionUtils;
|
|
|
import com.sckw.core.utils.FileUtils;
|
|
|
import com.sckw.core.utils.IdWorker;
|
|
|
-import com.sckw.excel.utils.DateUtil;
|
|
|
+import com.sckw.core.utils.NumberUtils;
|
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
|
import com.sckw.system.api.model.dto.res.SysDictResDto;
|
|
|
+import com.sckw.transport.dao.KwtLogisticsOrderGoodsUnitMapper;
|
|
|
import com.sckw.transport.dao.KwtWaybillOrderMapper;
|
|
|
import com.sckw.transport.dao.KwtWaybillOrderTicketMapper;
|
|
|
-import com.sckw.transport.model.KwtWaybillOrder;
|
|
|
-import com.sckw.transport.model.KwtWaybillOrderSubtask;
|
|
|
-import com.sckw.transport.model.KwtWaybillOrderTicket;
|
|
|
+import com.sckw.transport.model.*;
|
|
|
import com.sckw.transport.model.dto.WaybillOrderTicketLoadingDto;
|
|
|
import com.sckw.transport.model.vo.WaybillOrderLoadingVO;
|
|
|
import com.sckw.transport.model.vo.WaybillTicketVO;
|
|
|
@@ -23,12 +23,9 @@ import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author zk
|
|
|
@@ -42,7 +39,9 @@ public class KwtWaybillOrderTicketService {
|
|
|
@Autowired
|
|
|
KwtWaybillOrderMapper waybillOrderMapper;
|
|
|
@Autowired
|
|
|
- KwtWaybillOrderTicketMapper waybillOrderTicketMapper;
|
|
|
+ KwtLogisticsOrderGoodsUnitMapper goodsUnitMapper;
|
|
|
+ @Autowired
|
|
|
+ KwtWaybillOrderTicketMapper ticketMapper;
|
|
|
@DubboReference(version = "1.0.0", group = "design", check = false)
|
|
|
RemoteSystemService remoteSystemService;
|
|
|
|
|
|
@@ -85,7 +84,7 @@ public class KwtWaybillOrderTicketService {
|
|
|
ticket.setAmount(e.getAmount());
|
|
|
ticket.setUrls(FileUtils.replaceAllBatch(urls));
|
|
|
ticket.setOperateTime(operateTime);
|
|
|
- waybillOrderTicketMapper.insert(ticket);
|
|
|
+ ticketMapper.insert(ticket);
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
@@ -114,7 +113,7 @@ public class KwtWaybillOrderTicketService {
|
|
|
ticket.setAmount(e.getAmount());
|
|
|
ticket.setUrls(FileUtils.replaceAllBatch(urls));
|
|
|
ticket.setOperateTime(operateTime);
|
|
|
- waybillOrderTicketMapper.insert(ticket);
|
|
|
+ ticketMapper.insert(ticket);
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
@@ -133,7 +132,7 @@ public class KwtWaybillOrderTicketService {
|
|
|
urls = FileUtils.replaceAllBatch(urls);
|
|
|
if (CollectionUtils.isNotEmpty(loading)) {
|
|
|
for (WaybillOrderTicketLoadingDto ticket : loading) {
|
|
|
- KwtWaybillOrderTicket oldTicket = waybillOrderTicketMapper.findWaybillOrderTicketV1(wOrderId, null, type, ticket.getUnit()).get(0);
|
|
|
+ KwtWaybillOrderTicket oldTicket = ticketMapper.findWaybillOrderTicketV1(wOrderId, null, type, ticket.getUnit()).get(0);
|
|
|
// Boolean bool1 = oldTicket.getAmount().doubleValue() == ticket.getAmount().doubleValue();
|
|
|
// Boolean bool2 = oldTicket.getUrls().equals(urls);
|
|
|
|
|
|
@@ -145,7 +144,7 @@ public class KwtWaybillOrderTicketService {
|
|
|
//删除
|
|
|
oldTicket.setDelFlag(Global.YES);
|
|
|
// waybillOrderTicketMapper.updateById(oldTicket);
|
|
|
- waybillOrderTicketMapper.update(oldTicket,new LambdaUpdateWrapper<KwtWaybillOrderTicket>()
|
|
|
+ ticketMapper.update(oldTicket,new LambdaUpdateWrapper<KwtWaybillOrderTicket>()
|
|
|
.set(KwtWaybillOrderTicket::getDelFlag,1)
|
|
|
.eq(KwtWaybillOrderTicket::getId,oldTicket.getId()));
|
|
|
//新增
|
|
|
@@ -159,7 +158,7 @@ public class KwtWaybillOrderTicketService {
|
|
|
waybillOrderTicket.setDelFlag(0);
|
|
|
waybillOrderTicket.setId(new IdWorker(NumberConstant.ONE).nextId());
|
|
|
//waybillOrderTicket.setOperateTime(operateTime);
|
|
|
- waybillOrderTicketMapper.insert(waybillOrderTicket);
|
|
|
+ ticketMapper.insert(waybillOrderTicket);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -177,13 +176,13 @@ public class KwtWaybillOrderTicketService {
|
|
|
urls = FileUtils.replaceAllBatch(urls);
|
|
|
if (CollectionUtils.isNotEmpty(loading)) {
|
|
|
for (WaybillOrderTicketLoadingDto ticket : loading) {
|
|
|
- KwtWaybillOrderTicket oldTicket = waybillOrderTicketMapper.findWaybillOrderTicketV2(wAddressId, ticket.getUnit());
|
|
|
+ KwtWaybillOrderTicket oldTicket = ticketMapper.findWaybillOrderTicketV2(wAddressId, ticket.getUnit());
|
|
|
if (oldTicket == null) {
|
|
|
continue;
|
|
|
}
|
|
|
//删除
|
|
|
oldTicket.setDelFlag(Global.YES);
|
|
|
- waybillOrderTicketMapper.updateById(oldTicket);
|
|
|
+ ticketMapper.updateById(oldTicket);
|
|
|
|
|
|
//新增
|
|
|
KwtWaybillOrderTicket orderTicket = new KwtWaybillOrderTicket();
|
|
|
@@ -195,7 +194,7 @@ public class KwtWaybillOrderTicketService {
|
|
|
orderTicket.setAmount(ticket.getAmount());
|
|
|
orderTicket.setUrls(urls);
|
|
|
orderTicket.setOperateTime(operateTime == null ? oldTicket.getOperateTime() : operateTime);
|
|
|
- waybillOrderTicketMapper.insert(orderTicket);
|
|
|
+ ticketMapper.insert(orderTicket);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -211,20 +210,20 @@ public class KwtWaybillOrderTicketService {
|
|
|
*/
|
|
|
public WaybillTicketVO agreement(Long wOrderId, String unit, String deficitAmount, String deficitRealAmount) {
|
|
|
WaybillTicketVO waybillTicket = new WaybillTicketVO();
|
|
|
- waybillTicket.setDeficitAmount(deficitAmount);
|
|
|
- waybillTicket.setDeficitRealAmount(deficitRealAmount);
|
|
|
+ waybillTicket.setDeficitAmount(NumberUtils.parseBigDecimal(deficitAmount));
|
|
|
+ waybillTicket.setDeficitRealAmount(NumberUtils.parseBigDecimal(deficitRealAmount));
|
|
|
//单位数据字典
|
|
|
Map<String, SysDictResDto> unitType = remoteSystemService.queryDictMapByType(DictTypeEnum.UNIT_TYPE.getType());
|
|
|
//装货
|
|
|
- List<KwtWaybillOrderTicket> load = waybillOrderTicketMapper.findWaybillOrderTicket(wOrderId, null , NumberConstant.ONE);
|
|
|
+ List<KwtWaybillOrderTicket> load = ticketMapper.findWaybillOrderTicket(wOrderId, null , NumberConstant.ONE);
|
|
|
//卸货
|
|
|
- List<KwtWaybillOrderTicket> unload = waybillOrderTicketMapper.findWaybillOrderTicket(wOrderId, null , NumberConstant.TWO);
|
|
|
+ List<KwtWaybillOrderTicket> unload = ticketMapper.findWaybillOrderTicket(wOrderId, null , NumberConstant.TWO);
|
|
|
if (CollectionUtils.isNotEmpty(load)) {
|
|
|
List<WaybillOrderLoadingVO> loadLoading = new ArrayList<>();
|
|
|
load.forEach(e -> {
|
|
|
SysDictResDto sysDict = unitType != null ? unitType.get(e.getUnit()) : null;
|
|
|
waybillTicket.setLoadUrl(FileUtils.splice(e.getUrls()));
|
|
|
- waybillTicket.setLoadTime(e.getOperateTime() == null ? null : DateUtil.getDateTime(e.getOperateTime()));
|
|
|
+ waybillTicket.setLoadTime(e.getOperateTime() == null ? null : e.getOperateTime());
|
|
|
WaybillOrderLoadingVO loadingVo = new WaybillOrderLoadingVO(e.getUnit(), sysDict != null ? sysDict.getLabel() : null, e.getAmount());
|
|
|
loadingVo.setMain(unit.equals(e.getUnit()) ? true : false);
|
|
|
loadLoading.add(loadingVo);
|
|
|
@@ -236,7 +235,7 @@ public class KwtWaybillOrderTicketService {
|
|
|
unload.forEach(e -> {
|
|
|
SysDictResDto sysDict = unitType != null ? unitType.get(e.getUnit()) : null;
|
|
|
waybillTicket.setUnloadUrl(FileUtils.splice(e.getUrls()));
|
|
|
- waybillTicket.setUnloadTime(e.getOperateTime() == null ? null : DateUtil.getDateTime(e.getOperateTime()));
|
|
|
+ waybillTicket.setUnloadTime(e.getOperateTime() == null ? null : e.getOperateTime());
|
|
|
WaybillOrderLoadingVO loadingVo = new WaybillOrderLoadingVO(e.getUnit(), sysDict != null ? sysDict.getLabel() : null, e.getAmount());
|
|
|
loadingVo.setMain(unit.equals(e.getUnit()) ? true : false);
|
|
|
unloadLoading.add(loadingVo);
|
|
|
@@ -246,6 +245,70 @@ public class KwtWaybillOrderTicketService {
|
|
|
return waybillTicket;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 运单详情单证信息(辅助单位)
|
|
|
+ * @param subtask 运单-子单
|
|
|
+ * @return 单证信息
|
|
|
+ */
|
|
|
+ public List<WaybillTicketVO> agreement(KwtWaybillOrderSubtask subtask) {
|
|
|
+ List<WaybillTicketVO> ticketList = new ArrayList<>();
|
|
|
+ //物流订单辅助单位
|
|
|
+ List<KwtLogisticsOrderGoodsUnit> goodsUnits = goodsUnitMapper.findList(new HashMap<>(NumberConstant.SIXTEEN){{put("lOrderId", subtask.getLOrderId());}});
|
|
|
+ if (CollectionUtils.isEmpty(goodsUnits)) {
|
|
|
+ return ticketList;
|
|
|
+ }
|
|
|
+
|
|
|
+ //单位
|
|
|
+ Map<String, Map<String, String>> dict = remoteSystemService.queryDictByType(List.of(DictTypeEnum.UNIT_TYPE.getType()));
|
|
|
+ Map<String, String> unitMap = CollectionUtils.isNotEmpty(dict) ? dict.get(DictTypeEnum.UNIT_TYPE.getType()) : new HashMap<>(NumberConstant.SIXTEEN);
|
|
|
+
|
|
|
+ //数据处理
|
|
|
+ for (KwtLogisticsOrderGoodsUnit goodsUnit:goodsUnits) {
|
|
|
+ WaybillTicketVO waybillTicket = new WaybillTicketVO();
|
|
|
+ //装货榜单信息
|
|
|
+ List<KwtWaybillOrderTicket> loadTickets = ticketMapper.findWaybillOrderTicketV1(subtask.getWOrderId(), subtask.getId(), AddressDefaultTypeEnum.SHIPMENT.getCode(), goodsUnit.getUnit());
|
|
|
+ //装货时间
|
|
|
+ Optional<KwtWaybillOrderTicket> unloadDate = loadTickets.stream().max(Comparator.comparing(KwtWaybillOrderTicket::getOperateTime));
|
|
|
+ //装货地点榜单
|
|
|
+ loadTickets.forEach(ticket->{ticket.setUrls(FileUtils.spliceBatch(ticket.getUrls()));});
|
|
|
+ String loadUrls = loadTickets.stream().map(KwtWaybillOrderTicket::getUrls).collect(Collectors.joining(", "));
|
|
|
+ //装货量
|
|
|
+ BigDecimal loadAmount = loadTickets.stream().map(KwtWaybillOrderTicket::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ //卸货榜单信息
|
|
|
+ List<KwtWaybillOrderTicket> unloadTickets = ticketMapper.findWaybillOrderTicketV1(subtask.getWOrderId(), subtask.getId(), AddressDefaultTypeEnum.TAKE.getCode(), goodsUnit.getUnit());
|
|
|
+ //卸货时间
|
|
|
+ Optional<KwtWaybillOrderTicket> loadDate = unloadTickets.stream().min(Comparator.comparing(KwtWaybillOrderTicket::getOperateTime));
|
|
|
+ //卸货地点榜单
|
|
|
+ unloadTickets.forEach(ticket->{ticket.setUrls(FileUtils.spliceBatch(ticket.getUrls()));});
|
|
|
+ String unloadUrls = unloadTickets.stream().map(KwtWaybillOrderTicket::getUrls).collect(Collectors.joining(", "));
|
|
|
+ //卸货量
|
|
|
+ BigDecimal unloadAmount = unloadTickets.stream().map(KwtWaybillOrderTicket::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+
|
|
|
+ //装货信息
|
|
|
+ WaybillOrderLoadingVO load = new WaybillOrderLoadingVO();
|
|
|
+ load.setUnit(goodsUnit.getUnit());
|
|
|
+ load.setUnitName(unitMap.get(goodsUnit.getUnit()));
|
|
|
+ load.setAmount(loadAmount);
|
|
|
+ load.setMain(subtask.getUnit().equals(goodsUnit.getUnit()));
|
|
|
+ //卸货信息
|
|
|
+ WaybillOrderLoadingVO unload = new WaybillOrderLoadingVO();
|
|
|
+ unload.setUnit(goodsUnit.getUnit());
|
|
|
+ unload.setUnitName(unitMap.get(goodsUnit.getUnit()));
|
|
|
+ unload.setAmount(unloadAmount);
|
|
|
+ load.setMain(subtask.getUnit().equals(goodsUnit.getUnit()));
|
|
|
+
|
|
|
+ waybillTicket.setLoadUrl(loadUrls);
|
|
|
+ waybillTicket.setLoadTime(unloadDate.get().getOperateTime());
|
|
|
+ waybillTicket.setLoadWeight(loadAmount);
|
|
|
+ waybillTicket.setUnloadUrl(unloadUrls);
|
|
|
+ waybillTicket.setUnloadTime(loadDate.get().getOperateTime());
|
|
|
+ waybillTicket.setUnloadWeight(unloadAmount);
|
|
|
+ waybillTicket.setDeficitAmount(loadAmount.subtract(unloadAmount));
|
|
|
+ ticketList.add(waybillTicket);
|
|
|
+ }
|
|
|
+ return ticketList;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 单证信息
|
|
|
*
|
|
|
@@ -259,7 +322,7 @@ public class KwtWaybillOrderTicketService {
|
|
|
//单位数据字典
|
|
|
Map<String, SysDictResDto> unitType = remoteSystemService.queryDictMapByType(DictTypeEnum.UNIT_TYPE.getType());
|
|
|
//装载信息
|
|
|
- List<KwtWaybillOrderTicket> loading = waybillOrderTicketMapper.findWaybillOrderTicket(waybillOrder.getId(), null, type);
|
|
|
+ List<KwtWaybillOrderTicket> loading = ticketMapper.findWaybillOrderTicket(waybillOrder.getId(), null, type);
|
|
|
if (CollectionUtils.isNotEmpty(loading)) {
|
|
|
loading.forEach(e -> {
|
|
|
SysDictResDto sysDict = unitType != null ? unitType.get(e.getUnit()) : null;
|
|
|
@@ -283,7 +346,7 @@ public class KwtWaybillOrderTicketService {
|
|
|
//单位数据字典
|
|
|
Map<String, SysDictResDto> unitType = remoteSystemService.queryDictMapByType(DictTypeEnum.UNIT_TYPE.getType());
|
|
|
//装载信息
|
|
|
- List<KwtWaybillOrderTicket> loading = waybillOrderTicketMapper.findWaybillOrderTicket(subtask.getWOrderId(), subtask.getId(), type);
|
|
|
+ List<KwtWaybillOrderTicket> loading = ticketMapper.findWaybillOrderTicket(subtask.getWOrderId(), subtask.getId(), type);
|
|
|
if (CollectionUtils.isNotEmpty(loading)) {
|
|
|
loading.forEach(e -> {
|
|
|
SysDictResDto sysDict = unitType != null ? unitType.get(e.getUnit()) : null;
|