Browse Source

Merge remote-tracking branch 'origin/dev' into pre-production

pre-production
zhenghaoyu 5 days ago
parent
commit
7403af04a2
  1. 7
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataFactoryCategoryImporter.java
  2. 5
      blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/entity/FactoryNodePushEntity.java
  3. 40
      blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/NodeDataPushListener.java
  4. 34
      blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportTimeController.java
  5. 34
      blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportTimeMapper.xml
  6. 4
      blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportOpenTimeDetailVO.java
  7. 9
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/AdvanceDetailController.java
  8. 13
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/dto/PackageCodeDTO.java
  9. 3
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceDetailService.java
  10. 23
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceDetailServiceImpl.java
  11. 19
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java

7
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataFactoryCategoryImporter.java

@ -248,6 +248,9 @@ public class BasicdataFactoryCategoryImporter implements ExcelImporter<Basicdata
}
}catch (CustomerException e){
log.error("保存失败!", e);
throw new CustomerException(405, e.getMessage());
}catch (Exception e){
log.error("保存失败!", e);
throw new CustomerException(405, "保存失败!");
@ -284,7 +287,7 @@ public class BasicdataFactoryCategoryImporter implements ExcelImporter<Basicdata
*/
private String buildEqualString(BasicdataFactoryCategoryEntity allBasicdataFactoryCategoryEntity) {
StringBuilder stringBuffer = new StringBuilder();
stringBuffer.append(allBasicdataFactoryCategoryEntity.getBrand()).append(allBasicdataFactoryCategoryEntity.getCategory());
stringBuffer.append(allBasicdataFactoryCategoryEntity.getBrand());
// 增加结算类型 收入或者成本
stringBuffer.append(allBasicdataFactoryCategoryEntity.getType());
@ -322,7 +325,7 @@ public class BasicdataFactoryCategoryImporter implements ExcelImporter<Basicdata
*/
private String buildEqualString2(BasicdataFactoryCategoryExcel datum) {
StringBuilder stringBuffer = new StringBuilder();
stringBuffer.append(datum.getBrand()).append(datum.getCategory());
stringBuffer.append(datum.getBrand());
// 增加结算类型 收入或者成本
stringBuffer.append(datum.getType());
if (ObjectUtil.isNotEmpty(datum.getFirsts())) {

5
blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/entity/FactoryNodePushEntity.java

@ -79,6 +79,11 @@ public class FactoryNodePushEntity extends BaseEntity {
*/
@ApiModelProperty(value = "订单号")
private String orderCode;
/**
* 包条码
*/
@ApiModelProperty(value = "包条码")
private String packageCode;
/**
* 运单号
*/

40
blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/NodeDataPushListener.java

@ -173,22 +173,30 @@ public class NodeDataPushListener {
// value 按包件分组 包含则数量+1
// 分拨中心回传所有包件,其他节点回传当前操作的包件
if (isArrival) {
List<DeliveryNoteEntity> collect2 = factoryList.stream()
.filter(data -> data.getCrmSo().equals(orderCode))
.filter(data -> data.getShipmentSplitNo().equals(shipmentSplitNo))
.collect(Collectors.toList());
snMap = collect2.stream().collect(Collectors.toMap(DeliveryNoteEntity::getSn, s -> Convert.toInt(s.getQty())));
FactoryNodePushEntity entity1 = FactoryNodePushEntity.builder()
.orderCode(orderCode).statusName(needSendNode.getStatus()).opTime(entries.getStr("operatorTime")).content(needSendNode.getValue())
.waybillCode(waybillNumber).siteLevel(needSendNode.getSiteLecel(isArrival)).warehouse(sendData.getWarehouseName())
.receiveOrSend(needSendNode.getReceiveOrSend())
.shipmentSpitCode(shipmentSplitNo).shipmentCode(collect.get(sendData.getPackageCode() + sendData.getOrderCode()).get(0).getShipmentNo())
.receivable(0).receipts(0)
.type(needSendNode.getValue())
.typeCode(needSendNode.getCode())
.build();
pushEntities.add(entity1);
factoryNodeAllPushEntity.setPackageCode(collect2.stream().map(DeliveryNoteEntity::getSn).collect(Collectors.joining(",")));
// List<DeliveryNoteEntity> collect2 = factoryList.stream()
// .filter(data -> data.getCrmSo().equals(orderCode))
// .filter(data -> data.getShipmentSplitNo().equals(shipmentSplitNo))
// .collect(Collectors.toList());
List<DeliveryNoteEntity> checkList = deliveryNoteService.list(Wrappers.<DeliveryNoteEntity>lambdaQuery()
.select(DeliveryNoteEntity::getSn, DeliveryNoteEntity::getQty)
.eq(DeliveryNoteEntity::getShipmentSplitNo, shipmentSplitNo)
.eq(DeliveryNoteEntity::getCrmSo, orderCode)
);
snMap = checkList.stream().collect(Collectors.toMap(DeliveryNoteEntity::getSn, s -> Convert.toInt(s.getQty())));
for (DeliveryNoteEntity deliveryNoteEntity : checkList) {
FactoryNodePushEntity entity1 = FactoryNodePushEntity.builder()
.orderCode(orderCode).statusName(needSendNode.getStatus()).opTime(entries.getStr("operatorTime")).content(needSendNode.getValue())
.waybillCode(waybillNumber).siteLevel(needSendNode.getSiteLecel(isArrival)).warehouse(sendData.getWarehouseName())
.receiveOrSend(needSendNode.getReceiveOrSend())
.shipmentSpitCode(shipmentSplitNo).shipmentCode(collect.get(sendData.getPackageCode() + sendData.getOrderCode()).get(0).getShipmentNo())
.receivable(0).receipts(0)
.type(needSendNode.getValue())
.typeCode(needSendNode.getCode())
.packageCode(deliveryNoteEntity.getSn())
.build();
pushEntities.add(entity1);
}
factoryNodeAllPushEntity.setPackageCode(checkList.stream().map(DeliveryNoteEntity::getSn).collect(Collectors.joining(",")));
} else {
for (PushData data : value) {
if (snMap.containsKey(data.getPackageCode())) {

34
blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportTimeController.java

@ -52,23 +52,6 @@ public class ReportTimeController extends BladeController {
@ApiOperation(value = "开单时效明细报表", notes = "开单时效明细报表")
public R openTimeDetailPage(@RequestBody ReportTimeDTO reportTimeDTO) {
String method = "###########openTimeDetailPage: ";
String brand = reportTimeDTO.getBrand();
String businessLine = reportTimeDTO.getBusinessLine();
Long warehouseId = reportTimeDTO.getWarehouseId();
if(StringUtil.isBlank(brand)){
log.warn(method+"品牌不能为空 {}",brand);
return R.fail(405,"品牌不能为空");
}
if(StringUtil.isBlank(businessLine)){
log.warn(method+"事业线不能为空 {}",businessLine);
return R.fail(405,"事业线不能为空");
}
if(Objects.isNull(warehouseId)){
log.warn(method+"仓库id不能为空 {}",warehouseId);
return R.fail(405,"仓库id不能为空");
}
try{
return reportTimeService.openTimeDetailPage(reportTimeDTO);
}catch (Exception e){
@ -82,23 +65,6 @@ public class ReportTimeController extends BladeController {
@ApiOperation(value = "开单时效明细报表导出", notes = "开单时效明细报表导出")
public void openTimeDetailExport(@RequestBody ReportTimeDTO reportTimeDTO, HttpServletResponse response) {
String method = "###########openTimeDetailExport: ";
String brand = reportTimeDTO.getBrand();
String businessLine = reportTimeDTO.getBusinessLine();
Long warehouseId = reportTimeDTO.getWarehouseId();
if(StringUtil.isBlank(brand)){
log.warn(method+"品牌不能为空 {}",brand);
throw new CustomerException(405,"品牌不能为空");
}
if(StringUtil.isBlank(businessLine)){
log.warn(method+"事业线不能为空 {}",businessLine);
throw new CustomerException(405,"事业线不能为空");
}
if(Objects.isNull(warehouseId)){
log.warn(method+"仓库id不能为空 {}",warehouseId);
throw new CustomerException(405,"仓库id不能为空");
}
reportTimeService.openTimeDetailExport(reportTimeDTO,response);
}

34
blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportTimeMapper.xml

@ -711,9 +711,11 @@
ldsa.brand brand,
sum(ldsa.incoming_num) incomingNum,
IFNULL(sum(ltcls.num),0) outNum,
sum( ldsa.incoming_num ) - IFNULL(sum(ltcls.num),0) noOutNum,
sum(if(ltcll.start_date &lt;= DATE_ADD( ldsa.create_time, INTERVAL #{param.hoursTime} HOUR ),ltcls.num,0)) outOnTimeNum,
IFNULL(round(sum(if(ltcll.start_date &lt;= DATE_ADD( ldsa.create_time, INTERVAL #{param.hoursTime} HOUR ),ltcls.num,0))/sum(ldsa.incoming_num)*100,2),'0.00') outOnTimeRate,
round(sum(TIMESTAMPDIFF(SECOND, ldsa.create_time, ltcll.start_date)*ltcls.num)/sum(ltcls.num)/3600,1) avgTime
round(sum(TIMESTAMPDIFF(SECOND, ldsa.create_time, ltcll.start_date)*ltcls.num)/sum(ltcls.num)/3600,1) avgTime,
#{param.hoursTime} hoursTime
from logpm_distribution_stock_article ldsa
left join logpm_warehouse_warehouse waw on waw.id = ldsa.warehouse_id
left join logpm_warehouse_waybill lww on lww.waybill_no = ldsa.order_code
@ -775,9 +777,11 @@
ldsa.brand brand,
sum(ldsa.incoming_num) incomingNum,
IFNULL(sum(ltcls.num),0) outNum,
sum( ldsa.incoming_num ) - IFNULL(sum(ltcls.num),0) noOutNum,
sum(if(ltcll.start_date &lt;= DATE_ADD( ldsa.create_time, INTERVAL #{param.hoursTime} HOUR ),ltcls.num,0)) outOnTimeNum,
IFNULL(concat(round(sum(if(ltcll.start_date &lt;= DATE_ADD( ldsa.create_time, INTERVAL #{param.hoursTime} HOUR ),ltcls.num,0))/sum(ldsa.incoming_num)*100,2),'%'),'0.00%') outOnTimeRate,
round(sum(TIMESTAMPDIFF(SECOND, ldsa.create_time, ltcll.start_date)*ltcls.num)/sum(ltcls.num)/3600,1) avgTime
round(sum(TIMESTAMPDIFF(SECOND, ldsa.create_time, ltcll.start_date)*ltcls.num)/sum(ltcls.num)/3600,1) avgTime,
#{param.hoursTime} hoursTime
from logpm_distribution_stock_article ldsa
left join logpm_warehouse_warehouse waw on waw.id = ldsa.warehouse_id
left join logpm_warehouse_waybill lww on lww.waybill_no = ldsa.order_code
@ -1618,6 +1622,7 @@
lta.store_name storeName,
lta.warehouse_id warehouseId,
lta.warehouse_name warehouseName,
min(ltad.incoming_time) incomingTime,
GROUP_CONCAT(DISTINCT ltad.incoming_warehouse_name) incomingWarehouseName,
lta.site_name siteName,
lta.brand brand,
@ -1656,9 +1661,15 @@
left join logpm_warehouse_waybill lww on lww.waybill_no = lta.waybill_no
left join logpm_trunkline_advance_detail ltad on ltad.advance_id = lta.id
where lta.create_time > '2024-10-22 00:00:00'
and waw.business_line = #{param.businessLine}
and lta.brand = #{param.brand}
and lta.warehouse_id = #{param.warehouseId}
<if test="param.businessLine != null and param.businessLine !='' ">
and waw.business_line = #{param.businessLine}
</if>
<if test="param.brand != null and param.brand !='' ">
and lta.brand = #{param.brand}
</if>
<if test="param.warehouseId != null ">
and lta.warehouse_id = #{param.warehouseId}
</if>
<if test="param.businessLineList != null and param.businessLineList.size() > 0">
and waw.business_line in
<foreach collection="param.businessLineList" item="item" open="(" separator="," close=")">
@ -1788,6 +1799,7 @@
lta.store_name storeName,
lta.warehouse_id warehouseId,
lta.warehouse_name warehouseName,
min(ltad.incoming_time) incomingTime,
GROUP_CONCAT(DISTINCT ltad.incoming_warehouse_name) incomingWarehouseName,
lta.site_name siteName,
lta.brand brand,
@ -1832,9 +1844,15 @@
left join logpm_warehouse_waybill lww on lww.waybill_no = lta.waybill_no
left join logpm_trunkline_advance_detail ltad on ltad.advance_id = lta.id
where lta.create_time > '2024-10-22 00:00:00'
and waw.business_line = #{param.businessLine}
and lta.brand = #{param.brand}
and lta.warehouse_id = #{param.warehouseId}
<if test="param.businessLine != null and param.businessLine !='' ">
and waw.business_line = #{param.businessLine}
</if>
<if test="param.brand != null and param.brand !='' ">
and lta.brand = #{param.brand}
</if>
<if test="param.warehouseId != null ">
and lta.warehouse_id = #{param.warehouseId}
</if>
<if test="param.businessLineList != null and param.businessLineList.size() > 0">
and waw.business_line in
<foreach collection="param.businessLineList" item="item" open="(" separator="," close=")">

4
blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportOpenTimeDetailVO.java

@ -30,6 +30,10 @@ public class ReportOpenTimeDetailVO implements Serializable {
private Long warehouseId;
@ExcelProperty(value = "导入仓库")
private String warehouseName;
@ExcelProperty(value = "入库时间")
@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date incomingTime;
@ExcelProperty(value = "入库仓库")
private String incomingWarehouseName;

9
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/AdvanceDetailController.java

@ -8,6 +8,7 @@ import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.distribution.vo.OrderPackgeCodeDataVO;
import com.logpm.trunkline.dto.AdvanceDetailDTO;
import com.logpm.trunkline.dto.OrderDetailsDTO;
import com.logpm.trunkline.dto.PackageCodeDTO;
import com.logpm.trunkline.service.ITrunklineAdvanceDetailService;
import com.logpm.trunkline.vo.TrunklineAdvanceDetailVO;
import io.swagger.annotations.Api;
@ -17,10 +18,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springblade.common.exception.CustomerException;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@Slf4j
@ -62,14 +61,14 @@ public class AdvanceDetailController {
}
@GetMapping("/showAdvancePackgeCode")
@PostMapping("/showAdvancePackgeCode")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "返回模板和模板内容")
public R showAdvancePackgeCode(@ApiIgnore @RequestParam Map<String,Object> params){
public R showAdvancePackgeCode(@RequestBody PackageCodeDTO packageCodeDTO){
OrderPackgeCodeDataVO orderPackgeCodeDataVo= null;
try {
orderPackgeCodeDataVo = advanceDetailService.showAdvancePackgeCode(params);
orderPackgeCodeDataVo = advanceDetailService.showAdvancePackgeCode(packageCodeDTO);
} catch (Exception e) {
return R.fail(e.getMessage());
}

13
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/dto/PackageCodeDTO.java

@ -0,0 +1,13 @@
package com.logpm.trunkline.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class PackageCodeDTO implements Serializable {
private List<String> orderPackageCodes;
}

3
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceDetailService.java

@ -6,6 +6,7 @@ import com.logpm.distribution.vo.OrderPackgeCodeDataVO;
import com.logpm.trunkline.dto.AdvanceDTO;
import com.logpm.trunkline.dto.AdvanceDetailDTO;
import com.logpm.trunkline.dto.OrderDetailsDTO;
import com.logpm.trunkline.dto.PackageCodeDTO;
import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity;
import com.logpm.trunkline.vo.*;
import com.logpm.warehouse.entity.WarehouseWaybillEntity;
@ -41,7 +42,7 @@ public interface ITrunklineAdvanceDetailService extends BaseService<TrunklineAdv
Integer getNumByAdvanceId(Long advanceId);
OrderPackgeCodeDataVO showAdvancePackgeCode(Map<String, Object> params) throws Exception;
OrderPackgeCodeDataVO showAdvancePackgeCode(PackageCodeDTO packageCodeDTO) throws Exception;
List<TrunklineAdvanceDetailEntity> findListByAdvanceId(Long advanceId);

23
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceDetailServiceImpl.java

@ -6,7 +6,6 @@ import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.logpm.basic.entity.BasicPrintTemplateEntity;
@ -17,6 +16,7 @@ import com.logpm.distribution.vo.OrderPackgeCodeDataVO;
import com.logpm.trunkline.dto.AdvanceDTO;
import com.logpm.trunkline.dto.AdvanceDetailDTO;
import com.logpm.trunkline.dto.OrderDetailsDTO;
import com.logpm.trunkline.dto.PackageCodeDTO;
import com.logpm.trunkline.entity.ReportPackageBasicEntity;
import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity;
import com.logpm.trunkline.entity.TrunklineAdvanceEntity;
@ -35,6 +35,7 @@ import org.springblade.common.constant.broadcast.FanoutConstants;
import org.springblade.common.constant.printTemplate.PrintTemplateStatusConstant;
import org.springblade.common.enums.BizOperationEnums;
import org.springblade.common.enums.PackageTypeEnums;
import org.springblade.common.exception.CustomerException;
import org.springblade.common.model.FanoutMsg;
import org.springblade.common.model.NodeFanoutMsg;
import org.springblade.common.model.PackageData;
@ -157,7 +158,7 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
}
@Override
public OrderPackgeCodeDataVO showAdvancePackgeCode(Map<String, Object> params) throws Exception {
public OrderPackgeCodeDataVO showAdvancePackgeCode(PackageCodeDTO packageCodeDTO) throws Exception {
log.info("----------------------------------------111111111");
OrderPackgeCodeDataVO orderPackgeCodeDataVO = new OrderPackgeCodeDataVO();
List<Map> data = new ArrayList<>();
@ -170,15 +171,10 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
String html = TemplateUtil.getTemplateByUrl(template.getTemplateUrl());
orderPackgeCodeDataVO.setTemplateHtml(html);
orderPackgeCodeDataVO.setTemplateId(template.getId());
String orderPackageCodes = (String) params.get("orderPackageCodes");
List<String> orderPackageCodes = packageCodeDTO.getOrderPackageCodes();
String[] idArray = orderPackageCodes.split(",");
if (ObjectUtils.isNull(idArray)) {
throw new ServiceException("参数错误");
}
log.info("----------------------------------------333333333");
for (String orderPackageCode : idArray) {
orderPackageCodes.forEach(orderPackageCode -> {
DistributionStockArticleQRCodeVO vo = new DistributionStockArticleQRCodeVO();
log.info("----------------------------------------444444444444444444");
TrunklineAdvanceDetailEntity advanceDetailEntity = baseMapper.findEntityByOrderPackageCodelimit1(orderPackageCode);
@ -241,9 +237,14 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
String fileTypeName = QRCodeUtil.createCodeToFile(vo.getOrderCode());
map.put("imgType", QRCodeUtil.getEmpAutograph(fileTypeName));
data.add(map);
String tempData = TemplateUtil.popTemplate(template.getTemplateName(), map, orderPackgeCodeDataVO.getTemplateHtml());
String tempData = null;
try {
tempData = TemplateUtil.popTemplate(template.getTemplateName(), map, orderPackgeCodeDataVO.getTemplateHtml());
} catch (Exception e) {
throw new CustomerException(405, "模板生成失败");
}
values.add(tempData);
}
});
log.info("----------------------------------------88888888888888");
orderPackgeCodeDataVO.setDataList(data);

19
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java

@ -1516,6 +1516,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
String content = "包件在 " + warehouseEntity.getName() + "卸车确认";
packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseEntity.getName(), node.getCode(), content);
//同步一次系统无编码数据
syncNoSystemData(loadId, warehouseId, warehouseEntity.getName());
} catch (Exception e) {
log.warn("###############unloadPackage: 存入异常列表记录失败");
}
@ -11173,6 +11176,22 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
List<DistributionStockArticleEntity> updateStockArticleList = new ArrayList<>();
groupedByLoadId.keySet().forEach(loadId -> {
TrunklineCarsLoadLineEntity loadLineEntity = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId);
if (Objects.isNull(loadLineEntity)) {
log.warn("##################removeCarsLoadScan: 配载计划不存在 loadId={}", loadId);
throw new CustomerException(405,"配载计划不存在");
}
String nodeStatus = loadLineEntity.getNodeStatus();
if("20".equals(nodeStatus)){
log.warn("##################removeCarsLoadScan: 当前节点已发车 loadId={} warehouseId={}", loadId,warehouseId);
throw new CustomerException(405,"当前节点已发车");
}
if("0".equals(nodeStatus)){
log.warn("##################removeCarsLoadScan: 当前节点未到达 loadId={} warehouseId={}", loadId,warehouseId);
throw new CustomerException(405,"当前节点未到达");
}
List<TrunklineCarsLoadScanEntity> loadScanEntityList = groupedByLoadId.get(loadId);
if(CollUtil.isNotEmpty(loadScanEntityList)){
//把loadScanEntityList通过fromNodeId进行分组

Loading…
Cancel
Save