Browse Source

1.库存品分拣代码提交 未完成

dev-warehouse
zhenghaoyu 2 years ago
parent
commit
9d24ad94f8
  1. 5
      blade-biz-common/src/main/java/org/springblade/common/constant/DictBizConstant.java
  2. 3
      blade-biz-common/src/main/java/org/springblade/common/constant/apiwarehouse/PalletProductTypeConstant.java
  3. 10
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockListClient.java
  4. 17
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/StockMallVO.java
  5. 3
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TrayTypeDataVO.java
  6. 5
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseTrayTypeVO.java
  7. 16
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockListClient.java
  8. 3
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.java
  9. 9
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.xml
  10. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockListService.java
  11. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockListServiceImpl.java
  12. 50
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseTrayTypeApiController.java
  13. 2
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseTrayGoodsMapper.java
  14. 14
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseTrayGoodsMapper.xml
  15. 3
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseTrayGoodsService.java
  16. 1
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseTrayTypeService.java
  17. 5
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayGoodsServiceImpl.java
  18. 246
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java

5
blade-biz-common/src/main/java/org/springblade/common/constant/DictBizConstant.java

@ -51,7 +51,10 @@ public class DictBizConstant {
//---------------2023-08-08 仓库模块
public static final String PALLET_TYPE = "pallet_type";//打托类型 1服务号 2合同号 3商场 4门店 5客户 6仓库 7其他
public static final String PALLET_ORDER_TYPE = "pallet_order_type";//打托类型 1服务号 2合同号 3商场 4门店 5客户 6仓库 7其他
public static final String PALLET_ZERO_TYPE = "pallet_zero_type";//打托类型 1服务号 2合同号 3商场 4门店 5客户 6仓库 7其他
public static final String PALLET_STOCK_TYPE = "pallet_stock_type";//打托类型 1服务号 2合同号 3商场 4门店 5客户 6仓库 7其他
public static final String PALLET_STOCKNODATA_TYPE = "pallet_stocknodata_type";//打托类型 1服务号 2合同号 3商场 4门店 5客户 6仓库 7其他
public static final String PALLET_ARTIFICIAL_TYPE = "pallet_artificial_type";//人工打托类型

3
blade-biz-common/src/main/java/org/springblade/common/constant/apiwarehouse/PalletProductTypeConstant.java

@ -4,6 +4,7 @@ public interface PalletProductTypeConstant {
String CUSTOMIZED = "1";
String ARTIFICIAL = "2";
String INVENTORY = "3";
String STOCKDATA = "3";
String STOCKNODATA = "4";
}

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

@ -18,6 +18,7 @@ package com.logpm.distribution.feign;
import com.logpm.distribution.entity.DistributionStockListEntity;
import com.logpm.distribution.vo.DistributionStockListVO;
import com.logpm.distribution.vo.app.StockMallVO;
import org.springblade.common.constant.ModuleNameConstant;
import org.springblade.core.mp.support.BladePage;
import org.springframework.cloud.openfeign.FeignClient;
@ -26,6 +27,8 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* 库存品管理 Feign接口类
*
@ -75,6 +78,13 @@ public interface IDistributionStockListClient {
@GetMapping(API_PREFIX+"/getStockListById")
DistributionStockListEntity getStockListById(@RequestParam("stockListId") Long stockListId);
@GetMapping(API_PREFIX+"/getStockListByParcelListId")
DistributionStockListEntity getStockListByParcelListId(@RequestParam("parcelListId") Long parcelListId);
@GetMapping(API_PREFIX+"/getAllStockMall")
List<StockMallVO> getAllStockMall();
// /**
// * 修改某个客户信息及物品信息

17
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/StockMallVO.java

@ -0,0 +1,17 @@
package com.logpm.distribution.vo.app;
import lombok.Data;
import javax.swing.*;
import java.io.Serializable;
@Data
public class StockMallVO implements Serializable {
private Long marketId;
private Spring marketName;
private String marketCode;
}

3
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TrayTypeDataVO.java

@ -18,6 +18,9 @@ public class TrayTypeDataVO implements Serializable {
private Integer trayNum;//托盘件数
private String name;//名称
private Long marketId;//商场名称
private String marketCode;//商场编码
private String marketName;//商场名称
private Integer orderTotalNum;//总件数

5
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseTrayTypeVO.java

@ -10,4 +10,9 @@ public class WarehouseTrayTypeVO extends WarehouseTrayTypeEntity {
private String trayTypeName;
private Long marketId;
private String marketName;
private String marketCode;
}

16
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockListClient.java

@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.distribution.entity.DistributionStockListEntity;
import com.logpm.distribution.service.IDistributionStockListService;
import com.logpm.distribution.vo.DistributionStockListVO;
import com.logpm.distribution.vo.app.StockMallVO;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.BladePage;
import org.springblade.core.mp.support.Condition;
@ -30,6 +31,8 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
/**
* 库存品管理 Feign实现类
*
@ -91,5 +94,18 @@ public class DistributionStockListClient implements IDistributionStockListClient
return distributionStockListService.getById(stockListId);
}
@Override
public DistributionStockListEntity getStockListByParcelListId(Long parcelListId) {
QueryWrapper<DistributionStockListEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("parcel_list_id",parcelListId)
.eq("is_deleted",0);
return distributionStockListService.getOne(queryWrapper);
}
@Override
public List<StockMallVO> getAllStockMall() {
return distributionStockListService.getAllStockMall();
}
}

3
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.java

@ -24,6 +24,7 @@ import com.logpm.distribution.excel.DistributionStockListExcel;
import com.logpm.distribution.vo.DistributionStockListVO;
import com.logpm.distribution.vo.DistributionStockupStockListInfoVO;
import com.logpm.distribution.vo.StockListInfoListVO;
import com.logpm.distribution.vo.app.StockMallVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -69,4 +70,6 @@ public interface DistributionStockListMapper extends BaseMapper<DistributionStoc
IPage<DistributionStockListVO> pageClinet(IPage page,@Param("param") DistributionStockListEntity distributionStockListEntity,@Param("clientIds") List clientIds);
List<StockMallVO> getAllStockMall();
}

9
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.xml

@ -255,4 +255,13 @@
where id = #{stockListId}
</update>
<select id="getAllStockMall" resultType="com.logpm.distribution.vo.app.StockMallVO">
select ldsl.market_id marketId,
ldsl.market_name marketName,
ldsl.market_code marketCode
from logpm_distribution_stock_list ldsl
where ldsl.parcel_list_id is null
and ldsl.is_deleted = 0
</select>
</mapper>

4
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockListService.java

@ -25,6 +25,7 @@ import com.logpm.distribution.vo.DistributionStockArticleVO;
import com.logpm.distribution.vo.DistributionStockListVO;
import com.logpm.distribution.vo.DistributionStockupStockListInfoVO;
import com.logpm.distribution.vo.StockListInfoListVO;
import com.logpm.distribution.vo.app.StockMallVO;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R;
@ -96,4 +97,7 @@ public interface IDistributionStockListService extends BaseService<DistributionS
Integer submitQuantityByStockListId(int num, Long stockListId);
IPage<DistributionStockListVO> pageClient(IPage<Object> page, Map<String, Object> distributionStockList);
List<StockMallVO> getAllStockMall();
}

7
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockListServiceImpl.java

@ -36,9 +36,9 @@ import com.logpm.distribution.vo.DistributionStockArticleVO;
import com.logpm.distribution.vo.DistributionStockListVO;
import com.logpm.distribution.vo.DistributionStockupStockListInfoVO;
import com.logpm.distribution.vo.StockListInfoListVO;
import com.logpm.distribution.vo.app.StockMallVO;
import lombok.AllArgsConstructor;
import org.springblade.common.constant.DictBizConstant;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
@ -306,4 +306,9 @@ public class DistributionStockListServiceImpl extends BaseServiceImpl<Distributi
return baseMapper.submitQuantityByStockListId(num,stockListId);
}
@Override
public List<StockMallVO> getAllStockMall(){
return baseMapper.getAllStockMall();
}
}

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

@ -2,10 +2,9 @@ package com.logpm.warehouse.api;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.distribution.feign.IDistributionStockArticleClient;
import com.logpm.distribution.feign.IDistributionStockListClient;
import com.logpm.warehouse.dto.TrayTypeDTO;
import com.logpm.warehouse.dto.ZeroOrderVO;
import com.logpm.warehouse.service.IWarehouseTrayGoodsService;
import com.logpm.warehouse.service.IWarehouseTrayTypeService;
import com.logpm.warehouse.vo.TrayTypeDataListVO;
import com.logpm.warehouse.vo.TrayTypeDataVO;
@ -36,9 +35,7 @@ public class WarehouseTrayTypeApiController {
private final IWarehouseTrayTypeService warehouseTrayTypeService;
private final IDistributionStockArticleClient distributionStockArticleClient;
private final IWarehouseTrayGoodsService warehouseTrayGoodsService;
private final IDistributionStockListClient distributionStockListClient;
//----------------------订单分拣--------------------------------
@ResponseBody
@ -96,7 +93,7 @@ public class WarehouseTrayTypeApiController {
TrayTypeDataVO trayTypeDataVO = warehouseTrayTypeService.getEntityByTrayCode(trayCode);
if(Objects.isNull(trayTypeDataVO)){
//如果没有对应数据就返回打托方式
List<DictBiz> list = DictBizCache.getList(DictBizConstant.PALLET_TYPE);
List<DictBiz> list = DictBizCache.getList(DictBizConstant.PALLET_ORDER_TYPE);
map.put("is_has_data",0);
map.put("data",list);
}else{
@ -234,7 +231,7 @@ public class WarehouseTrayTypeApiController {
TrayTypeDataVO trayTypeDataVO = warehouseTrayTypeService.getEntityByTrayCode(trayCode);
if(Objects.isNull(trayTypeDataVO)){
//如果没有对应数据就返回打托方式
List<DictBiz> list = DictBizCache.getList(DictBizConstant.PALLET_TYPE);
List<DictBiz> list = DictBizCache.getList(DictBizConstant.PALLET_ZERO_TYPE);
map.put("is_has_data",0);
map.put("data",list);
}else{
@ -419,7 +416,7 @@ public class WarehouseTrayTypeApiController {
}
try{
//查询订制品打托列表
//查询有数据库存品打托列表
IPage<WarehouseTrayTypeVO> pages = warehouseTrayTypeService.stockPageList(trayTypeDTO);
return R.data(pages);
}catch (CustomerException e){
@ -450,14 +447,15 @@ public class WarehouseTrayTypeApiController {
TrayTypeDataVO trayTypeDataVO = warehouseTrayTypeService.getEntityByTrayCode(trayCode);
if(Objects.isNull(trayTypeDataVO)){
//如果没有对应数据就返回打托方式
List<DictBiz> list = DictBizCache.getList(DictBizConstant.PALLET_TYPE);
List<DictBiz> list = DictBizCache.getList(DictBizConstant.PALLET_STOCK_TYPE);
// List<StockMallVO> stockMallVOList = distributionStockListClient.getAllStockMall();
map.put("is_has_data",0);
map.put("data",list);
// map.put("stockMallList",stockMallVOList);
}else{
map.put("is_has_data",1);
map.put("data",trayTypeDataVO);
}
return R.data(map);
}catch (CustomerException e){
log.warn(e.message);
@ -468,5 +466,37 @@ public class WarehouseTrayTypeApiController {
}
}
@ResponseBody
@PostMapping("/scanStockOrderPackageCode")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "扫码库存品包件码", notes = "传入trayTypeDTO")
public R scanStockOrderPackageCode(@RequestBody TrayTypeDTO trayTypeDTO) {
String method = "###########scanStockOrderPackageCode: ";
log.info(method + "扫码库存品包件码 trayTypeDTO={}", trayTypeDTO);
String orderPackageCode = trayTypeDTO.getOrderPackageCode();//包件码
String trayType = trayTypeDTO.getTrayType();//打托方式
String trayCode = trayTypeDTO.getTrayCode();//托盘码
try{
if(!StringUtil.hasLength(trayCode)){
log.warn(method+"托盘码不能为空 trayCode={}",trayCode);
return R.fail(403,"托盘码不能为空");
}
if(!StringUtil.hasLength(trayType)){
log.warn(method+"打托方式不能为空 trayType={}",trayType);
return R.fail(403,"打托方式不能为空");
}
if(!StringUtil.hasLength(orderPackageCode)){
log.warn(method+"包条码不能为空 orderPackageCode={}",orderPackageCode);
return R.fail(403,"包条码不能为空");
}
return warehouseTrayTypeService.scanStockOrderPackageCode(trayCode,trayType,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,"系统异常,联系管理员");
}
}
}

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

@ -21,4 +21,6 @@ public interface WarehouseTrayGoodsMapper extends BaseMapper<WarehouseTrayGoodsE
void deleteEntityByTrayGoodsId(@Param("trayGoodsId") Long trayGoodsId);
List<TrayTypeDataListVO> getStockListByTrayTypeId(@Param("trayTypeId") Long trayTypeId);
List<TrayTypeDataListVO> getStockListNoDataByTrayTypeId(@Param("trayTypeId") Long trayTypeId);
}

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

@ -56,4 +56,18 @@
lbm.`name`
</select>
<select id="getStockListNoDataByTrayTypeId" resultType="com.logpm.warehouse.vo.TrayTypeDataListVO">
select lbm.product_code dataCode,
lbm.`name` dataName,
sum(lwtg.num) scanNum,
sum(ldsl.quantity_stock) orderTotalNum
from logpm_warehouse_tray_goods lwtg
left join logpm_distribution_stock_list ldsl on ldsl.id = lwtg.association_id and ldsl.is_deleted = 0
left join logpm_basicdata_material lbm on ldsl.material_id = lbm.id and lbm.is_deleted = 0
where lwtg.is_deleted = 0
and lwtg.tray_type_id = #{trayTypeId}
group by lbm.product_code,
lbm.`name`
</select>
</mapper>

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

@ -32,4 +32,7 @@ public interface IWarehouseTrayGoodsService extends BaseService<WarehouseTrayGoo
WarehouseTrayGoodsEntity getZeroByTrayTypeIdAndOrderCode(Long trayTypeId, String orderCode);
List<TrayTypeDataListVO> getStockListByTrayTypeId(Long trayTypeId);
List<TrayTypeDataListVO> getStockListNoDataByTrayTypeId(Long trayTypeId);
}

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

@ -36,4 +36,5 @@ public interface IWarehouseTrayTypeService extends BaseService<WarehouseTrayType
IPage<WarehouseTrayTypeVO> stockPageList(TrayTypeDTO trayTypeDTO);
R scanStockOrderPackageCode(String trayCode, String trayType, String orderPackageCode);
}

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

@ -104,4 +104,9 @@ public class WarehouseTrayGoodsServiceImpl extends BaseServiceImpl<WarehouseTray
);
return delete>0?true:false;
}
@Override
public List<TrayTypeDataListVO> getStockListNoDataByTrayTypeId(Long trayTypeId) {
return baseMapper.getStockListNoDataByTrayTypeId(trayTypeId);
}
}

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

@ -3,11 +3,13 @@ package com.logpm.warehouse.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.logpm.basic.entity.BasicMaterialEntity;
import com.logpm.basic.feign.IBasicMaterialClient;
import com.logpm.basicdata.entity.BasicdataTrayEntity;
import com.logpm.basicdata.feign.IBasicdataTrayClient;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.entity.DistributionStockArticleEntity;
import com.logpm.distribution.entity.DistributionStockListEntity;
import com.logpm.distribution.feign.IDistributionParcelListClient;
import com.logpm.distribution.feign.IDistributionStockArticleClient;
import com.logpm.distribution.feign.IDistributionStockListClient;
@ -88,6 +90,12 @@ public class WarehouseTrayTypeServiceImpl extends BaseServiceImpl<WarehouseTrayT
@Override
public TrayTypeDataVO getEntityByTrayCode(String trayCode) {
BasicdataTrayEntity basicdataTrayEntity = basicdataTrayClient.getTrayByTrayCode(trayCode);
Integer disableType = basicdataTrayEntity.getDisableType();
if(disableType == 2){
log.warn("###############getEntityByTrayCode: 该托盘已被禁用 trayCode={}",trayCode);
throw new CustomerException(403,"该托盘已被禁用");
}
//根据托盘编码查询是否有托盘编码存在打托数据
QueryWrapper<WarehouseTrayTypeEntity> queryTrayTypeWrapper = new QueryWrapper<>();
queryTrayTypeWrapper.eq("tray_code",trayCode)
@ -99,27 +107,54 @@ public class WarehouseTrayTypeServiceImpl extends BaseServiceImpl<WarehouseTrayT
}
String type = trayTypeEntity.getType();//类型 1扫码分拣(订制品) 2人工分拣(零担) 3库存品
Long trayTypeId = trayTypeEntity.getId();//打托方式id
String trayType = trayTypeEntity.getTrayType();
TrayTypeDataVO trayTypeDataVO = new TrayTypeDataVO();
trayTypeDataVO.setTrayTypeId(trayTypeEntity.getId());
trayTypeDataVO.setTrayTypeId(trayTypeId);
trayTypeDataVO.setType(type);
trayTypeDataVO.setTrayCode(trayTypeEntity.getTrayCode());
trayTypeDataVO.setTrayNum(trayTypeEntity.getTotalNum());
trayTypeDataVO.setName(trayTypeEntity.getFilterValue());
trayTypeDataVO.setOrderTotalNum(trayTypeEntity.getOrderTotalNum());
trayTypeDataVO.setTrayType(trayTypeEntity.getTrayType());
String trayTypeName = DictBizCache.getValue(DictBizConstant.PALLET_TYPE, trayTypeEntity.getTrayType());
trayTypeDataVO.setTrayTypeName(trayTypeName);
trayTypeDataVO.setTrayType(trayType);
if(PalletProductTypeConstant.CUSTOMIZED.equals(type)){//订制品打托
String trayTypeName = DictBizCache.getValue(DictBizConstant.PALLET_ORDER_TYPE, trayTypeEntity.getTrayType());
trayTypeDataVO.setTrayTypeName(trayTypeName);
List<TrayTypeDataListVO> list = warehouseTrayGoodsService.getListByTrayTypeId(trayTypeId);
trayTypeDataVO.setList(list);
}else if(PalletProductTypeConstant.ARTIFICIAL.equals(type)){
String trayTypeName = DictBizCache.getValue(DictBizConstant.PALLET_ZERO_TYPE, trayTypeEntity.getTrayType());
trayTypeDataVO.setTrayTypeName(trayTypeName);
List<TrayTypeDataListVO> list = warehouseTrayGoodsService.getZeroListByTrayTypeId(trayTypeId);
trayTypeDataVO.setList(list);
}else if(PalletProductTypeConstant.INVENTORY.equals(type)){
}else if(PalletProductTypeConstant.STOCKDATA.equals(type)){
String trayTypeName = DictBizCache.getValue(DictBizConstant.PALLET_STOCK_TYPE, trayTypeEntity.getTrayType());
trayTypeDataVO.setTrayTypeName(trayTypeName);
List<TrayTypeDataListVO> list = warehouseTrayGoodsService.getStockListByTrayTypeId(trayTypeId);
trayTypeDataVO.setList(list);
QueryWrapper<WarehouseTrayGoodsEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("tray_type_id",trayTypeId);
List<WarehouseTrayGoodsEntity> ls = warehouseTrayGoodsService.list(queryWrapper);
Long stockListId = ls.get(0).getAssociationId();//库存品id
DistributionStockListEntity stockListEntity = distributionStockListClient.getStockListById(stockListId);
trayTypeDataVO.setMarketId(stockListEntity.getMarketId());
trayTypeDataVO.setMarketCode(stockListEntity.getMarketCode());
trayTypeDataVO.setMarketName(stockListEntity.getMarketName());
}else if(PalletProductTypeConstant.STOCKNODATA.equals(type)){
String trayTypeName = DictBizCache.getValue(DictBizConstant.PALLET_STOCKNODATA_TYPE, trayTypeEntity.getTrayType());
trayTypeDataVO.setTrayTypeName(trayTypeName);
List<TrayTypeDataListVO> list = warehouseTrayGoodsService.getStockListNoDataByTrayTypeId(trayTypeId);
trayTypeDataVO.setList(list);
QueryWrapper<WarehouseTrayGoodsEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("tray_type_id",trayTypeId);
List<WarehouseTrayGoodsEntity> ls = warehouseTrayGoodsService.list(queryWrapper);
Long stockListId = ls.get(0).getAssociationId();//库存品id
DistributionStockListEntity stockListEntity = distributionStockListClient.getStockListById(stockListId);
trayTypeDataVO.setMarketId(stockListEntity.getMarketId());
trayTypeDataVO.setMarketCode(stockListEntity.getMarketCode());
trayTypeDataVO.setMarketName(stockListEntity.getMarketName());
}else {
log.warn("##################getEntityByTrayCode: 未知的打托类型");
}
@ -453,14 +488,14 @@ public class WarehouseTrayTypeServiceImpl extends BaseServiceImpl<WarehouseTrayT
return R.fail(403,"未找到订单信息");
}
boolean flag = false;
if("110".equals(tt)) {//运单号
if("10".equals(tt)) {//运单号
String waybillNumber = stockArticleEntity.getWaybillNumber();
if (!filterValue.equals(waybillNumber)) {
flag = true;
chuanFlag = true;
msg = "运单号";
}
}else if("120".equals(tt)){//订单自编码(零担)
}else if("20".equals(tt)){//订单自编码(零担)
if (!filterId.equals(orderId)) {
flag = true;
chuanFlag = true;
@ -590,9 +625,9 @@ public class WarehouseTrayTypeServiceImpl extends BaseServiceImpl<WarehouseTrayT
trayTypeEntity.setCreateUser(AuthUtil.getUserId());
trayTypeEntity.setUpdateUser(AuthUtil.getUserId());
if("110".equals(trayType)){//运单号
if("10".equals(trayType)){//运单号
trayTypeEntity.setFilterValue(stockArticleEntity.getWaybillNumber());
}else if("120".equals(trayType)){//订单自编码(零担)
}else if("20".equals(trayType)){//订单自编码(零担)
trayTypeEntity.setFilterId(stockArticleEntity.getId());
trayTypeEntity.setFilterValue(stockArticleEntity.getOrderCode());
}
@ -673,7 +708,7 @@ public class WarehouseTrayTypeServiceImpl extends BaseServiceImpl<WarehouseTrayT
}
//--------------------------库存品分拣------------------------
//--------------------------有数据库存品分拣------------------------
@Override
@ -683,14 +718,203 @@ public class WarehouseTrayTypeServiceImpl extends BaseServiceImpl<WarehouseTrayT
page.setSize(trayTypeDTO.getPageSize());
//存入列表类型
trayTypeDTO.setType(PalletProductTypeConstant.INVENTORY);
trayTypeDTO.setType(PalletProductTypeConstant.STOCKDATA);
//因为传入了打托分类,所以可以公用一个
IPage<WarehouseTrayTypeEntity> pageList = baseMapper.orderPageList(page,trayTypeDTO);
IPage<WarehouseTrayTypeVO> warehouseTrayTypeVOIPage = WarehouseTrayTypeWrapper.build().pageVO(pageList);
List<WarehouseTrayTypeVO> records = warehouseTrayTypeVOIPage.getRecords();
for (WarehouseTrayTypeVO warehouseTrayTypeVO:records){
Long trayTypeId = warehouseTrayTypeVO.getId();//打托方式id
QueryWrapper<WarehouseTrayGoodsEntity> trayGoodsEntityQueryWrapper = new QueryWrapper<>();
trayGoodsEntityQueryWrapper.eq("tray_type_id",trayTypeId);
List<WarehouseTrayGoodsEntity> list = warehouseTrayGoodsService.list(trayGoodsEntityQueryWrapper);
WarehouseTrayGoodsEntity trayGoodsEntity = list.get(0);
Long stockListId = trayGoodsEntity.getAssociationId();
DistributionStockListEntity stockListEntity = distributionStockListClient.getStockListById(stockListId);
Long marketId = stockListEntity.getMarketId();
String marketName = stockListEntity.getMarketName();
String marketCode = stockListEntity.getMarketCode();
warehouseTrayTypeVO.setMarketId(marketId);
warehouseTrayTypeVO.setMarketName(marketName);
warehouseTrayTypeVO.setMarketCode(marketCode);
}
warehouseTrayTypeVOIPage.setRecords(records);
return warehouseTrayTypeVOIPage;
}
@Override
public R scanStockOrderPackageCode(String trayCode, String trayType, String orderPackageCode) {
//查询托盘信息
QueryWrapper<WarehouseTrayTypeEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("tray_code",trayCode)
.eq("is_deleted",0);
WarehouseTrayTypeEntity trayTypeEntity = baseMapper.selectOne(queryWrapper);
if(Objects.isNull(trayTypeEntity)){
//如果为空则该托盘为空
//第一次存入数据
trayTypeEntity = saveTrayTypeByStock(trayType, trayCode, orderPackageCode);
}
String tt = trayTypeEntity.getTrayType();
Long filterId = trayTypeEntity.getFilterId();
String filterValue = trayTypeEntity.getFilterValue();
if(tt.equals(trayType)){
log.warn("##############scanStockOrderPackageCode: 打托方式不正确 {}={}",trayType,tt);
return R.fail(403,"打托方式不正确");
}
//判断串货
DistributionParcelListEntity parcelListEntity = distributionParcelListClient.findByPacketBarCode(orderPackageCode);
if(Objects.isNull(parcelListEntity)){
log.warn("#########scanStockOrderPackageCode: 未找到包件信息 orderPackageCode={}",orderPackageCode);
return R.fail(403,"未找到包件信息");
}
Long parcelListId = parcelListEntity.getId();//包件id
DistributionStockListEntity distributionStockListEntity = distributionStockListClient.getStockListByParcelListId(parcelListId);
if(Objects.isNull(distributionStockListEntity)){
log.warn("#########scanStockOrderPackageCode: 未找到库存品信息 parcelListId={}",parcelListId);
return R.fail(403,"未找到库存品信息");
}
Long materialId = distributionStockListEntity.getMaterialId();//物料id
Long marketId = distributionStockListEntity.getMarketId();
String marketName = distributionStockListEntity.getMarketName();
BasicMaterialEntity materialEntity = basicMaterialClient.getMaterialOwnId(materialId);
if(Objects.isNull(materialEntity)){
log.warn("#########scanStockOrderPackageCode: 未找到物料信息 materialId={}",materialId);
return R.fail(403,"未找到物料信息");
}
String productCode = materialEntity.getProductCode();
String name = materialEntity.getName();
boolean chuanFlag = false;
String msg = "";
if (!filterId.equals(marketId)) {
chuanFlag = true;
msg = "商场";
}else{
if("10".equals(tt)) {//物料名称
if (!filterValue.equals(name)) {
chuanFlag = true;
msg = "物料名称";
}
}else if("20".equals(tt)){//物料编码
if (!filterValue.equals(productCode)) {
chuanFlag = true;
msg = "物料编码";
}
}
}
//修改打托方式上的值
changeStockTotalNumByTrayTypeId(distributionStockListEntity, trayTypeEntity.getId(), 1);//addSub 1加 2减
// if(chuanFlag){
// //存入零担与托盘绑定关系表
// warehouseTrayGoodsService.saveEntityStock(distributionStockListEntity, trayTypeEntity, "1");
// }else{
// //存入零担与托盘绑定关系表
// warehouseTrayGoodsService.saveEntityStock(distributionStockListEntity, trayTypeEntity, "0");
// }
// //添加上拖日志表
// warehouseTrayGoodsLogService.saveLogStock(distributionStockListEntity, trayTypeEntity, "1", "分拣打托:有数据库存品 分拣", "1");
if (chuanFlag){
log.warn("#########scanStockOrderPackageCode: 不属于同一个"+msg+" 串货 filterValue={} filterValue={}", filterValue, filterValue);
return Resp.scanFail(2001, "不属于同一个"+msg, "串货");
}else{
return R.success("扫描成功");
}
}
private void changeStockTotalNumByTrayTypeId(DistributionStockListEntity distributionStockListEntity, Long trayTypeId, int addSub) {
log.info("#########changeStockTotalNumByTrayTypeId: 变更打托方式上的数量 trayTypeId={} addSub={}", trayTypeId, addSub);
Integer quantityStock = distributionStockListEntity.getQuantityStock();//在库数量
// distributionStockListEntity.get
// Integer totalNumber = stockArticleEntity.getTotalNumber();
// String orderCode = stockArticleEntity.getOrderCode();
// WarehouseTrayGoodsEntity trayGoodsEntity = warehouseTrayGoodsService.getZeroByTrayTypeIdAndOrderCode(trayTypeId, orderCode);
//
//
// if (addSub == 1) {
// if (Objects.isNull(trayGoodsEntity)) {
// //需要同时添加订单总数量到打托方式
// baseMapper.changeTotalNumAndOrderTotalNumByTrayTypeId(num, totalNumber, trayTypeId);
// } else {
// baseMapper.changeTotalNumByTrayTypeId(num, trayTypeId);
// }
// } else if (addSub == 2) {
// if (Objects.isNull(trayGoodsEntity)) {
// log.warn("#################changeZeroTotalNumByTrayTypeId: 未找到对应的数据 orderCode={}",orderCode);
// throw new CustomerException(403,"未找到对应的数据");
// } else {
// baseMapper.changeTotalNumAndOrderTotalNumByTrayTypeId(-num, -totalNumber, trayTypeId);
// }
// } else {
// log.warn("############changeZeroTotalNumByTrayTypeId:未知的计算类型");
// }
}
private WarehouseTrayTypeEntity saveTrayTypeByStock(String trayType, String trayCode, String orderPackageCode) {
log.info("#########saveTrayTypeByStock: 存入打托方式 trayType={},trayCode={} orderPackageCode={}",trayType,trayCode,orderPackageCode);
BasicdataTrayEntity trayEntity = basicdataTrayClient.getTrayByTrayCode(trayCode);
if(Objects.isNull(trayEntity)){
log.warn("#########saveTrayTypeByStock: 未找到托盘信息 trayCode={}",trayCode);
throw new CustomerException(403,"未找到托盘信息");
}
Long trayId = trayEntity.getId();
//查询库存品数据
DistributionParcelListEntity parcelListEntity = distributionParcelListClient.findByPacketBarCode(orderPackageCode);
if(Objects.isNull(parcelListEntity)){
log.warn("#########saveTrayTypeByStock: 未找到包件信息 orderPackageCode={}",orderPackageCode);
throw new CustomerException(403,"未找到包件信息");
}
Long parcelListId = parcelListEntity.getId();//包件id
DistributionStockListEntity distributionStockListEntity = distributionStockListClient.getStockListByParcelListId(parcelListId);
if(Objects.isNull(distributionStockListEntity)){
log.warn("#########saveTrayTypeByStock: 未找到库存品信息 parcelListId={}",parcelListId);
throw new CustomerException(403,"未找到库存品信息");
}
Long marketId = distributionStockListEntity.getMarketId();
String marketName = distributionStockListEntity.getMarketName();
Long materialId = distributionStockListEntity.getMaterialId();//物料id
BasicMaterialEntity materialEntity = basicMaterialClient.getMaterialOwnId(materialId);
if(Objects.isNull(materialEntity)){
log.warn("#########saveTrayTypeByStock: 未找到物料信息 materialId={}",materialId);
throw new CustomerException(403,"未找到物料信息");
}
String productCode = materialEntity.getProductCode();//物料编码
String name = materialEntity.getName();//物料名称
WarehouseTrayTypeEntity trayTypeEntity = new WarehouseTrayTypeEntity();
trayTypeEntity.setTrayId(trayId);
trayTypeEntity.setTrayCode(trayCode);
trayTypeEntity.setType(PalletProductTypeConstant.STOCKDATA);
trayTypeEntity.setTrayType(trayType);
trayTypeEntity.setOrderTotalNum(0);
trayTypeEntity.setTotalNum(0);
trayTypeEntity.setTenantId(AuthUtil.getTenantId());
trayTypeEntity.setCreateDept(Long.parseLong(AuthUtil.getDeptId()));
trayTypeEntity.setCreateUser(AuthUtil.getUserId());
trayTypeEntity.setUpdateUser(AuthUtil.getUserId());
if("10".equals(trayType)){//物料名称
trayTypeEntity.setFilterValue(name);
}else if("20".equals(trayType)){//物料编码
trayTypeEntity.setFilterId(materialId);
trayTypeEntity.setFilterValue(productCode);
}
baseMapper.insert(trayTypeEntity);
//修改托盘的状态
basicdataTrayClient.updateTrayStatus(trayId,2);
return trayTypeEntity;
}
}

Loading…
Cancel
Save