Browse Source

1.修复商配在库订单包件所在库位,托盘展示bug

2.增加包件移托功能
training
zhenghaoyu 2 years ago
parent
commit
6f9ac30706
  1. 8
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionParcelListVO.java
  2. 1
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/ParcelListVO.java
  3. 4
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseTrayGoodsVO.java
  4. 10
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java
  5. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java
  6. 10
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml
  7. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java
  8. 5
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java
  9. 24
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/wrapper/DistributionParcelListWrapper.java
  10. 88
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseTrayTypeApiController.java
  11. 3
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/TrayTypeDTO.java
  12. 10
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseTrayGoodsMapper.xml
  13. 5
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseTrayTypeMapper.xml
  14. 5
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseTrayTypeService.java
  15. 198
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java
  16. 18
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownTypeServiceImpl.java

8
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionParcelListVO.java

@ -16,10 +16,7 @@
*/
package com.logpm.distribution.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import io.swagger.annotations.ApiModelProperty;
import org.springblade.core.tool.node.INode;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -74,6 +71,11 @@ public class DistributionParcelListVO extends DistributionParcelListEntity {
*/
private String allocationMsg;
/**
* 包件托盘信息
*/
private String trayMsg;
/**
* 装车操作人
*/

1
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/ParcelListVO.java

@ -9,6 +9,7 @@ public class ParcelListVO implements Serializable {
private String orderPackageCode;//包条码
private String materialName;//物料名称
private String materialCode;//物料编码
private String pinming;//品名
private Long trayGoodsId;//
private Long trayId;//

4
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseTrayGoodsVO.java

@ -8,6 +8,8 @@ import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
public class WarehouseTrayGoodsVO extends WarehouseTrayGoodsEntity {
private String orderCode;
private String materialName;
private String materialCode;
}

10
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java

@ -90,11 +90,11 @@ public class DistributionParcelListClient implements IDistributionParcelListClie
@Override
public List<DistributionParcelListEntity> findALLNoUpShelfPackageByOrderCode(String orderCode) {
QueryWrapper<DistributionParcelListEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("order_code",orderCode)
.eq("is_deleted",0)
.eq("order_package_grounding_status",10);
return distributionParcelListService.list(queryWrapper);
// QueryWrapper<DistributionParcelListEntity> queryWrapper = new QueryWrapper<>();
// queryWrapper.eq("order_code",orderCode)
// .eq("is_deleted",0)
// .eq("order_package_grounding_status",10);
return distributionParcelListService.findALLNoUpShelfPackageByOrderCode(orderCode);
}
@Override

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java

@ -87,4 +87,6 @@ public interface DistributionParcelListMapper extends BaseMapper<DistributionPar
* @return
*/
List<PackageStockupVO> selectOrderInfoSelfList(@Param("reservationId") Long reservationId,@Param("stockupId") Long stockupId, @Param("stockArticleId")Long stockArticleId);
List<DistributionParcelListEntity> findALLNoUpShelfPackageByOrderCode(@Param("orderCode") String orderCode);
}

10
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml

@ -289,5 +289,15 @@
where order_code = #{orderCode}
</update>
<select id="findALLNoUpShelfPackageByOrderCode" resultType="com.logpm.distribution.entity.DistributionParcelListEntity">
select ldpl.*
from logpm_distribution_parcel_list ldpl
left join logpm_warehouse_tray_goods lwtg on lwtg.association_value = ldpl.order_package_code
left join logpm_warehouse_updown_goods lwug on lwug.association_value = ldpl.order_package_code
where 1=1
and ldpl.order_code = #{orderCode}
and lwtg.id is null
and lwug.id is null
</select>
</mapper>

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java

@ -97,4 +97,6 @@ public interface IDistributionParcelListService extends BaseService<Distribution
* @return
*/
List<PackageStockupVO> selectOrderInfoSelfList(Long reservationId, Long stockArticleId, Long stockupId, Long trayId);
List<DistributionParcelListEntity> findALLNoUpShelfPackageByOrderCode(String orderCode);
}

5
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java

@ -182,6 +182,11 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl<Distribut
return baseMapper.selectOrderInfoSelfList(reservationId,stockupId,stockArticleId);
}
@Override
public List<DistributionParcelListEntity> findALLNoUpShelfPackageByOrderCode(String orderCode) {
return baseMapper.findALLNoUpShelfPackageByOrderCode(orderCode);
}
/**
*
* @param distributionParcelList

24
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/wrapper/DistributionParcelListWrapper.java

@ -2,18 +2,15 @@ package com.logpm.distribution.wrapper;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.vo.DistributionParcelListVO;
import com.logpm.warehouse.feign.IWarehouseTrayGoodsClient;
import com.logpm.warehouse.feign.IWarehouseUpdownGoodsClient;
import lombok.AllArgsConstructor;
import org.springblade.common.constant.DictBizConstant;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.system.cache.DictBizCache;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
/**
@ -25,8 +22,8 @@ import java.util.Objects;
public class DistributionParcelListWrapper extends BaseEntityWrapper<DistributionParcelListEntity, DistributionParcelListVO> {
@Autowired
private IWarehouseUpdownGoodsClient warehouseUpdownGoodsClient;
// @Autowired
// private IWarehouseUpdownGoodsClient warehouseUpdownGoodsClient;
public static DistributionParcelListWrapper build(){
return new DistributionParcelListWrapper();
@ -34,6 +31,8 @@ public class DistributionParcelListWrapper extends BaseEntityWrapper<Distributio
@Override
public DistributionParcelListVO entityVO(DistributionParcelListEntity entity) {
IWarehouseUpdownGoodsClient warehouseUpdownGoodsClient = SpringUtil.getBean(IWarehouseUpdownGoodsClient.class);
IWarehouseTrayGoodsClient warehouseTrayGoodsClient = SpringUtil.getBean(IWarehouseTrayGoodsClient.class);
DistributionParcelListVO parcelListVO = Objects.requireNonNull(BeanUtil.copy(entity,DistributionParcelListVO.class));
parcelListVO.setOrderPackageStatusName(DictBizCache.getValue(DictBizConstant.ORDER_PACKAGE_STATUS, entity.getOrderPackageStatus()));
@ -43,16 +42,23 @@ public class DistributionParcelListWrapper extends BaseEntityWrapper<Distributio
parcelListVO.setOrderPackageReservationStatusName(DictBizCache.getValue(DictBizConstant.ORDER_PACKAGE_RESERVATION_STATUS, entity.getOrderPackageReservationStatus()));
parcelListVO.setOrderPackageLoadingStatusName(DictBizCache.getValue(DictBizConstant.ORDER_PACKAGE_LOADING_STATUS, entity.getOrderPackageLoadingStatus()));
//如果有上架选择填充货位信息
if (Func.isNotBlank(parcelListVO.getOrderPackageGroundingStatus())){
if (parcelListVO.getOrderPackageGroundingStatus().equals("20")){
// if (Func.isNotBlank(parcelListVO.getOrderPackageGroundingStatus())){
// if (parcelListVO.getOrderPackageGroundingStatus().equals("20")){
if (Func.isNotEmpty(warehouseUpdownGoodsClient)){
String s = warehouseUpdownGoodsClient.selectMsgBywrap(parcelListVO.getId());
if (Func.isNotEmpty(s)){
parcelListVO.setAllocationMsg(s);
}
}
// }
// }
if(Func.isNotEmpty(warehouseTrayGoodsClient)){
String s = warehouseUpdownGoodsClient.selectMsgBywrap(parcelListVO.getId());
if (Func.isNotEmpty(s)){
parcelListVO.setTrayMsg(s);
}
}
// parcelListVO.setOrderPackageReservationStatusName(DictBizCache.getValue(DictBizConstant.ORDER_PACKAGE_FREEZE_STATUS, entity.getOrderPackageReservationStatus()));
return parcelListVO;
}

88
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseTrayTypeApiController.java

@ -898,4 +898,92 @@ public class WarehouseTrayTypeApiController {
}
}
//--------------------------移托---------------------------
@ResponseBody
@PostMapping("/moveTrayScanTrayCode")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "移托扫描托盘", notes = "传入trayTypeDTO")
public R moveTrayScanTrayCode(@RequestBody TrayTypeDTO trayTypeDTO) {
String method = "###########moveTrayScanTrayCode: ";
log.info(method + "移托扫描托盘 trayTypeDTO={}", trayTypeDTO);
String trayCode = trayTypeDTO.getTrayCode();
try{
if(!StringUtil.hasLength(trayCode)){
log.warn(method+"托盘码不能为空 trayCode={}",trayCode);
return R.fail(403,"托盘码不能为空");
}
return warehouseTrayTypeService.moveTrayScanTrayCode(trayCode);
}catch (CustomerException e){
log.warn(e.message);
return R.fail(e.code,e.message);
}catch (Exception e){
log.error(method+"系统异常,联系管理员",e);
return R.fail(500,"系统异常,联系管理员");
}
}
@ResponseBody
@PostMapping("/moveTrayScanPackage")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "移托扫描包件", notes = "传入trayTypeDTO")
public R moveTrayScanPackage(@RequestBody TrayTypeDTO trayTypeDTO) {
String method = "###########moveTrayScanPackage: ";
log.info(method + "移托扫描包件 trayTypeDTO={}", trayTypeDTO);
String orderPackageCode = trayTypeDTO.getOrderPackageCode();
try{
if(!StringUtil.hasLength(orderPackageCode)){
log.warn(method+"包件码不能为空 orderPackageCode={}",orderPackageCode);
return R.fail(403,"包件码不能为空");
}
return warehouseTrayTypeService.moveTrayScanPackage(orderPackageCode);
}catch (CustomerException e){
log.warn(e.message);
return R.fail(e.code,e.message);
}catch (Exception e){
log.error(method+"系统异常,联系管理员",e);
return R.fail(500,"系统异常,联系管理员");
}
}
@ResponseBody
@PostMapping("/moveTrayPackages")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "移托扫描包件", notes = "传入trayTypeDTO")
public R moveTrayPackages(@RequestBody TrayTypeDTO trayTypeDTO) {
String method = "###########moveTrayPackages: ";
log.info(method + "移托包件 trayTypeDTO={}", trayTypeDTO);
List<Long> trayGoodsIds = trayTypeDTO.getTrayGoodsIds();
String trayCode = trayTypeDTO.getTrayCode();
try{
int size = trayGoodsIds.size();
if(size == 0){
log.warn(method+"移托数据不能为空 trayGoodsIds={}",trayGoodsIds);
return R.fail(403,"移托数据不能为空");
}
if(StringUtil.isBlank(trayCode)){
log.warn(method+"托盘码不能为空 trayCode={}",trayCode);
return R.fail(403,"托盘码不能为空");
}
return warehouseTrayTypeService.moveTrayPackages(trayGoodsIds,trayCode);
}catch (CustomerException e){
log.warn(e.message);
return R.fail(e.code,e.message);
}catch (Exception e){
log.error(method+"系统异常,联系管理员",e);
return R.fail(500,"系统异常,联系管理员");
}
}
}

3
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/TrayTypeDTO.java

@ -53,4 +53,7 @@ public class TrayTypeDTO implements Serializable {
private String sourceTrayCode;
private String targetTrayCode;
private List<Long> trayGoodsIds = new ArrayList<>();
}

10
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseTrayGoodsMapper.xml

@ -6,7 +6,8 @@
select ldsa.id dataId,
ldsa.order_code dataCode,
sum(lwtg.num) scanNum,
MAX(ldsa.total_number) orderTotalNum
MAX(ldsa.total_number) orderTotalNum,
max(IF(lwtg.is_fleeing='1', 1, 0)) isFleeing
from logpm_warehouse_tray_goods lwtg
left join logpm_distribution_parcel_list ldpl on ldpl.id = lwtg.association_id and ldpl.is_deleted = 0
left join logpm_distribution_stock_article ldsa on ldsa.id = ldpl.stock_article_id and ldsa.is_deleted = 0
@ -49,7 +50,8 @@
ldsa.id dataId,
ldsa.order_code dataCode,
lwtg.num scanNum,
ldsa.total_number orderTotalNum
ldsa.total_number orderTotalNum,
lwtg.is_fleeing isFleeing
from logpm_warehouse_tray_goods lwtg
left join logpm_distribution_stock_article ldsa on ldsa.id = lwtg.association_id and ldsa.is_zero = 1 and ldsa.is_deleted = 0
where lwtg.is_deleted = 0
@ -82,7 +84,8 @@
ldsl.cargo_unit cargoUnit,
lwtg.num scanNum,
lwtg.incoming_batch incomingBatch,
ldsl.quantity_stock orderTotalNum
ldsl.quantity_stock orderTotalNum,
lwtg.is_fleeing isFleeing
from logpm_warehouse_tray_goods lwtg
left join logpm_warehouse_tray_type lwtt on lwtt.id = lwtg.tray_type_id and lwtt.is_deleted = 0
left join logpm_basicdata_material lbm on lwtg.association_id = lbm.id and lbm.is_deleted = 0
@ -218,6 +221,7 @@
<select id="findAllPackageDetailByOrderCode" resultType="com.logpm.warehouse.vo.ParcelListVO">
select ldpl.order_package_code orderPackageCode,
ldpl.material_name materialName,
ldpl.material_code materialCode,
CONCAT(ldpl.firsts,'-',ldpl.`second`,'-',ldpl.third_product) pinming,
lwtg.id trayGoodsId,
lwt.id trayId,

5
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseTrayTypeMapper.xml

@ -2,9 +2,10 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.logpm.warehouse.mapper.WarehouseTrayTypeMapper">
<select id="orderPageList" resultType="com.logpm.warehouse.entity.WarehouseTrayTypeEntity">
select *
<select id="orderPageList" resultType="com.logpm.warehouse.vo.WarehouseTrayTypeVO">
select lwtt.*
from logpm_warehouse_tray_type lwtt
left join logpm_warehouse_tary_allocation lwta on lwtt.tray_id = lwta.tray_id and lwta.is_deleted = 0
where 1=1
and lwtt.type = #{param.type}
and lwtt.is_deleted = 0

5
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseTrayTypeService.java

@ -74,4 +74,9 @@ public interface IWarehouseTrayTypeService extends BaseService<WarehouseTrayType
R scanTargetTrayCode(String targetTrayCode);
R moveTrayScanTrayCode(String trayCode);
R moveTrayScanPackage(String orderPackageCode);
R moveTrayPackages(List<Long> trayGoodsIds,String trayCode);
}

198
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java

@ -172,6 +172,10 @@ public class WarehouseTrayTypeServiceImpl extends BaseServiceImpl<WarehouseTrayT
QueryWrapper<WarehouseTrayGoodsEntity> qw = new QueryWrapper<>();
qw.eq("association_value",orderPackageCode);
WarehouseTrayGoodsEntity trayGoodsEntity = warehouseTrayGoodsService.getOne(qw);
if(!Objects.isNull(trayGoodsEntity)){
log.warn("#########orderScanOrderPackageCode: 包件已打托 orderPackageCode={}",orderPackageCode);
throw new CustomerException(403,"包件已打托");
}
QueryWrapper<WarehouseUpdownGoodsEntity> updownGoodsEntityQueryWrapper = new QueryWrapper<>();
updownGoodsEntityQueryWrapper.eq("association_value",orderPackageCode);
@ -228,8 +232,8 @@ public class WarehouseTrayTypeServiceImpl extends BaseServiceImpl<WarehouseTrayT
if(!Objects.isNull(trayGoodsEntity)){
String oldTrayCode = trayGoodsEntity.getTrayCode();
if(oldTrayCode.equals(trayCode)){
log.warn("##############orderScanOrderPackageCode: 该包条打托 trayCode={}",trayCode);
return R.fail(403,"该包条打托");
log.warn("##############orderScanOrderPackageCode: 该包条打托 trayCode={}",trayCode);
return R.fail(403,"该包条打托");
}
//存入包件与托盘绑定关系表
downPackageByOrderPackageCode(orderPackageCode,"扫描分拣:下托");
@ -1591,6 +1595,194 @@ public class WarehouseTrayTypeServiceImpl extends BaseServiceImpl<WarehouseTrayT
}
}
@Override
public R moveTrayScanTrayCode(String trayCode) {
BasicdataTrayEntity basicdataTrayEntity = basicdataTrayClient.getTrayByTrayCode(trayCode);
Integer disableType = basicdataTrayEntity.getDisableType();
if(disableType == 2){
log.warn("###############moveTrayScanTrayCode: 该托盘已被禁用 trayCode={}",trayCode);
throw new CustomerException(403,"该托盘已被禁用");
}
Long trayId = basicdataTrayEntity.getId();
Long allocationId = warehouseTaryAllocationService.getAllocationIdByTrayId(trayId);
if(!Objects.isNull(allocationId)){
log.warn("###############moveTrayScanTrayCode: 托盘已上架 allocationId={}",allocationId);
throw new CustomerException(403,"托盘已上架");
}
TrayTypeDataVO trayTypeDataVO = new TrayTypeDataVO();
//根据托盘编码查询是否有托盘编码存在打托数据
QueryWrapper<WarehouseTrayTypeEntity> queryTrayTypeWrapper = new QueryWrapper<>();
queryTrayTypeWrapper.eq("tray_code",trayCode)
.eq("is_deleted",0);
WarehouseTrayTypeEntity trayTypeEntity = baseMapper.selectOne(queryTrayTypeWrapper);
if(Objects.isNull(trayTypeEntity)){
//没有查询到托盘打托信息
trayTypeDataVO.setTrayCode(trayCode);
trayTypeDataVO.setTrayNum(0);
trayTypeDataVO.setOrderTotalNum(0);
return R.data(trayTypeDataVO);
}
String type = trayTypeEntity.getType();//类型 1扫码分拣(订制品) 2人工分拣(零担) 3库存品
Long trayTypeId = trayTypeEntity.getId();//打托方式id
String trayType = trayTypeEntity.getTrayType();
trayTypeDataVO.setTrayTypeId(trayTypeId);
trayTypeDataVO.setType(type);
trayTypeDataVO.setTrayCode(trayTypeEntity.getTrayCode());
trayTypeDataVO.setTrayNum(trayTypeEntity.getTotalNum());
trayTypeDataVO.setName(trayTypeEntity.getFilterValue());
trayTypeDataVO.setOrderTotalNum(trayTypeEntity.getOrderTotalNum());
trayTypeDataVO.setTrayType(trayType);
trayTypeDataVO.setMarketId(trayTypeEntity.getMarketId());
trayTypeDataVO.setMarketName(trayTypeEntity.getMarketName());
trayTypeDataVO.setReamrk(trayTypeEntity.getRemark());
return R.data(trayTypeDataVO);
}
@Override
public R moveTrayScanPackage(String orderPackageCode) {
QueryWrapper<WarehouseTrayGoodsEntity> trayGoodsEntityQueryWrapper = new QueryWrapper<>();
trayGoodsEntityQueryWrapper.eq("association_value",orderPackageCode);
WarehouseTrayGoodsEntity trayGoodsEntity = warehouseTrayGoodsService.getOne(trayGoodsEntityQueryWrapper);
if(Objects.isNull(trayGoodsEntity)){
log.warn("#################moveTrayScanPackage: 包件未打托 orderPackageCode={}",orderPackageCode);
throw new CustomerException(403,"包件未打托");
}
QueryWrapper<WarehouseUpdownGoodsEntity> updownGoodsEntityQueryWrapper = new QueryWrapper<>();
updownGoodsEntityQueryWrapper.eq("association_value",orderPackageCode);
WarehouseUpdownGoodsEntity updownGoodsEntity = warehouseUpdownGoodsService.getOne(updownGoodsEntityQueryWrapper);
if(!Objects.isNull(updownGoodsEntity)){
log.warn("#################moveTrayScanPackage: 包件已上架 orderPackageCode={}",orderPackageCode);
throw new CustomerException(403,"包件已上架");
}
DistributionParcelListEntity parcelListEntity = distributionParcelListClient.findByPacketBarCode(orderPackageCode);
if(Objects.isNull(parcelListEntity)){
log.warn("#################moveTrayScanPackage: 包件信息不存在 orderPackageCode={}",orderPackageCode);
throw new CustomerException(403,"包件信息不存在");
}
WarehouseTrayGoodsVO trayGoodsVO = new WarehouseTrayGoodsVO();
BeanUtil.copy(trayGoodsEntity,trayGoodsVO);
trayGoodsVO.setOrderCode(parcelListEntity.getOrderCode());
trayGoodsVO.setMaterialCode(parcelListEntity.getMaterialCode());
trayGoodsVO.setMaterialName(parcelListEntity.getMaterialName());
return R.data(trayGoodsVO);
}
@Override
public R moveTrayPackages(List<Long> trayGoodsIds,String trayCode) {
QueryWrapper<WarehouseTrayTypeEntity> trayTypeEntityQueryWrapper = new QueryWrapper<>();
trayTypeEntityQueryWrapper.eq("tray_code",trayCode)
.eq("is_deleted",0);
WarehouseTrayTypeEntity trayTypeEntity = baseMapper.selectOne(trayTypeEntityQueryWrapper);
for (Long trayGoodsId:trayGoodsIds){
WarehouseTrayGoodsEntity trayGoodsEntity = warehouseTrayGoodsService.getById(trayGoodsId);
Long trayTypeId = trayGoodsEntity.getTrayTypeId();
String orderPackageCode = trayGoodsEntity.getAssociationValue();
if(Objects.isNull(trayTypeEntity)){
//如果托盘没有打托方式就以第一件货物的打托方式为准
WarehouseTrayTypeEntity oldTrayType = baseMapper.selectById(trayTypeId);
WarehouseTrayTypeEntity newTrayType = new WarehouseTrayTypeEntity();
BeanUtil.copy(oldTrayType,newTrayType);
newTrayType.setId(null);
newTrayType.setTotalNum(0);
newTrayType.setOrderTotalNum(0);
newTrayType.setStockNum(0);
newTrayType.setStockTotalNum(0);
//保存新的打托方式
save(newTrayType);
trayTypeEntity = newTrayType;
}else{
//如果有打托方式
//则要先判断数据格式是否正确
WarehouseTrayTypeEntity oldTrayType = baseMapper.selectById(trayTypeId);
String type = oldTrayType.getType();
String type1 = trayTypeEntity.getType();
if(!type.equals(type1)){
log.warn("#################moveTrayPackages: 打托数据类型不同 {}={}",type,type1);
continue;
}
}
//下托日志
downPackageByOrderPackageCode(orderPackageCode,"移托:解除绑定");
moveTrayOrderPackageCode(trayTypeEntity, orderPackageCode);
}
return R.success("移托成功");
}
private R moveTrayOrderPackageCode(WarehouseTrayTypeEntity trayTypeEntity, String orderPackageCode) {
DistributionParcelListEntity parcelListEntity = distributionParcelListClient.findByPacketBarCode(orderPackageCode);
if(Objects.isNull(parcelListEntity)){
log.warn("#################moveTrayOrderPackageCode: 包件信息不存在 orderPackageCode={}",orderPackageCode);
return R.fail(403,"包件信息不存在");
}
String orderCode = parcelListEntity.getOrderCode();
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCode(orderCode);
if(Objects.isNull(stockArticleEntity)){
log.warn("#################moveTrayOrderPackageCode: 订单信息不存在 orderCode={}",orderCode);
return R.fail(403,"订单信息不存在");
}
String trayType = trayTypeEntity.getTrayType();
Long filterId = trayTypeEntity.getFilterId();
String filterValue = trayTypeEntity.getFilterValue();
boolean chuanFlag = false;
if("10".equals(trayType)){//服务号
String serviceNumber = stockArticleEntity.getServiceNumber();
if(!filterValue.equals(serviceNumber)){
chuanFlag = true;
}
}else if("20".equals(trayType)){//订单自编号
String oc = stockArticleEntity.getOrderCode();
if(!filterValue.equals(oc)){
chuanFlag = true;
}
}else if("30".equals(trayType)){//商场
Long mallId = stockArticleEntity.getMallId();
if(!filterId.equals(mallId)){
chuanFlag = true;
}
}else if("40".equals(trayType)){//门店
Long storeId = stockArticleEntity.getStoreId();
if(!filterId.equals(storeId)){
chuanFlag = true;
}
}else if("50".equals(trayType)){//客户
String customerName = stockArticleEntity.getCustomerName();
String customerTelephone = stockArticleEntity.getCustomerTelephone();
if(!filterValue.equals(customerName+customerTelephone)){
chuanFlag = true;
}
}else if("60".equals(trayType)){//仓库
Long warehouseId = stockArticleEntity.getWarehouseId();
if(!filterId.equals(warehouseId)){
chuanFlag = true;
}
}
//修改打托方式上的值
// changeTotalNumByTrayTypeId(parcelListEntity,trayTypeEntity.getId(),1);//addSub 1加 2减
if(chuanFlag){
//存入包件与托盘绑定关系表
warehouseTrayGoodsService.saveEntityPackage(parcelListEntity,trayTypeEntity,"1","1","移托:包件移托","1");
}else{
//存入包件与托盘绑定关系表
warehouseTrayGoodsService.saveEntityPackage(parcelListEntity,trayTypeEntity,"0","1","移托:包件移托","1");
}
//添加上拖日志表
// warehouseTrayGoodsLogService.saveLogPackage(parcelListEntity,trayTypeEntity,"1","分拣打托:扫码分拣","1");
//更新打托方式上的值
updateNumByTrayTypeId(trayTypeEntity);
return R.success("操作成功");
}
private void copyTrayGoodsToTargetTray(Long sourceTrayTypeId, WarehouseTrayTypeEntity targetTrayTypeEntity) {
QueryWrapper<WarehouseTrayGoodsEntity> queryWrapper = new QueryWrapper<>();
@ -1832,7 +2024,7 @@ public class WarehouseTrayTypeServiceImpl extends BaseServiceImpl<WarehouseTrayT
WarehouseTrayTypeEntity trayTypeEntity = new WarehouseTrayTypeEntity();
trayTypeEntity.setTrayId(trayId);
trayTypeEntity.setTrayCode(trayCode);
trayTypeEntity.setType(PalletProductTypeConstant.STOCKNODATA);
trayTypeEntity.setType(PalletProductTypeConstant.STOCKDATA);
trayTypeEntity.setTrayType(trayType);
trayTypeEntity.setOrderTotalNum(0);
trayTypeEntity.setTotalNum(0);

18
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownTypeServiceImpl.java

@ -178,6 +178,22 @@ public class WarehouseUpdownTypeServiceImpl extends BaseServiceImpl<WarehouseUpd
// log.warn("#################findUpShelfScanGoods: 包件已上架 code={}",code);
// throw new CustomerException(403,"包件已上架");
// }
//判断包件是否上架或者打托
QueryWrapper<WarehouseUpdownGoodsEntity> updownGoodsEntityQueryWrapper = new QueryWrapper<>();
updownGoodsEntityQueryWrapper.eq("association_value",code);
WarehouseUpdownGoodsEntity updownGoodsEntity = warehouseUpdownGoodsService.getOne(updownGoodsEntityQueryWrapper);
if(Objects.isNull(updownGoodsEntity)){
log.warn("#################findUpShelfScanGoods: 包件已上架 code={}",code);
throw new CustomerException(403,"包件已上架");
}
QueryWrapper<WarehouseTrayGoodsEntity> trayGoodsEntityQueryWrapper = new QueryWrapper<>();
trayGoodsEntityQueryWrapper.eq("association_value",code);
WarehouseTrayGoodsEntity trayGoodsEntity = warehouseTrayGoodsService.getOne(trayGoodsEntityQueryWrapper);
if(Objects.isNull(trayGoodsEntity)){
log.warn("#################findUpShelfScanGoods: 包件已打托 code={}",code);
throw new CustomerException(403,"包件已打托");
}
List<UpShelfDataVO> ls = new ArrayList<>();
UpShelfDataVO dataVO = new UpShelfDataVO();
dataVO.setOrderCode(parcelListEntity.getOrderCode());
@ -479,6 +495,8 @@ public class WarehouseUpdownTypeServiceImpl extends BaseServiceImpl<WarehouseUpd
trayGoodsQueryWrapper.eq("association_value",orderPackageCode);
WarehouseTrayGoodsEntity trayGoodsEntity = warehouseTrayGoodsService.getOne(trayGoodsQueryWrapper);
if(!Objects.isNull(trayGoodsEntity)){
// log.warn("##############upShelfPackage: 包件已打托 orderPackageCode={}",orderPackageCode);
// continue;
//已打托的数据需要取消托盘绑定
warehouseTrayTypeService.downPackageByOrderPackageCode(orderPackageCode,"扫描上架:包件下托");
}

Loading…
Cancel
Save