diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineCarsLoadScanEntity.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineCarsLoadScanEntity.java index e8ec3f7f3..c297dc00d 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineCarsLoadScanEntity.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineCarsLoadScanEntity.java @@ -154,4 +154,25 @@ public class TrunklineCarsLoadScanEntity extends TenantEntity { @ApiModelProperty(name = "顾客地址",notes = "") private String customerAddress; + /** 一级品类 */ + @ApiModelProperty(name = "一级品类",notes = "") + private String firsts; + + /** 二级品类 */ + @ApiModelProperty(name = "二级品类",notes = "") + private String senconds; + + /** 三级品类 */ + @ApiModelProperty(name = "三级品类",notes = "") + private String thirds; + + /** 物料编码 */ + @ApiModelProperty(name = "物料编码",notes = "") + private String materialCode; + + /** 物料名称 */ + @ApiModelProperty(name = "物料名称",notes = "") + private String materialName; + + } diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseWaybillDetailClient.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseWaybillDetailClient.java index 4737ee5fa..547570601 100644 --- a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseWaybillDetailClient.java +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseWaybillDetailClient.java @@ -17,6 +17,7 @@ package com.logpm.warehouse.feign; import com.logpm.warehouse.entity.WarehouseWayBillDetail; +import com.logpm.warehouse.vo.WaybillOrderTotalWeightAndVolumeVO; import org.springblade.common.constant.ModuleNameConstant; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; @@ -25,6 +26,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; +import java.util.Map; /** * 运单表 Feign接口类 @@ -76,4 +78,6 @@ public interface IWarehouseWaybillDetailClient { @GetMapping(API_PREFIX+"/findENtityByCodeAndName") WarehouseWayBillDetail findENtityByCodeAndName(@RequestParam String orderCode, @RequestParam String category); + @PostMapping(API_PREFIX+"/findWaybillOrderTotalWeightAndVolumeByWaybillNoList") + List findWaybillOrderTotalWeightAndVolumeByWaybillNoList(@RequestBody List waybillNoList); } diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/ExportWarehouseWaybillVO.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/ExportWarehouseWaybillVO.java index f787258d1..dc73e0168 100644 --- a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/ExportWarehouseWaybillVO.java +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/ExportWarehouseWaybillVO.java @@ -18,6 +18,9 @@ public class ExportWarehouseWaybillVO implements Serializable { @ExcelProperty(value = "订单号") private String orderNo; + @ExcelProperty(value = "备注") + private String remark; + @ExcelProperty(value = "发站仓") private String departureWarehouseName; @@ -64,6 +67,12 @@ public class ExportWarehouseWaybillVO implements Serializable { @ExcelProperty(value = "货物名称") private String goodsName; + @ExcelProperty(value = "货物名称明细") + private String productNum; + + @ExcelProperty(value = "干线品类单价") + private String productPrice; + @ExcelProperty(value = "按件分摊") private BigDecimal costPiece; @@ -76,6 +85,9 @@ public class ExportWarehouseWaybillVO implements Serializable { @ExcelProperty(value = "总件数") private Integer totalCount; + @ExcelProperty(value = "签收数量") + private Integer signNum; + @ExcelProperty(value = "总重量") private BigDecimal totalWeight; @@ -142,13 +154,6 @@ public class ExportWarehouseWaybillVO implements Serializable { @ExcelProperty(value = "经办人") private String agent; - @ExcelProperty(value = "创建时间") - @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - private Date createTime; - - @ExcelProperty(value = "制单时间") - @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - private Date documentMakingTime; @ExcelIgnore private Integer pickupCompleteOrNot; @@ -176,8 +181,40 @@ public class ExportWarehouseWaybillVO implements Serializable { @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date freezeTime; + + @ExcelProperty(value = "审核人") + private String checkUserName; + + @ExcelProperty(value = "审核原因") + private String checkReson; + + @ExcelProperty(value = "审核备注") + private String checkRemark; + + @ExcelProperty(value = "审核时间") + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date checkTime; + + + + @ExcelProperty(value = "签收人") + private String signUserName; + + @ExcelProperty(value = "复核人") + private String signCheckUserName; + + @ExcelProperty(value = "签收时间") + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date signTime; + + @ExcelProperty(value = "复核时间") + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date signCheckTime; + + @ExcelIgnore private Integer abolishStatus; + @ExcelProperty(value = "是否作废") private String abolishStatusStr; @@ -188,4 +225,14 @@ public class ExportWarehouseWaybillVO implements Serializable { @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date abolishTime; + + @ExcelProperty(value = "创建时间") + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + @ExcelProperty(value = "制单时间") + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date documentMakingTime; + + } diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WaybillOrderTotalWeightAndVolumeVO.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WaybillOrderTotalWeightAndVolumeVO.java new file mode 100644 index 000000000..e69a256fe --- /dev/null +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WaybillOrderTotalWeightAndVolumeVO.java @@ -0,0 +1,24 @@ +package com.logpm.warehouse.vo; + +import lombok.Data; + +@Data +public class WaybillOrderTotalWeightAndVolumeVO { + + /** + * 运单号 + */ + private String waybillNo; + + /** + * 总体积 + */ + private String sumVolume; + + /** + * 总总量 + */ + private String sumWeight; + + +} diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataVehicleController.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataVehicleController.java index ac756d579..97ee3bcfa 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataVehicleController.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataVehicleController.java @@ -35,6 +35,7 @@ import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.annotations.Param; +import org.springblade.common.exception.CustomerException; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.mp.support.Condition; @@ -150,10 +151,15 @@ public class BasicdataVehicleController extends BladeController { @ApiOperationSupport(order = 4) @ApiOperation(value = "新增", notes = "传入basicdataVehicle") public R save(@Valid @RequestBody BasicdataVehicleDTO basicdataVehicle) { - boolean save = basicdataVehicleService.saveVehicle(basicdataVehicle); - //加入关联表 - if (null !=basicdataVehicle.getVehicleOwners() && save){ - Integer b = basicdataVehicleService.updateOwners(basicdataVehicle); + boolean save = false; + try { + save = basicdataVehicleService.saveVehicle(basicdataVehicle); + //加入关联表 + if (null !=basicdataVehicle.getVehicleOwners() && save){ + Integer b = basicdataVehicleService.updateOwners(basicdataVehicle); + } + } catch (CustomerException e) { + throw new CustomerException(e.getMessage()); } return R.status(save); } diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataVehicleServiceImpl.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataVehicleServiceImpl.java index 6605a31a0..d1e296710 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataVehicleServiceImpl.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataVehicleServiceImpl.java @@ -168,8 +168,16 @@ public class BasicdataVehicleServiceImpl extends BaseServiceImpl list = this.list(); + // 验证车牌号码是否在系统已存在 + if (list.stream().anyMatch(e -> e.getVehicleNub().equals(basicdataVehicle.getVehicleNub()))) { + throw new CustomerException("车牌号已存在,请重新输入"); } + + return this.save(basicdataVehicle); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java index 636520b12..e7d62894d 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java @@ -1570,6 +1570,7 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl findListByOrderPackageCodes(List orderPackageCodes) { + log.info(">>>>>>>>>>>>>>>> orderPackageCodes :{}",orderPackageCodes); return baseMapper.findListByOrderPackageCodes(orderPackageCodes); } diff --git a/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/controller/OrderController.java b/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/controller/OrderController.java index b5faf3da5..976d13b0a 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/controller/OrderController.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/controller/OrderController.java @@ -1,7 +1,6 @@ package com.logpm.factorydata.jinpai.controller; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.ObjectUtil; import cn.hutool.json.JSONUtil; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.logpm.factorydata.jinpai.service.DeliveryNoteService; @@ -37,6 +36,8 @@ public class OrderController { private final DeliveryNoteService service; + + @ResponseBody @PostMapping @ApiOperationSupport(order = 1) diff --git a/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/entity/CustomPushEntity.java b/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/entity/CustomPushEntity.java new file mode 100644 index 000000000..6973fcdf7 --- /dev/null +++ b/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/entity/CustomPushEntity.java @@ -0,0 +1,48 @@ +package com.logpm.factorydata.jinpai.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +/** + * 金牌自定义回传 实体类 + * + * @author zhaoqiaobo + * @create 2024-04-26 + */ +@Data +@TableName("jp_custom_push") +@ApiModel(value = "金牌自定义回传", description = "金牌自定义回传") +@EqualsAndHashCode(callSuper = true) +public class CustomPushEntity extends BaseEntity { + + @ApiModelProperty(name = "订单号", notes = "") + private String orderCode; + + @ApiModelProperty(name = "节点 到站:1030100 入库:105040", notes = "") + private String nodeCode; + + @ApiModelProperty(name = "包件码", notes = "") + private String packageCode; + + @ApiModelProperty(name = "状态 1已发送 0未发送", notes = "") + private Integer sendStatus; + + @ApiModelProperty(name = "内容", notes = "") + private String content; + + @ApiModelProperty(name = "预留1", notes = "") + private String reserve1; + @ApiModelProperty(name = "预留2", notes = "") + private String reserve2; + @ApiModelProperty(name = "预留3", notes = "") + private String reserve3; + @ApiModelProperty(name = "预留4", notes = "") + private String reserve4; + @ApiModelProperty(name = "预留5", notes = "") + private String reserve5; + +} diff --git a/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/job/AuthPushJob.java b/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/job/AuthPushJob.java new file mode 100644 index 000000000..7368adb7f --- /dev/null +++ b/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/job/AuthPushJob.java @@ -0,0 +1,62 @@ +package com.logpm.factorydata.jinpai.job; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.logpm.factorydata.jinpai.entity.CustomPushEntity; +import com.logpm.factorydata.jinpai.service.CustomPushService; +import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.factorydata.FactoryDataConstants; +import org.springblade.common.enums.BooleanZeroOneEnums; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 自动回推金牌工厂 + * + * @author zhaoqiaobo + * @create 2024-04-02 + */ +@AllArgsConstructor +@Component +@Slf4j +public class AuthPushJob { + + private final CustomPushService customPushService; + private final RabbitTemplate rabbitTemplate; + + /** + * 自定义回传工厂节点作业数据 + * + * @param param + * @return + * @throws Exception + */ + @XxlJob("customPushFactoryData") + public ReturnT customPushFactoryData(String param) throws Exception { + // 查出数据,回推工厂 + List list = customPushService.list(Wrappers.lambdaQuery() + .select(CustomPushEntity::getId, CustomPushEntity::getContent) + .eq(CustomPushEntity::getSendStatus, 0) + .orderByAsc(CustomPushEntity::getNodeCode) + .last("limit 1")); + if (CollUtil.isNotEmpty(list)) { + CustomPushEntity customPushEntity = list.get(0); + if (StrUtil.isNotEmpty(customPushEntity.getContent())) { + rabbitTemplate.convertAndSend(FactoryDataConstants.Mq.Exchanges.NODE_DATA_PUSH, + FactoryDataConstants.Mq.RoutingKeys.JP_NODE_DATA_PUSH, customPushEntity.getContent()); + CustomPushEntity updateEntity = new CustomPushEntity(); + updateEntity.setId(customPushEntity.getId()); + updateEntity.setSendStatus(BooleanZeroOneEnums.YES.getCode()); + customPushService.updateById(updateEntity); + } + } + return ReturnT.SUCCESS; + } + +} diff --git a/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/mapper/CustomPushMapper.java b/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/mapper/CustomPushMapper.java new file mode 100644 index 000000000..0bf3eddbf --- /dev/null +++ b/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/mapper/CustomPushMapper.java @@ -0,0 +1,16 @@ +package com.logpm.factorydata.jinpai.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.logpm.factorydata.jinpai.entity.CustomPushEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 金牌自定义回传 mapper + * + * @author zqb + * @since 2024-03-26 + */ +@Mapper +public interface CustomPushMapper extends BaseMapper { + +} diff --git a/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/mapper/CustomPushMapper.xml b/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/mapper/CustomPushMapper.xml new file mode 100644 index 000000000..c0592b1db --- /dev/null +++ b/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/mapper/CustomPushMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/mq/NodeDataPushListener.java b/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/mq/NodeDataPushListener.java index e9126a67b..38819cdd5 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/mq/NodeDataPushListener.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/mq/NodeDataPushListener.java @@ -125,7 +125,7 @@ public class NodeDataPushListener { Map pushEntityMap = new HashMap<>(); if (CollUtil.isNotEmpty(pushEntities)) { pushEntityMap = pushEntities.stream().filter(pushEntity -> { - return pushEntity.getNode().equals(FactoryNodeEnums.FINAL_NET_ARRIVE_CAR.getCode()); + return StrUtil.equals(pushEntity.getNode(),FactoryNodeEnums.FINAL_NET_ARRIVE_CAR.getCode().toString()); }).collect(Collectors.toMap(FactoryNodePushEntity::getOrderCode, v -> v)); } JSONObject mainJson = JSONUtil.parseObj(main); @@ -191,7 +191,7 @@ public class NodeDataPushListener { Map pushEntityMap = new HashMap<>(); if (CollUtil.isNotEmpty(pushEntities)) { pushEntityMap = pushEntities.stream().filter(pushEntity -> { - return pushEntity.getNode().equals(FactoryNodeEnums.END_WAREHOUSE_UNLOADING.getCode()); + return StrUtil.equals(pushEntity.getNode(),FactoryNodeEnums.END_WAREHOUSE_UNLOADING.getCode().toString()); }).collect(Collectors.toMap(FactoryNodePushEntity::getPackageCode, v -> v)); } for (PushData pushData : content) { @@ -219,6 +219,7 @@ public class NodeDataPushListener { .orderCode(pushData.getOrderCode()) .node(FactoryNodeEnums.END_WAREHOUSE_UNLOADING.getCode().toString()) .content(JSONUtil.toJsonStr(js)) + .packageCode(pushData.getPackageCode()) .resultContent(result) .build()); } diff --git a/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/service/CustomPushService.java b/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/service/CustomPushService.java new file mode 100644 index 000000000..10a5a4939 --- /dev/null +++ b/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/service/CustomPushService.java @@ -0,0 +1,14 @@ +package com.logpm.factorydata.jinpai.service; + +import com.logpm.factorydata.jinpai.entity.CustomPushEntity; +import org.springblade.core.mp.base.BaseService; + +/** + * 金牌自定义回传 服务类 + * + * @Author zqb + * @Date 2024/4/26 + **/ +public interface CustomPushService extends BaseService { + +} diff --git a/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/service/impl/CustomPushServiceImpl.java b/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/service/impl/CustomPushServiceImpl.java new file mode 100644 index 000000000..64dcd9b5a --- /dev/null +++ b/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/service/impl/CustomPushServiceImpl.java @@ -0,0 +1,22 @@ +package com.logpm.factorydata.jinpai.service.impl; + +import com.logpm.factorydata.jinpai.entity.CustomPushEntity; +import com.logpm.factorydata.jinpai.mapper.CustomPushMapper; +import com.logpm.factorydata.jinpai.service.CustomPushService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +/** + * 金牌自定义回传 业务实现类 + * + * @Author zqb + * @Date 2024/4/26 + **/ +@Slf4j +@Service +@AllArgsConstructor +public class CustomPushServiceImpl extends BaseServiceImpl implements CustomPushService { + +} diff --git a/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/service/impl/DeliveryNoteServiceImpl.java b/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/service/impl/DeliveryNoteServiceImpl.java index 2ea4f88f7..9abbaf48c 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/service/impl/DeliveryNoteServiceImpl.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-jinpai/src/main/java/com/logpm/factorydata/jinpai/service/impl/DeliveryNoteServiceImpl.java @@ -392,6 +392,7 @@ public class DeliveryNoteServiceImpl extends BaseServiceImpl warehouseByBrandAndSiteName = baseClient.getWarehouseByBrandAndSiteName(BrandEnums.SFY.getValue(), BrandEnums.SFY.getValue()); + R warehouseByBrandAndSiteName = baseClient.getWarehouseByBrandAndSiteName(BrandEnums.SFY.getValue(), vo.getCarrierNo()); if (ObjectUtil.equal(HttpConstants.HTTP.HTTP_RESOURCE_CODE.SUCCESS_CODE, warehouseByBrandAndSiteName.getCode())) { FactoryWarehouseBindVO data = warehouseByBrandAndSiteName.getData(); if (ObjectUtil.isNotNull(data)) { diff --git a/blade-service/logpm-factory-data/logpm-factory-data-zbom/src/main/java/com/logpm/factorydata/zbom/service/impl/ReceiptServiceImpl.java b/blade-service/logpm-factory-data/logpm-factory-data-zbom/src/main/java/com/logpm/factorydata/zbom/service/impl/ReceiptServiceImpl.java index 645d02847..1c7d5f135 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-zbom/src/main/java/com/logpm/factorydata/zbom/service/impl/ReceiptServiceImpl.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-zbom/src/main/java/com/logpm/factorydata/zbom/service/impl/ReceiptServiceImpl.java @@ -221,6 +221,9 @@ public class ReceiptServiceImpl extends BaseServiceImpl strings = new ArrayList<>(); - System.out.println(22222==a); + strings.add("11"); + strings.add("11"); + strings.add("14"); + strings.add("11"); + strings.add("11"); + strings.add("13"); + strings.add("11"); + strings.add("11"); + + for (int a=0 ;a< 1200;a++){ + strings.add(a+100+""); + + } + + List> split = CollUtil.split(strings, 500); + + split.forEach(s -> { + System.out.println(s); + + }); // Date data1 = DateUtil.parse("2024-07-23 17:07:23.123","yyyy-MM-dd hh:mm:ss.SSS"); // Date data2 = DateUtil.parse("2024-07-24 17:07:23.123","yyyy-MM-dd hh:mm:ss.SSS"); diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java index c4f0dc252..ded22e148 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java @@ -1004,11 +1004,10 @@ public class SyncOrderInfoToPlatform { //查询所有装车明细 List carsLoadScanEntities = carsLoadScanClient.findAllListByLoadId(loadId); - List scanloadIdList = carsLoadScanEntities.stream().map(TrunklineCarsLoadScanEntity::getId).collect(Collectors.toList()); - + List scanloadIdList = new ArrayList<>(); //把carsLoadScanEntities通过unloadNodeId分组 - Map> collect = carsLoadScanEntities.stream().collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getUnloadNodeId)); + Map> collect = carsLoadScanEntities.stream().filter(s -> !Objects.isNull(s.getUnloadNodeId())).collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getUnloadNodeId)); collect.keySet().forEach(unloadNodeId -> { List trunklineCarsLoadScanEntities = collect.get(unloadNodeId); @@ -1028,7 +1027,9 @@ public class SyncOrderInfoToPlatform { }); }); - carsLoadScanClient.removeLoadScanByIds(scanloadIdList); + if(CollUtil.isNotEmpty(scanloadIdList)){ + carsLoadScanClient.removeLoadScanByIds(scanloadIdList); + } carsLoadClient.updateCardLoadNum(loadId); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml index 677661a7b..b458ad8e7 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml @@ -182,6 +182,7 @@ select * from logpm_trunkline_cars_load_scan where is_deleted = 0 + and is_supple = 0 and load_id = #{param.loadId} @@ -846,7 +847,6 @@ from logpm_trunkline_cars_load_scan ltcls left join logpm_trunkline_cars_order ltco on ltco.waybill_id = ltcls.waybill_id and ltco.order_code = ltcls.order_code where ltcls.load_id = #{loadId} - and ltco.id is null GROUP BY IFNULL(ltcls.waybill_no,'--'), ltcls.order_code order by IFNULL(ltcls.waybill_no,'--') desc, ltcls.order_code desc diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java index ae1732949..8e414ba13 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java @@ -477,6 +477,12 @@ public class OpenOrderServiceImpl implements IOpenOrderService { // while(!Objects.isNull(warehouseWaybillEntity)){ // waybillNo = basicdataCodeClient.getCodeByType(CodeNumConstant.WAYBILL, warehouseCode, ""); // } + }else{ + WarehouseWaybillEntity warehouseWaybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNo); + if(!Objects.isNull(warehouseWaybillEntity)){ + log.warn("#############openWaybill: 运单号已存在 waybillNo={}", waybillNo); + return R.fail(405, "运单号已存在"); + } } Long departureWarehouseId = openOrderDTO.getDepartureWarehouseId(); Long destinationWarehouseId = openOrderDTO.getDestinationWarehouseId(); @@ -705,6 +711,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { List> orderPackageCodeList = CollUtil.split(orderPackageCodes, 500); List parcelListEntities = new ArrayList<>(); orderPackageCodeList.forEach(orderPackageCodeList1 -> { + log.info("###############openWaybill: 分组查询订单包裹信息, {}",orderPackageCodeList1); parcelListEntities.addAll(distributionParcelListClient.findListByOrderPackageCodes(orderPackageCodeList1)); }); @@ -822,6 +829,12 @@ public class OpenOrderServiceImpl implements IOpenOrderService { //如果运单号为空则自动生成运单号 if (StringUtil.isBlank(waybillNo)) { waybillNo = basicdataCodeClient.getCodeByType(CodeNumConstant.WAYBILL, warehouseCode, ""); + }else{ + WarehouseWaybillEntity warehouseWaybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNo); + if(!Objects.isNull(warehouseWaybillEntity)){ + log.warn("#############openZeroWaybill: 运单号已存在 waybillNo={}", waybillNo); + return R.fail(405, "运单号已存在"); + } } WarehouseWaybillEntity waybillEntity = new WarehouseWaybillEntity(); @@ -1757,6 +1770,14 @@ public class OpenOrderServiceImpl implements IOpenOrderService { long start = System.currentTimeMillis(); List importCustomizedOuPaiDTOS = EasyExcel.read(inputStream).head(ImportCustomizedOuPaiDTO.class).sheet(0).headRowNumber(1).doReadSync(); + //判断importCustomizedOuPaiDTOS中firstsName有值的数量 + long countWithMaterialName = importCustomizedOuPaiDTOS.stream() + .filter(dto -> StringUtil.isNotBlank(dto.getFirstsName())) + .count(); + if(NumberUtil.equals(countWithMaterialName,0)){ + log.warn("#################: 请使用定制品模版"); + return R.fail(405,"请使用定制品模版"); + } //排除pacakgeDetailExcelDTOS中的orderPackageCode为空的元素 importCustomizedOuPaiDTOS = importCustomizedOuPaiDTOS.stream().filter(item -> StringUtil.isNotBlank(item.getOrderPackageCode())).collect(Collectors.toList()); @@ -2094,8 +2115,18 @@ public class OpenOrderServiceImpl implements IOpenOrderService { InputStream inputStream = file.getInputStream(); + //读取inputStream中Excel的表头数据 List importStandardOuPaiDTOS = EasyExcel.read(inputStream).head(ImportStandardOuPaiDTO.class).sheet(0).headRowNumber(1).doReadSync(); + //判断importStandardOuPaiDTOS中materialName有值的数量 + long countWithMaterialName = importStandardOuPaiDTOS.stream() + .filter(dto -> StringUtil.isNotBlank(dto.getMaterialName())) + .count(); + if(NumberUtil.equals(countWithMaterialName,0)){ + log.warn("#################: 请使用标准品模版"); + return R.fail(405,"请使用标准品模版"); + } + //排除importStandardOuPaiDTOS中的orderPackageCode为空的元素 importStandardOuPaiDTOS = importStandardOuPaiDTOS.stream().filter(item -> StringUtil.isNotBlank(item.getOrderPackageCode())).collect(Collectors.toList()); @@ -2406,8 +2437,16 @@ public class OpenOrderServiceImpl implements IOpenOrderService { advanceDetailModel.setMaterialId(basicMaterialEntity.getId()); advanceDetailModel.setMaterialCode(materialCode); advanceDetailModel.setMaterialName(materialName); - advanceDetailModel.setWeight(new BigDecimal(basicMaterialEntity.getWeight())); - advanceDetailModel.setVolume(new BigDecimal(basicMaterialEntity.getVolume())); + String weight = basicMaterialEntity.getWeight(); + if(StringUtil.isBlank(weight)){ + weight = "0"; + } + String volume1 = basicMaterialEntity.getVolume(); + if(StringUtil.isBlank(volume1)){ + volume1 = "0"; + } + advanceDetailModel.setWeight(new BigDecimal(weight)); + advanceDetailModel.setVolume(new BigDecimal(volume1)); } // if (StringUtil.isNotBlank(materialCode) && StringUtil.isNotBlank(materialName)) { diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java index ea7d99f26..4c1b7e27c 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java @@ -54,6 +54,7 @@ import com.logpm.warehouse.feign.IWarehouseTrayTypeClient; import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient; import com.logpm.warehouse.feign.IWarehouseWaybillClient; import com.logpm.warehouse.feign.IWarehouseWaybillDetailClient; +import com.logpm.warehouse.vo.WaybillOrderTotalWeightAndVolumeVO; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringEscapeUtils; @@ -3646,6 +3647,12 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroDetailList = new ArrayList<>(); @@ -4516,41 +4529,69 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl carsLoadWaybillInfoList = trunklineCarsOrderService.findWaybillOrderByloadId(loadId); + + // 得到集合中的运单号集合 +// List waybillNoList = carsLoadWaybillInfoList.stream().map(CarsLoadWaybillInfoVO::getWaybillNo).collect(Collectors.toList()); + // 查询运单号的总量、体积 +// List waybillOrderTotalList = warehouseWaybillDetailClient.findWaybillOrderTotalWeightAndVolumeByWaybillNoList(waybillNoList); + for (CarsLoadWaybillInfoVO carsLoadWaybillInfoVO : carsLoadWaybillInfoList) { - String waybillNo = carsLoadWaybillInfoVO.getWaybillNo(); - List wayBillDetails = warehouseWaybillDetailClient.findListByWaybillNo(waybillNo); + // 获取运单对应的总体积和总重量 +// WaybillOrderTotalWeightAndVolumeVO waybillOrderTotalWeightAndVolumeVO = getWaybillOrderTotalWeighAndVolume(carsLoadWaybillInfoVO, waybillOrderTotalList); + + + String waybillNo = carsLoadWaybillInfoVO.getWaybillNo(); + // 查询 明细上的总量和体积 String openPrice = null; String productNames = null; - for (WarehouseWayBillDetail wayBillDetail : wayBillDetails) { - String productName = wayBillDetail.getProductName(); - Integer num = wayBillDetail.getNum(); - BigDecimal price = wayBillDetail.getPrice(); - if (StringUtil.isBlank(openPrice)) { - openPrice = price.toPlainString(); - } else { - openPrice = openPrice + "," + price.toPlainString(); - } - if (StringUtil.isBlank(productNames)) { - productNames = productName + "(" + num + ")"; - } else { - productNames = productNames + "," + productName + "(" + num + ")"; + BigDecimal oneWeight = BigDecimal.ZERO; + BigDecimal oneVolume = BigDecimal.ZERO; + if(!StringUtil.isBlank(waybillNo)){ + List wayBillDetails = warehouseWaybillDetailClient.findListByWaybillNo(waybillNo); + + + + + for (WarehouseWayBillDetail wayBillDetail : wayBillDetails) { + String productName = wayBillDetail.getProductName(); + Integer num = wayBillDetail.getNum(); + BigDecimal volume = wayBillDetail.getVolume(); + BigDecimal weight = wayBillDetail.getWeight(); + BigDecimal price = wayBillDetail.getPrice(); + if (StringUtil.isBlank(openPrice)) { + openPrice = price.toPlainString(); + } else { + openPrice = openPrice + "," + price.toPlainString(); + } + if (StringUtil.isBlank(productNames)) { + productNames = productName + "(" + num + ")"; + } else { + productNames = productNames + "," + productName + "(" + num + ")"; + } } + + List carsLoadOrderInfoListPlan = trunklineCarsOrderService.findCarsLoadOrderInfoListPlan(loadId, waybillNo); + carsLoadOrderInfoListPlan.forEach(carsLoadOrderInfoVO -> { + carsLoadOrderInfoVO.setUnloadIncome(carsLoadOrderInfoVO.getUnloadIncome().setScale(2, BigDecimal.ROUND_HALF_UP)); + carsLoadOrderInfoVO.setOrderFreight(carsLoadOrderInfoVO.getOrderFreight().setScale(2, BigDecimal.ROUND_HALF_UP)); + }); + carsLoadWaybillInfoVO.setCarsLoadOrderInfoList(carsLoadOrderInfoListPlan); + } + + carsLoadWaybillInfoVO.setOpenPrice(openPrice); carsLoadWaybillInfoVO.setGoodsName(productNames); // List carsLoadOrderInfoList = trunklineCarsOrderService.findCarsLoadOrderInfoList(loadId, waybillNo); - List carsLoadOrderInfoListPlan = trunklineCarsOrderService.findCarsLoadOrderInfoListPlan(loadId, waybillNo); + if(!StringUtil.isBlank(waybillNo)){ + + } - carsLoadOrderInfoListPlan.forEach(carsLoadOrderInfoVO -> { - carsLoadOrderInfoVO.setUnloadIncome(carsLoadOrderInfoVO.getUnloadIncome().setScale(2, BigDecimal.ROUND_HALF_UP)); - carsLoadOrderInfoVO.setOrderFreight(carsLoadOrderInfoVO.getOrderFreight().setScale(2, BigDecimal.ROUND_HALF_UP)); - }); - carsLoadWaybillInfoVO.setCarsLoadOrderInfoList(carsLoadOrderInfoListPlan); // carsLoadWaybillInfoVO.setCarsLoadOrderInfoListPlan(carsLoadOrderInfoListPlan); TrunklineCostShareRecordEntity costShareRecordEntity = trunklineCostShareRecordService.findTotalUnloadNumByLoadAndWaybillNo(loadId, waybillNo); @@ -4660,6 +4701,16 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl waybillOrderTotalList) { + for (WaybillOrderTotalWeightAndVolumeVO waybillOrderTotalWeightAndVolumeVO : waybillOrderTotalList) { + String waybillNo = waybillOrderTotalWeightAndVolumeVO.getWaybillNo(); + if (waybillNo.equals(carsLoadWaybillInfoVO.getWaybillNo())) { + return waybillOrderTotalWeightAndVolumeVO; + } + } + return null; + } + @Override public R zeroSuppleList(LoadCarsDTO loadCarsDTO) { @@ -5613,6 +5664,17 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl loadScanEntityListHasData = loadScanEntityList.stream().filter(e -> e.getIsData() == 1).collect(Collectors.toList()); + //把loadScanEntityListHasData中所有元素的scanCode放入一个List + List scanCodeList = loadScanEntityListHasData.stream().map(TrunklineCarsLoadScanEntity::getScanCode).collect(Collectors.toList()); + FindParamterDTO findParamterDTO = new FindParamterDTO(); + findParamterDTO.setOrderPackageCodeList(scanCodeList); + findParamterDTO.setWarehouseId(warehouseId); + List parcelListEntityList = distributionParcelListClient.findListByOrderPackageCodeList(findParamterDTO); + //把parcelListEntityList中所有的orderPackageCode放入一个List + List orderPackageCodeList = parcelListEntityList.stream().map(DistributionParcelListEntity::getOrderPackageCode).collect(Collectors.toList()); + //把loadScanEntityListHasData中的元素通过orderPackageCodeList存在及过滤掉 + loadScanEntityListHasData = loadScanEntityListHasData.stream().filter(e -> !orderPackageCodeList.contains(e.getScanCode())).collect(Collectors.toList()); + //把loadScanEntityListHasData通过tray_code is null和tray_code is not null 分成两个新的list List loadScanEntityListHasDataNoTray = loadScanEntityListHasData.stream().filter(e -> StringUtil.isBlank(e.getTrayCode())).collect(Collectors.toList()); //把loadScanEntityListHasDataNoTray通过orderCode进行分组 @@ -7131,6 +7193,11 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl neloadScanQueryWrapper = new QueryWrapper<>(); neloadScanQueryWrapper.eq("load_id", loadId) .eq("scan_code", orderPackageCode) + .eq("unload_node_id", warehouseId) .ne("scan_status", "1"); TrunklineCarsLoadScanEntity scanEntity = trunklineCarsLoadScanService.getOne(neloadScanQueryWrapper); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillOrderServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillOrderServiceImpl.java index f01e0970d..d583dce87 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillOrderServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillOrderServiceImpl.java @@ -29,6 +29,10 @@ public class TrunklineWaybillOrderServiceImpl extends BaseServiceImpl findListByWaybillId(Long waybillId) { + + // 查询运单 + + return baseMapper.findListByWaybillId(waybillId); } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseWaybillDetailClient.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseWaybillDetailClient.java index b4c8693f6..c2c9df898 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseWaybillDetailClient.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseWaybillDetailClient.java @@ -5,11 +5,13 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.logpm.warehouse.entity.WarehouseWayBillDetail; import com.logpm.warehouse.service.IWarehouseWayBillDetailService; +import com.logpm.warehouse.vo.WaybillOrderTotalWeightAndVolumeVO; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; import java.util.List; +import java.util.Map; @ApiIgnore @RestController @@ -86,4 +88,12 @@ public class WarehouseWaybillDetailClient implements IWarehouseWaybillDetailClie } return null; } + + @Override + public List findWaybillOrderTotalWeightAndVolumeByWaybillNoList(List waybillNoList) { + + List data=warehouseWayBillDetailService.findWaybillOrderTotalWeightAndVolumeByWaybillNoList(waybillNoList); + + return data; + } } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWayBillDetailMapper.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWayBillDetailMapper.java index a723c8768..831c86245 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWayBillDetailMapper.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWayBillDetailMapper.java @@ -2,14 +2,18 @@ package com.logpm.warehouse.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.logpm.warehouse.entity.WarehouseWayBillDetail; +import com.logpm.warehouse.vo.WaybillOrderTotalWeightAndVolumeVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; @Mapper public interface WarehouseWayBillDetailMapper extends BaseMapper { List findByWaybillIds(List ids); void deleteByWaybillNo(@Param("waybillNo") String waybillNo); + + List findWaybillOrderTotalWeightAndVolumeByWaybillNoList(@Param("waybillNoList") List waybillNoList); } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillDetailMapper.xml b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillDetailMapper.xml index 0aa47d850..0f64289a4 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillDetailMapper.xml +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillDetailMapper.xml @@ -16,5 +16,15 @@ and is_deleted = 0 + diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.xml b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.xml index 37d243da9..df62298eb 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.xml +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.xml @@ -146,14 +146,84 @@