Commit 8d3153c7 authored by yanghao's avatar yanghao

task: #240 空运/海运-PDA/后台, 添加理货相关页面的属性

parent 8a679bff
...@@ -65,6 +65,7 @@ public interface BoxPreloadGoodsMapper extends AbstractMapper<BoxPreloadGoodsDO> ...@@ -65,6 +65,7 @@ public interface BoxPreloadGoodsMapper extends AbstractMapper<BoxPreloadGoodsDO>
"ebpg.order_id, ", "ebpg.order_id, ",
"ebpg.order_item_id, ", "ebpg.order_item_id, ",
"ebpg.tidan_num, ", "ebpg.tidan_num, ",
"eo.order_id, ",
"eo.order_no, ", "eo.order_no, ",
"eo.transport_id, ", "eo.transport_id, ",
"(select min(owi.`in_time`) from ecw_order_warehouse_in owi where owi.deleted = 0 and owi.order_id = eo.order_id ) as rucang_time,", "(select min(owi.`in_time`) from ecw_order_warehouse_in owi where owi.deleted = 0 and owi.order_id = eo.order_id ) as rucang_time,",
...@@ -83,6 +84,7 @@ public interface BoxPreloadGoodsMapper extends AbstractMapper<BoxPreloadGoodsDO> ...@@ -83,6 +84,7 @@ public interface BoxPreloadGoodsMapper extends AbstractMapper<BoxPreloadGoodsDO>
"eo.audit_type, ", "eo.audit_type, ",
"eo.audit_result, ", "eo.audit_result, ",
"eo.guan_lian_order_status, ", "eo.guan_lian_order_status, ",
"eo.container_number, ",
"eo.exception_reason, ", "eo.exception_reason, ",
"eo.package_type as advance_type, ", "eo.package_type as advance_type, ",
"eoi.prod_title_zh, ", "eoi.prod_title_zh, ",
...@@ -113,7 +115,8 @@ public interface BoxPreloadGoodsMapper extends AbstractMapper<BoxPreloadGoodsDO> ...@@ -113,7 +115,8 @@ public interface BoxPreloadGoodsMapper extends AbstractMapper<BoxPreloadGoodsDO>
"IF(#{query.lang} = 0, pd.title_zh, pd.title_en) as brand_name, ", "IF(#{query.lang} = 0, pd.title_zh, pd.title_en) as brand_name, ",
"ewl.dest_warehouse_id, ", "ewl.dest_warehouse_id, ",
"IFNULL((select a.pkg_id from ecw_box_pkg_order a where a.deleted=0 and a.order_item_id=ebpg.order_item_id limit 1),0) as pkgId, ", "IFNULL((select a.pkg_id from ecw_box_pkg_order a where a.deleted=0 and a.order_item_id=ebpg.order_item_id limit 1),0) as pkgId, ",
"(select t1.pkg_num from ecw_box_pkg_order t INNER JOIN ecw_box_merge_pkg t1 on t.pkg_id=t1.id where t.deleted=0 and t1.deleted=0 and t.order_id=ebpg.order_id limit 1) as pkgNum ", "(select t1.pkg_num from ecw_box_pkg_order t INNER JOIN ecw_box_merge_pkg t1 on t.pkg_id=t1.id where t.deleted=0 and t1.deleted=0 and t.order_id=ebpg.order_id limit 1) as pkgNum, ",
"(select count(0) from ecw_order_guanlian t LEFT JOIN ecw_order t1 on t.order_id=t1.order_id LEFT JOIN ecw_order t2 on t.relate_order_id=t2.order_id where (t.order_id=3398 or t.relate_order_id = 3398) and t1.deleted=0 and t2.deleted=0 and t.deleted=0 ) as guanLianOrderCount ",
"FROM ecw_box_preload_goods ebpg ", "FROM ecw_box_preload_goods ebpg ",
"INNER JOIN ecw_box_preload_section ebps ON ebpg.sec_id = ebps.id ", "INNER JOIN ecw_box_preload_section ebps ON ebpg.sec_id = ebps.id ",
"INNER JOIN ecw_order eo ON eo.order_id = ebpg.order_id ", "INNER JOIN ecw_order eo ON eo.order_id = ebpg.order_id ",
...@@ -182,6 +185,126 @@ public interface BoxPreloadGoodsMapper extends AbstractMapper<BoxPreloadGoodsDO> ...@@ -182,6 +185,126 @@ public interface BoxPreloadGoodsMapper extends AbstractMapper<BoxPreloadGoodsDO>
List<BoxPreloadGoodsBackVO> orderPreloaded(@Param("query") PreloadedReq query); List<BoxPreloadGoodsBackVO> orderPreloaded(@Param("query") PreloadedReq query);
// 从orderPreloaded copy过来的,主要是想要属性都保持一致。
@ResultType(BoxPreloadGoodsBackVO.class)
@Select({
"<script>",
"select ",
"eo.order_id, ",
"eo.order_no, ",
"eo.transport_id, ",
"(select min(owi.`in_time`) from ecw_order_warehouse_in owi where owi.deleted = 0 and owi.order_id = eo.order_id ) as rucang_time,",
"eo.product_record, ",
"eo.customs_type, ",
"eo.adjust_to_dest_warehouse_id, ",
"eo.warehouse_type, ",
"eo.line_id, ",
"eo.is_external_warehouse, ",
"eo.cost ->> '$.totalWorth' as total_worth, ",
"eo.air_shipment, ",
"eo.status, ",
"eo.abnormal_state, ",
"eo.in_warehouse_state, ",
"eo.shipment_state, ",
"eo.audit_type, ",
"eo.audit_result, ",
"eo.guan_lian_order_status, ",
"eo.container_number, ",
"eo.exception_reason, ",
"eo.package_type as advance_type, ",
"eoi.prod_title_zh, ",
"eoi.prod_title_en, ",
"eoi.box_gauge, ",
"eoi.num, ",
"eoi.quantity, ",
"eoi.worth, ",
"eoi.brand_type, ",
"eoi.brand, ",
"eoi.sea_freight_currency, ",
"eoi.clearance_freight_currency, ",
"eoi.prod_attr_ids, ",
"eoi.warehouse_in_prod_attr_ids, ",
"eoi.fee_type, ",
"if(#{query.lang} = 0, ew_start.title_zh, ew_start.title_en) as start_warehouse_name, ",
"if(#{query.lang} = 0, ew_dest.title_zh, ew_dest.title_en) as dest_warehouse_name, ",
"eoi.unit, ",
"eoi.volume, ",
"eoi.warehouse_in_info, ",
"eoi.weight,",
"eoi.charge_weight, ",
"eoi.charge_volume, ",
"eoi.charge_quantity, ",
"eoi.material,",
"eoi.sea_freight_volume, ",
"eoi.clearance_freight_volume, ",
"IF(#{query.lang} = 0, pd.title_zh, pd.title_en) as brand_name, ",
"ewl.dest_warehouse_id, ",
// "IFNULL((select a.pkg_id from ecw_box_pkg_order a where a.deleted=0 and a.order_item_id=ebpg.order_item_id limit 1),0) as pkgId, ",
// "(select t1.pkg_num from ecw_box_pkg_order t INNER JOIN ecw_box_merge_pkg t1 on t.pkg_id=t1.id where t.deleted=0 and t1.deleted=0 and t.order_id=ebpg.order_id limit 1) as pkgNum, ",
"(select count(0) from ecw_order_guanlian t LEFT JOIN ecw_order t1 on t.order_id=t1.order_id LEFT JOIN ecw_order t2 on t.relate_order_id=t2.order_id where (t.order_id=3398 or t.relate_order_id = 3398) and t1.deleted=0 and t2.deleted=0 and t.deleted=0 ) as guanLianOrderCount ",
// "FROM ecw_box_preload_goods ebpg ",
// "INNER JOIN ecw_box_preload_section ebps ON ebpg.sec_id = ebps.id ",
// "INNER JOIN ecw_order eo ON eo.order_id = ebpg.order_id ",
"FROM ecw_order eo ",
// "INNER JOIN ecw_order_item eoi ON ebpg.order_item_id = eoi.order_item_id ",
"INNER JOIN ecw_order_item eoi ON eoi.order_id = eo.order_id ",
"INNER JOIN ecw_warehouse_line ewl ON eo.line_id = ewl.id ",
"INNER JOIN ecw_warehouse ew_start ON ewl.start_warehouse_id = ew_start.id ",
"INNER JOIN ecw_warehouse ew_dest ON ewl.dest_warehouse_id = ew_dest.id ",
"LEFT JOIN ecw_product_brank pd on eoi.brand = pd.id ",
"WHERE eo.deleted=0 ",
"and eoi.deleted=0 ",
"<when test = 'query.rucangTimeStart != null'>",
"AND eo.`rucang_time` &gt;= #{query.rucangTimeStart}",
"</when>",
"<when test = 'query.rucangTimeEnd != null'>",
"AND eo.`rucang_time` &lt;= #{query.rucangTimeEnd}",
"</when>",
"<when test = 'query.productRecord != null'>",
"AND eo.`product_record` = #{query.productRecord}",
"</when>",
"<when test = 'query.orderId != null'>",
"AND eo.`order_id` = #{query.orderId}",
"</when>",
"<when test = 'query.orderIdList != null and query.orderIdList.size() > 0'>",
"AND eo.`order_id` in ",
"<foreach item='id' index='index' collection='query.orderIdList' open='(' separator=',' close=')'>#{id}</foreach>",
"</when>",
"<when test = 'query.orderNo != null and query.orderNo != \"\" '>",
"AND eo.`order_no` like concat('%',concat(#{query.orderNo},'%'))",
"</when>",
"<when test = 'query.customsType != null '>",
"AND eo.`customs_type` = #{query.customsType}",
"</when>",
"<when test = 'query.weightRatioMin != null '>",
"AND eo.`weight_ratio` &gt;= #{query.weightRatioMin}",
"</when>",
"<when test = 'query.weightRatioMax != null '>",
"AND eo.`weight_ratio` &lt;= #{query.weightRatioMax} ",
"</when>",
"<when test = 'query.startWarehouseId != null'>",
"AND ewl.`start_warehouse_id` = #{query.startWarehouseId}",
"</when>",
"<when test = 'query.destWarehouseIdList != null and query.destWarehouseIdList.size() > 0'>",
"AND ewl.`dest_warehouse_id` in ",
"<foreach item='id' index='index' collection='query.destWarehouseIdList' open='(' separator=',' close=')'>#{id}</foreach>",
"</when>",
"<when test = 'query.itemName != null and query.itemName != \"\" '>",
"AND (eoi.`prod_title_zh` like concat('%',concat(#{query.itemName},'%')) or eoi.`prod_title_en` like concat('%',concat(#{query.itemName},'%')) )",
"</when>",
// "<when test = 'query.shipmentIdList != null and query.shipmentIdList.size() > 0'>",
// "AND ebpg.`shipment_id` in ",
// "<foreach item='id' index='index' collection='query.shipmentIdList' open='(' separator=',' close=')'>#{id}</foreach>",
// "</when>",
//
// "order by ebpg.create_time",
"order by eo.order_id desc",
"</script>"
})
List<BoxPreloadGoodsBackVO> getGuanLianGoodItemList(@Param("query") PreloadedReq query);
@Select("SELECT GROUP_CONCAT(DISTINCT customs_type) customs_type from ecw_order eo where EXISTS (SELECT order_id from ecw_box_preload_goods ebpg where shipment_id=#{shipmentId} and deleted=0 and is_remove=0 and eo.order_id=ebpg.order_id)") @Select("SELECT GROUP_CONCAT(DISTINCT customs_type) customs_type from ecw_order eo where EXISTS (SELECT order_id from ecw_box_preload_goods ebpg where shipment_id=#{shipmentId} and deleted=0 and is_remove=0 and eo.order_id=ebpg.order_id)")
Map<String, String> getShipmentCustomTypes(@Param("shipmentId") Long shipmentId); Map<String, String> getShipmentCustomTypes(@Param("shipmentId") Long shipmentId);
......
...@@ -32,6 +32,7 @@ import cn.iocoder.yudao.module.shipment.vo.boxPreloadGoods.BoxLoadOrderVO; ...@@ -32,6 +32,7 @@ import cn.iocoder.yudao.module.shipment.vo.boxPreloadGoods.BoxLoadOrderVO;
import cn.iocoder.yudao.module.shipment.vo.boxPreloadGoods.BoxPreloadGoodsBackVO; import cn.iocoder.yudao.module.shipment.vo.boxPreloadGoods.BoxPreloadGoodsBackVO;
import cn.iocoder.yudao.module.shipment.vo.boxPreloadSection.BoxLoadDetailBackVO; import cn.iocoder.yudao.module.shipment.vo.boxPreloadSection.BoxLoadDetailBackVO;
import cn.iocoder.yudao.module.shipment.vo.boxPreloadSection.BoxLoadSectionBackVO; import cn.iocoder.yudao.module.shipment.vo.boxPreloadSection.BoxLoadSectionBackVO;
import cn.iocoder.yudao.module.shipment.vo.boxTally.BoxGuanlianOrderBackVO;
import cn.iocoder.yudao.module.shipment.vo.boxTally.BoxOrderLocationUpdateReq; import cn.iocoder.yudao.module.shipment.vo.boxTally.BoxOrderLocationUpdateReq;
import cn.iocoder.yudao.module.shipment.vo.boxTally.BoxTallyBackVO; import cn.iocoder.yudao.module.shipment.vo.boxTally.BoxTallyBackVO;
import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum; import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum;
...@@ -253,6 +254,13 @@ public interface BoxService extends IService<BoxDO> { ...@@ -253,6 +254,13 @@ public interface BoxService extends IService<BoxDO> {
*/ */
List<BoxTallyBackVO> tallyList(Long shipmentId); List<BoxTallyBackVO> tallyList(Long shipmentId);
/**
* 理货列表页面,点击关联单(传订单号),获取跟理货列表展示订单信息一样的列
* @param orderId
* @return
*/
List<BoxGuanlianOrderBackVO> getGuanLianOrderList(Long orderId);
/** /**
* 批量修改储位 * 批量修改储位
......
...@@ -56,6 +56,7 @@ import cn.iocoder.yudao.module.order.dal.dataobject.order.zTest; ...@@ -56,6 +56,7 @@ import cn.iocoder.yudao.module.order.dal.dataobject.order.zTest;
import cn.iocoder.yudao.module.order.dal.dataobject.orderCargoControl.OrderCargoControlDO; import cn.iocoder.yudao.module.order.dal.dataobject.orderCargoControl.OrderCargoControlDO;
import cn.iocoder.yudao.module.order.dal.dataobject.orderConsignee.OrderConsigneeDO; import cn.iocoder.yudao.module.order.dal.dataobject.orderConsignee.OrderConsigneeDO;
import cn.iocoder.yudao.module.order.dal.dataobject.orderConsignor.OrderConsignorDO; import cn.iocoder.yudao.module.order.dal.dataobject.orderConsignor.OrderConsignorDO;
import cn.iocoder.yudao.module.order.dal.dataobject.orderGuanlian.OrderGuanlianDO;
import cn.iocoder.yudao.module.order.dal.dataobject.orderItem.OrderItemDO; import cn.iocoder.yudao.module.order.dal.dataobject.orderItem.OrderItemDO;
import cn.iocoder.yudao.module.order.dal.dataobject.orderLocation.OrderLocationDO; import cn.iocoder.yudao.module.order.dal.dataobject.orderLocation.OrderLocationDO;
import cn.iocoder.yudao.module.order.dal.dataobject.orderSplit.OrderSplitDO; import cn.iocoder.yudao.module.order.dal.dataobject.orderSplit.OrderSplitDO;
...@@ -182,6 +183,7 @@ import cn.iocoder.yudao.module.shipment.vo.boxSettlement.BoxSettlementBackVO; ...@@ -182,6 +183,7 @@ import cn.iocoder.yudao.module.shipment.vo.boxSettlement.BoxSettlementBackVO;
import cn.iocoder.yudao.module.shipment.vo.boxShipConfig.BoxShipConfigBackVO; import cn.iocoder.yudao.module.shipment.vo.boxShipConfig.BoxShipConfigBackVO;
import cn.iocoder.yudao.module.shipment.vo.boxShipping.BoxShippingBackVO; import cn.iocoder.yudao.module.shipment.vo.boxShipping.BoxShippingBackVO;
import cn.iocoder.yudao.module.shipment.vo.boxTakeoff.BoxTakeoffBackVO; import cn.iocoder.yudao.module.shipment.vo.boxTakeoff.BoxTakeoffBackVO;
import cn.iocoder.yudao.module.shipment.vo.boxTally.BoxGuanlianOrderBackVO;
import cn.iocoder.yudao.module.shipment.vo.boxTally.BoxOrderLocationUpdateReq; import cn.iocoder.yudao.module.shipment.vo.boxTally.BoxOrderLocationUpdateReq;
import cn.iocoder.yudao.module.shipment.vo.boxTally.BoxTallyBackVO; import cn.iocoder.yudao.module.shipment.vo.boxTally.BoxTallyBackVO;
import cn.iocoder.yudao.module.shipment.vo.boxTally.BoxTallyVO; import cn.iocoder.yudao.module.shipment.vo.boxTally.BoxTallyVO;
...@@ -280,6 +282,9 @@ public class BoxServiceImpl extends AbstractService<BoxMapper, BoxDO> implements ...@@ -280,6 +282,9 @@ public class BoxServiceImpl extends AbstractService<BoxMapper, BoxDO> implements
@Lazy @Lazy
private BoxPreloadGoodsService boxPreloadGoodsService; private BoxPreloadGoodsService boxPreloadGoodsService;
@Resource
private OrderGuanlianService orderGuanlianService;
@Resource @Resource
private BoxAirShipmentService boxAirShipmentService; private BoxAirShipmentService boxAirShipmentService;
...@@ -2187,6 +2192,11 @@ public class BoxServiceImpl extends AbstractService<BoxMapper, BoxDO> implements ...@@ -2187,6 +2192,11 @@ public class BoxServiceImpl extends AbstractService<BoxMapper, BoxDO> implements
boxTallyBackVO.setMultiSpecification(getMultiSpecification(orderGoodsItemList)); boxTallyBackVO.setMultiSpecification(getMultiSpecification(orderGoodsItemList));
boxTallyBackVO.setTidanNum(boxPreloadGoodsDO.getTidanNum()); boxTallyBackVO.setTidanNum(boxPreloadGoodsDO.getTidanNum());
boxTallyBackVO.setNum(orderDO.getSumNum()); boxTallyBackVO.setNum(orderDO.getSumNum());
// 设置混箱状态
Integer mixStatus = orderGoodsItemList.stream().anyMatch(t -> t.getMixStatus() == 1) ? 1 : 0;
boxTallyBackVO.setMixStatus(mixStatus);
// 设置报关方式
boxTallyBackVO.setCustomsType(boxPreloadGoodsDO.getCustomsType());
Long installNum = boxOrderCheckInfoService.selectCount(new LambdaQueryWrapperX<BoxOrderCheckInfoDO>() Long installNum = boxOrderCheckInfoService.selectCount(new LambdaQueryWrapperX<BoxOrderCheckInfoDO>()
.eq(BoxOrderCheckInfoDO::getShipmentId, shipmentId) .eq(BoxOrderCheckInfoDO::getShipmentId, shipmentId)
...@@ -2218,6 +2228,82 @@ public class BoxServiceImpl extends AbstractService<BoxMapper, BoxDO> implements ...@@ -2218,6 +2228,82 @@ public class BoxServiceImpl extends AbstractService<BoxMapper, BoxDO> implements
return boxTallyBackVOS; return boxTallyBackVOS;
} }
@Override
public List<BoxGuanlianOrderBackVO> getGuanLianOrderList(Long orderId) {
List<BoxGuanlianOrderBackVO> boxGuanlianBackVOS = new ArrayList<>();
// 通过orderId查询关联订单
List<OrderGuanlianDO> guanlianList = orderGuanlianService.getGuanlianListByOrderId(orderId);
if (CollectionUtils.isEmpty(guanlianList)) {
return boxGuanlianBackVOS;
}
List<Long> orderIdList1 = guanlianList.stream().map(OrderGuanlianDO::getOrderId).collect(Collectors.toList());
List<Long> orderIdList2 = guanlianList.stream().map(OrderGuanlianDO::getRelateOrderId).collect(Collectors.toList());
// 合并
orderIdList1.addAll(orderIdList2);
// 去除orderId
orderIdList1.remove(orderId);
// 去重
orderIdList1 = orderIdList1.stream().distinct().collect(Collectors.toList());
// 根据orderIdLists查询关联订单
List<BoxPreloadGoodsBackVO> goodsItemList = boxPreloadGoodsService.getGuanLianGoodItemList(orderIdList1);
//以订单ID分组
Map<Long, List<BoxPreloadGoodsBackVO>> orderMap = goodsItemList.stream()
.collect(Collectors.groupingBy(BoxPreloadGoodsBackVO::getOrderId));
// 查询所有库区库域信息
List<WarehouseAreaDO> areaList = warehouseAreaService.list(new LambdaQueryWrapper<>());
List<WarehouseAreaPositionDO> positionList = warehouseAreaPositionService.list(new LambdaQueryWrapper<>());
for (Map.Entry<Long, List<BoxPreloadGoodsBackVO>> entry : orderMap.entrySet()) {
Long orderIdTmp = entry.getKey();
OrderDO orderDO = orderService.selectOne(OrderDO::getOrderId, orderIdTmp);
List<BoxPreloadGoodsBackVO> orderGoodsItemList = entry.getValue();
BoxGuanlianOrderBackVO boxGuanlianOrderBackVO = new BoxGuanlianOrderBackVO();
BoxPreloadGoodsBackVO boxPreloadGoodsDO = orderGoodsItemList.get(0);
boxGuanlianOrderBackVO.setAdvanceType(boxPreloadGoodsDO.getAdvanceType());
boxGuanlianOrderBackVO.setOrderId(boxPreloadGoodsDO.getOrderId());
boxGuanlianOrderBackVO.setId(boxPreloadGoodsDO.getOrderId());
boxGuanlianOrderBackVO.setOrderNo(boxPreloadGoodsDO.getOrderNo());
boxGuanlianOrderBackVO.setOrderItemList(orderGoodsItemList);
boxGuanlianOrderBackVO.setMultiSpecification(getMultiSpecification(orderGoodsItemList));
boxGuanlianOrderBackVO.setTidanNum(boxPreloadGoodsDO.getTidanNum());
boxGuanlianOrderBackVO.setNum(orderDO.getSumNum());
// 设置混箱状态
Integer mixStatus = orderGoodsItemList.stream().anyMatch(t -> t.getMixStatus() == 1) ? 1 : 0;
boxGuanlianOrderBackVO.setMixStatus(mixStatus);
// 设置报关方式
boxGuanlianOrderBackVO.setCustomsType(boxPreloadGoodsDO.getCustomsType());
// Long installNum = boxOrderCheckInfoService.selectCount(new LambdaQueryWrapperX<BoxOrderCheckInfoDO>()
// .eq(BoxOrderCheckInfoDO::getShipmentId, shipmentId)
// .eq(BoxOrderCheckInfoDO::getOrderId, orderIdTmp)
// .eq(BoxOrderCheckInfoDO::getType, 0)
// );
// boxGuanlianOrderBackVO.setInstallNum(installNum == null ? 0 : installNum.intValue());
//设置储位
List<OrderLocationDO> orderLocationList = orderLocationService.getOrderLocationListByOrderId(orderIdTmp);
for (BoxPreloadGoodsBackVO itemVO : orderGoodsItemList) {
matchItemLocation(areaList, positionList, orderLocationList, itemVO);
}
String positionNo = matchLocation(areaList, positionList, orderLocationList);
boxGuanlianOrderBackVO.setPositionNo(positionNo);
boxGuanlianBackVOS.add(boxGuanlianOrderBackVO);
}
boxGuanlianBackVOS.sort(Comparator.comparing(BoxGuanlianOrderBackVO::getOrderId));
return boxGuanlianBackVOS;
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void updateTallyStatus(Long shipmentId, Collection<Long> orderIdList) { public void updateTallyStatus(Long shipmentId, Collection<Long> orderIdList) {
......
...@@ -175,6 +175,13 @@ public interface BoxPreloadGoodsService extends IService<BoxPreloadGoodsDO> { ...@@ -175,6 +175,13 @@ public interface BoxPreloadGoodsService extends IService<BoxPreloadGoodsDO> {
*/ */
List<BoxPreloadGoodsBackVO> getShipGoodItemList(Long shipmentId); List<BoxPreloadGoodsBackVO> getShipGoodItemList(Long shipmentId);
/**
* 根据订单号获取同装柜商品项一样的信息
* @param orderIdList
* @return
*/
List<BoxPreloadGoodsBackVO> getGuanLianGoodItemList(List<Long> orderIdList);
/** /**
* 把订单从预装单中移出 * 把订单从预装单中移出
* @param shipmentId 出货单ID * @param shipmentId 出货单ID
......
...@@ -3060,6 +3060,14 @@ public class BoxPreloadGoodsServiceImpl extends AbstractService<BoxPreloadGoodsM ...@@ -3060,6 +3060,14 @@ public class BoxPreloadGoodsServiceImpl extends AbstractService<BoxPreloadGoodsM
return boxPreloadGoodsMapper.orderPreloaded(query); return boxPreloadGoodsMapper.orderPreloaded(query);
} }
@Override
public List<BoxPreloadGoodsBackVO> getGuanLianGoodItemList(List<Long> orderIdList) {
PreloadedReq query = new PreloadedReq();
query.setOrderIdList(orderIdList);
query.setLang(I18nMessage.getLang());
return boxPreloadGoodsMapper.getGuanLianGoodItemList(query);
}
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void remove(Long shipmentId, Collection<Long> orderIdList, Integer deleteType, boolean hasExit) { public void remove(Long shipmentId, Collection<Long> orderIdList, Integer deleteType, boolean hasExit) {
......
...@@ -151,9 +151,12 @@ public class BoxPreloadGoodsBackVO { ...@@ -151,9 +151,12 @@ public class BoxPreloadGoodsBackVO {
@ApiModelProperty(value = "件数") @ApiModelProperty(value = "件数")
private Integer num; private Integer num;
@ApiModelProperty(value = "单位") @ApiModelProperty(value = "包装类型(配置的)")
private String unit; private String unit;
@ApiModelProperty(value = "包装类型(入仓汇总的,逗号分隔)")
private String units;
@ApiModelProperty(value = "体积") @ApiModelProperty(value = "体积")
private BigDecimal volume; private BigDecimal volume;
...@@ -228,6 +231,15 @@ public class BoxPreloadGoodsBackVO { ...@@ -228,6 +231,15 @@ public class BoxPreloadGoodsBackVO {
return rucangTime; return rucangTime;
} }
// get units
public String getUnits() {
if(getWarehouseInInfoVO() != null) {
units = getWarehouseInInfoVO().getUnits();
}
return units;
}
public String getBoxGauge() { public String getBoxGauge() {
if(getWarehouseInInfoVO() != null) { if(getWarehouseInInfoVO() != null) {
boxGauge = getWarehouseInInfoVO().getBoxGauge(); boxGauge = getWarehouseInInfoVO().getBoxGauge();
...@@ -306,6 +318,12 @@ public class BoxPreloadGoodsBackVO { ...@@ -306,6 +318,12 @@ public class BoxPreloadGoodsBackVO {
private Integer lang; private Integer lang;
/**
* 关联订单数量
*/
@ApiModelProperty(value = "关联订单数量")
private Long guanLianOrderCount;
public void setGuanLianOrderStatus(String guanLianOrderStatus) { public void setGuanLianOrderStatus(String guanLianOrderStatus) {
this.guanLianOrderStatus = guanLianOrderStatus; this.guanLianOrderStatus = guanLianOrderStatus;
if (StringUtils.isNotBlank(guanLianOrderStatus)) { if (StringUtils.isNotBlank(guanLianOrderStatus)) {
...@@ -438,4 +456,10 @@ public class BoxPreloadGoodsBackVO { ...@@ -438,4 +456,10 @@ public class BoxPreloadGoodsBackVO {
} }
return mixStatus; return mixStatus;
} }
/**
* 货柜自编号
*/
@ApiModelProperty(value = "货柜自编号")
private String containerNumber;
} }
...@@ -72,6 +72,7 @@ public class PreloadedReq { ...@@ -72,6 +72,7 @@ public class PreloadedReq {
private Integer smartInstall; private Integer smartInstall;
private Long orderId; private Long orderId;
private List<Long> orderIdList;
private Integer isDel; private Integer isDel;
} }
package cn.iocoder.yudao.module.shipment.vo.boxTally;
import cn.iocoder.yudao.module.shipment.vo.boxPreloadGoods.BoxPreloadGoodsBackVO;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
* 理货页面关联订单信息 Response VO
* @author wlh
*/
@Data
@ApiModel("管理后台 - 理货页面关联订单信息 Response VO")
public class BoxGuanlianOrderBackVO {
@ExcelProperty("")
@ApiModelProperty(value = "", required = true)
private Long id;
@ExcelProperty("订单ID")
@ApiModelProperty(value = "订单ID")
private Long orderId;
@ApiModelProperty(value = "订单编号")
private String orderNo;
@ApiModelProperty(value = "是否多规格")
private Boolean multiSpecification;
@ApiModelProperty(value = "储位")
private String positionNo;
@ExcelProperty("创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间", required = true)
private Date createTime;
private Integer tidanNum;
@ApiModelProperty(value = "垫付类型(多个):10内陆运输费,20打木架/托,30纸箱打包")
private String advanceType;
@ApiModelProperty(value = "订单商品项")
private List<BoxPreloadGoodsBackVO> orderItemList;
@ApiModelProperty(value = "计划件数")
private Integer num;
@ApiModelProperty(value = "实际件数")
private Integer installNum;
/**
* 报关类别:我司全代:1,自单代报:2,混合报关:3
*/
private Integer customsType;
@ApiModelProperty(value = "混箱状态, 1-混箱")
private Integer mixStatus = 0;
}
...@@ -68,5 +68,14 @@ public class BoxTallyBackVO { ...@@ -68,5 +68,14 @@ public class BoxTallyBackVO {
@ApiModelProperty(value = "实际件数") @ApiModelProperty(value = "实际件数")
private Integer installNum; private Integer installNum;
/**
* 报关类别:我司全代:1,自单代报:2,混合报关:3
*/
private Integer customsType;
@ApiModelProperty(value = "混箱状态, 1-混箱")
private Integer mixStatus = 0;
} }
### tallyList
POST {{baseUrl}}/shipment/box/tallyList?shipmentId=2525
Authorization: Bearer {{token}}
tenant-id: {{adminTenentId}}
Content-Type: application/json
### tallyListGuanlianOrder
POST {{baseUrl}}/shipment/box/tallyListGuanlianOrder?orderId=3400
Authorization: Bearer {{token}}
tenant-id: {{adminTenentId}}
Content-Type: application/json
...@@ -9,6 +9,7 @@ import cn.iocoder.yudao.module.order.vo.order.OrderBackPageVO; ...@@ -9,6 +9,7 @@ import cn.iocoder.yudao.module.order.vo.order.OrderBackPageVO;
import cn.iocoder.yudao.module.order.vo.orderSplit.OrderSplitBackVO; import cn.iocoder.yudao.module.order.vo.orderSplit.OrderSplitBackVO;
import cn.iocoder.yudao.module.shipment.convert.BoxConvert; import cn.iocoder.yudao.module.shipment.convert.BoxConvert;
import cn.iocoder.yudao.module.shipment.dal.dataobject.BoxDO; import cn.iocoder.yudao.module.shipment.dal.dataobject.BoxDO;
import cn.iocoder.yudao.module.shipment.vo.boxTally.BoxGuanlianOrderBackVO;
import cn.iocoder.yudao.module.shipment.vo.boxTally.BoxOrderLocationUpdateReq; import cn.iocoder.yudao.module.shipment.vo.boxTally.BoxOrderLocationUpdateReq;
import cn.iocoder.yudao.module.shipment.vo.boxTally.BoxTallyBackVO; import cn.iocoder.yudao.module.shipment.vo.boxTally.BoxTallyBackVO;
import cn.iocoder.yudao.module.system.api.file.FileMakeApi; import cn.iocoder.yudao.module.system.api.file.FileMakeApi;
...@@ -208,6 +209,13 @@ public class BoxController { ...@@ -208,6 +209,13 @@ public class BoxController {
return success(boxService.tallyList(shipmentId)); return success(boxService.tallyList(shipmentId));
} }
@PostMapping("/tallyListGuanlianOrder")
@ApiImplicitParams({@ApiImplicitParam(name = "orderId", value = "订单id", required = true, example = "1024", dataTypeClass = Long.class)})
@ApiOperation("理货-订单号-查看关联单, use this")
public CommonResult<List<BoxGuanlianOrderBackVO>> tallyListGuanLianOrderList(@RequestParam("orderId") Long orderId) {
return success(boxService.getGuanLianOrderList(orderId));
}
@PostMapping("/batchOrderLocationUpdate") @PostMapping("/batchOrderLocationUpdate")
@ApiOperation("批量修改储位, use this") @ApiOperation("批量修改储位, use this")
public CommonResult<Boolean> batchOrderLocationUpdate(@RequestBody BoxOrderLocationUpdateReq req) { public CommonResult<Boolean> batchOrderLocationUpdate(@RequestBody BoxOrderLocationUpdateReq req) {
......
...@@ -14,6 +14,7 @@ import cn.iocoder.yudao.module.shipment.vo.boxOrderExit.BoxOrderExitCreateReqVO; ...@@ -14,6 +14,7 @@ import cn.iocoder.yudao.module.shipment.vo.boxOrderExit.BoxOrderExitCreateReqVO;
import cn.iocoder.yudao.module.shipment.vo.boxOrderExit.BoxOrderExitUpdateReqVO; import cn.iocoder.yudao.module.shipment.vo.boxOrderExit.BoxOrderExitUpdateReqVO;
import cn.iocoder.yudao.module.shipment.vo.boxPreloadGoods.BoxLoadOrderVO; import cn.iocoder.yudao.module.shipment.vo.boxPreloadGoods.BoxLoadOrderVO;
import cn.iocoder.yudao.module.shipment.vo.boxPreloadSection.BoxLoadSectionBackVO; import cn.iocoder.yudao.module.shipment.vo.boxPreloadSection.BoxLoadSectionBackVO;
import cn.iocoder.yudao.module.shipment.vo.boxTally.BoxGuanlianOrderBackVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
...@@ -103,6 +104,13 @@ public class MyBoxController { ...@@ -103,6 +104,13 @@ public class MyBoxController {
return success(boxService.pdaTallyList(shipmentId)); return success(boxService.pdaTallyList(shipmentId));
} }
@PostMapping("/tallyListGuanlianOrder")
@ApiImplicitParams({@ApiImplicitParam(name = "orderId", value = "订单id", required = true, example = "1024", dataTypeClass = Long.class)})
@ApiOperation("理货-订单号-查看关联单, use this")
public CommonResult<List<BoxGuanlianOrderBackVO>> tallyListGuanLianOrderList(@RequestParam("orderId") Long orderId) {
return success(boxService.getGuanLianOrderList(orderId));
}
@GetMapping("/cabinetExitDetail") @GetMapping("/cabinetExitDetail")
@ApiImplicitParam(name = "shipmentId", value = "ID", required = true, example = "1", dataTypeClass = Long.class) @ApiImplicitParam(name = "shipmentId", value = "ID", required = true, example = "1", dataTypeClass = Long.class)
@ApiOperation("获得退场详情") @ApiOperation("获得退场详情")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment