Browse Source

订单备货

training
caoyizhong 2 years ago
parent
commit
28aab9f5ea
  1. 11
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockVO.java
  2. 3
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockController.java
  3. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java
  4. 15
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml
  5. 11
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockMapper.java
  6. 32
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockMapper.xml
  7. 41
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml
  8. 14
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockService.java
  9. 74
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockServiceImpl.java
  10. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java

11
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockVO.java

@ -32,4 +32,15 @@ import lombok.EqualsAndHashCode;
public class DistributionStockVO extends DistributionStockEntity {
private static final long serialVersionUID = 1L;
private Long deliveryId;
private String noteNumber;
private Long reservationId;
private Long stockArticleId;
private Integer scanned;//已扫
private Integer whole;//全部
}

3
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockController.java

@ -16,6 +16,7 @@
*/
package com.logpm.distribution.controller;
import com.logpm.distribution.dto.DistributionStockDTO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@ -106,7 +107,7 @@ public class DistributionStockController extends BladeController {
@PostMapping("/addStockDetail")
@ApiOperationSupport(order = 4)
@ApiOperation(value = "系统备货新增", notes = "传入distributionStock")
public R addStockDetail(@ApiIgnore @RequestParam Map<String, Object> distributionStock) {
public R addStockDetail(@Valid @RequestBody DistributionStockDTO distributionStock) {
return R.status(distributionStockService.addStockDetail(distributionStock));
}

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

@ -66,7 +66,6 @@ public interface DistributionParcelListMapper extends BaseMapper<DistributionPar
/**
* 查询订单下的包件信息 VO封装
* @param objectPage
* @param id
* @return
*/

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

@ -106,14 +106,13 @@
group by ldpl.pallet
</select>
<select id="getParcelListOwn" resultType="com.logpm.distribution.vo.DistributionParcelListVO">
select DISTINCT ldpl.id, ldpl.order_package_code orderPackageCode, ldpl.firsts ,ldpl.second ,ldpl.third_product thirdProduct,ldpl.material_name materialName,
lds.stockup_status stockupStatus,lds.stockup_date stockupDate,
lds.stockup_area stockupArea,ldpl.goods_allocation goodsAllocation,ldpl.pallet
from logpm_distribution_parcel_list ldpl
LEFT JOIN logpm_distribution_stock_article ldsa on ldsa.id = ldpl.stock_article_id
LEFT JOIN logpm_distribution_reservation_stockarticle ldrs on ldrs.stock_article_id = ldsa.id
LEFT JOIN logpm_distribution_stockup_info ldsi on ldsi.reservation_id = ldrs.reservation_id
LEFT JOIN logpm_distribution_stockup lds on lds.id = ldsi.stockup_id
select ldrp.parce_list_id id,ldrp.packet_bar_code orderPackageCode,ldsk.type stockupStatus, ldpl.firsts,ldpl.second,ldpl.third_product thirdProduct,
ldpl.material_name materialName,lds.stockup_date stockupDate,lds.stockup_area stockupArea,ldpl.goods_allocation goodsAllocation,ldpl.pallet
from logpm_distribution_stockup lds
left join logpm_distribution_stockup_info ldsi on ldsi.stockup_id = lds.id
INNER JOIN logpm_distribution_reservation_package ldrp on ldrp.reservation_id = ldsi.reservation_id
LEFT JOIN logpm_distribution_stock ldsk on ldsk.parcel_list_id = ldrp.parce_list_id
LEFT JOIN logpm_distribution_parcel_list ldpl on ldpl.id = ldrp.parce_list_id
<where>
lds.id =#{id}
</where>

11
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockMapper.java

@ -53,4 +53,15 @@ public interface DistributionStockMapper extends BaseMapper<DistributionStockEnt
List<DistributionStockExcel> exportDistributionStock(@Param("ew") Wrapper<DistributionStockEntity> queryWrapper);
Integer selectRealNum(@Param("reservationId") Long reservationId);
/**
* 查询预约配送情况
* @param stockupId
* @return
*/
List<DistributionStockVO> selectReservationDelivery(@Param("stockupId")String stockupId);
DistributionStockVO selectParcelList(@Param("pageId")Long pageId);
DistributionStockVO selectStockupInfo(@Param("pageId")Long pageId);
}

32
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockMapper.xml

@ -46,5 +46,37 @@
and ldr.id = #{reservationId}
</select>
<select id="selectReservationDelivery" resultType="com.logpm.distribution.vo.DistributionStockVO">
select lds.delivery_id deliveryId,lddl.note_number noteNumber,ldsi.reservation_id reservationId
from logpm_distribution_stockup_info ldsi
LEFT JOIN logpm_distribution_signfor lds on lds.reservation_id =ldsi.reservation_id
LEFT JOIN logpm_distribution_delivery_list lddl on lddl.id = lds.delivery_id
where ldsi.stockup_id = #{stockupId}
</select>
<select id="selectParcelList" resultType="com.logpm.distribution.vo.DistributionStockVO">
SELECT COUNT(*) AS scanned,stock_article_id stockArticleId
FROM logpm_distribution_parcel_list
WHERE order_package_stockup_status = 10
AND stock_article_id =
(SELECT stock_article_id
FROM logpm_distribution_parcel_list
WHERE id = #{pageId})
GROUP BY stock_article_id
</select>
<select id="selectStockupInfo" resultType="com.logpm.distribution.vo.DistributionStockVO">
select COUNT(*) scanned
from logpm_distribution_parcel_list
where order_package_stockup_status = 10 and id in (
select parce_list_id
from logpm_distribution_reservation_package
where reservation_id in ( select reservation_id
from logpm_distribution_stockup_info
where stockup_id = #{pageId})
)
</select>
</mapper>

41
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml

@ -218,27 +218,26 @@
</select>
<select id="detailOrderOwn" resultType="com.logpm.distribution.vo.DistributionStockupVO">
select ldsa.order_code orderCode,ldsa.description_goods descriptionGoods,ldrs.reservation_num reservationNum,
lds.stockup_status stockupStatus,lds.stockup_date stockupDate,lds.stockup_area stockupArea,(
select count(1)
from logpm_distribution_stock ds
WHERE ds.stock_article in (
select DISTINCT dpl.id
from logpm_distribution_parcel_list dpl
where dpl.stock_article_id = ldrs.stock_article_id
)
) number ,
(select GROUP_CONCAT(NULLIF(dpl.goods_allocation,'') SEPARATOR ', ')
from logpm_distribution_parcel_list dpl
where dpl.stock_article_id = ldrs.stock_article_id) goodsAllocation
from logpm_distribution_stockup_info ldsi
LEFT JOIN logpm_distribution_reservation_stockarticle ldrs on ldrs.reservation_id = ldsi.reservation_id
LEFT JOIN logpm_distribution_stock_article ldsa on ldsa.id = ldrs.stock_article_id
LEFT JOIN logpm_distribution_stockup lds on lds.id = ldsi.stockup_id
<where>
ldsi.stockup_id = #{ id }
and ldsi.is_deleted = 0
</where>
SELECT ldsa.order_code AS orderCode,
ldsa.description_goods AS descriptionGoods,
ldrs.reservation_num AS reservationNum,
lds.stockup_status AS stockupStatus,
lds.stockup_date AS stockupDate,
lds.stockup_area AS stockupArea,
ldsa.id stockArticleId,
(
SELECT GROUP_CONCAT(NULLIF(dpl.goods_allocation, '') SEPARATOR ', ')
FROM logpm_distribution_parcel_list dpl
WHERE dpl.stock_article_id = ldrs.stock_article_id
) AS goodsAllocation
FROM logpm_distribution_stockup_info ldsi
LEFT JOIN logpm_distribution_reservation_stockarticle ldrs ON ldrs.reservation_id = ldsi.reservation_id
LEFT JOIN logpm_distribution_stock_article ldsa ON ldsa.id = ldrs.stock_article_id
LEFT JOIN logpm_distribution_stockup lds ON lds.id = ldsi.stockup_id
<where>
ldsi.stockup_id = #{ id }
AND ldsi.is_deleted = 0
</where>
</select>

14
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockService.java

@ -17,6 +17,7 @@
package com.logpm.distribution.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.logpm.distribution.dto.DistributionStockDTO;
import com.logpm.distribution.entity.DistributionStockEntity;
import com.logpm.distribution.vo.DistributionStockVO;
@ -58,5 +59,16 @@ public interface IDistributionStockService extends BaseService<DistributionStock
void repairStockListScanInfo(DistributionStockEntity distributionStockEntity);
Boolean addStockDetail(Map<String, Object> distributionStock);
Boolean addStockDetail(DistributionStockDTO distributionStock);
/**
* 查询修改订单状态
* @return
* @param pageId 包件ID
* @param type
*/
void getUpdateOrderState(Long pageId,int type);
Integer selectCount(Long id);
}

74
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockServiceImpl.java

@ -16,17 +16,21 @@
*/
package com.logpm.distribution.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.logpm.distribution.dto.DistributionStockDTO;
import com.logpm.distribution.entity.*;
import com.logpm.distribution.excel.DistributionStockExcel;
import com.logpm.distribution.mapper.DistributionStockMapper;
import com.logpm.distribution.mapper.DistributionStockupMapper;
import com.logpm.distribution.service.*;
import com.logpm.distribution.vo.DistributionStockVO;
import com.logpm.distribution.vo.DistributionStockupVO;
import lombok.extern.log4j.Log4j2;
import org.springblade.common.constant.order.OrderStockupStatusConstant;
import org.springblade.common.constant.stockup.StockupStatusConstant;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
@ -35,7 +39,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
@ -54,6 +57,12 @@ public class DistributionStockServiceImpl extends BaseServiceImpl<DistributionSt
@Autowired
private IDistributionReservationService distributionReservationService;
@Autowired
private DistributionStockupMapper distributionStockupMapper;
@Autowired
private IDistributionDeliveryListService distributionDeliveryListService;
@Autowired
private IDistributionStockListService distributionStockListService;
@Autowired
@ -132,6 +141,10 @@ public class DistributionStockServiceImpl extends BaseServiceImpl<DistributionSt
log.info("#############repairPackageScanInfo: 补全包件扫码信息完成 stockListId={}",stockListId);
}
/**
* 系统添加备货
*
@ -140,15 +153,25 @@ public class DistributionStockServiceImpl extends BaseServiceImpl<DistributionSt
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean addStockDetail(Map<String, Object> distributionStocks) {
DistributionStockDTO distributionStock1 = JSONObject.parseObject(JSONObject.toJSONString(distributionStocks), DistributionStockDTO.class);
List<String> ids = distributionStock1.getIds();
public Boolean addStockDetail(DistributionStockDTO distributionStocks) {
// DistributionStockDTO distributionStock1 = JSONObject.parseObject(JSONObject.toJSONString(distributionStocks), DistributionStockDTO.class);
List<String> ids = distributionStocks.getIds();
List<DistributionStockEntity> list = new ArrayList<>();
ids.forEach( i ->{
DistributionStockEntity stockEntity = new DistributionStockEntity();
stockEntity.setParcelListId(Long.parseLong(i)); // 包件id
DistributionParcelListEntity byId = distributionParcelListService.getById(i);
DistributionStockArticleEntity byId1 = distributionStockArticleService.getById(byId.getStockArticleId());
//查询包件数量
getUpdateOrderState(Long.parseLong(i),1 );
List<DistributionStockVO> stockVOList = baseMapper.selectReservationDelivery(distributionStocks.getStockupId());
if (stockVOList.size() > 0) {
stockEntity.setReservationId(stockVOList.get(0).getReservationId());
stockEntity.setDeliveryListId(stockVOList.get(0).getDeliveryListId());
stockEntity.setDeliveryListCode(stockVOList.get(0).getDeliveryListCode());
}
// DistributionStockArticleEntity byId1 = distributionStockArticleService.getById(byId.getStockArticleId());
stockEntity.setGoodsAllocation(byId.getGoodsAllocation()); // 货位
stockEntity.setMaterialId(byId.getMaterialId()); // 物料
@ -159,7 +182,7 @@ public class DistributionStockServiceImpl extends BaseServiceImpl<DistributionSt
stockEntity.setGoodsName(byId.getMaterialName()); //货物名称
stockEntity.setUnit(byId.getMaterialUnit()); //单位
stockEntity.setOrderSelfNumbering(byId.getOrderCode()); //自编码
stockEntity.setStockupArea(distributionStock1.getStockupArea()); //自编码
stockEntity.setStockupArea(distributionStocks.getStockupArea()); //自编码
stockEntity.setType(1);
stockEntity.setOutboundType(byId1.getTypeService());//类型
list.add(stockEntity);
@ -168,8 +191,47 @@ public class DistributionStockServiceImpl extends BaseServiceImpl<DistributionSt
parcelListEntity.setId(Long.parseLong(i));
parcelListEntity.setOrderPackageStockupStatus(StockupStatusConstant.yibeihuo.getValue());
distributionParcelListService.updateById(parcelListEntity);
});
//修改备货状态
getUpdateOrderState(Long.parseLong(distributionStocks.getStockupId()),2 );
return this.saveBatch(list);
}
@Override
public void getUpdateOrderState(Long pageId,int type) {
switch (type){
case 1: //订单
DistributionStockVO distributionStockVO = baseMapper.selectParcelList(pageId);
if(ObjectUtils.isNotNull(distributionStockVO.getScanned())){
if(distributionStockVO.getScanned() == 0){
//修改
DistributionStockArticleEntity distributionStockArticle = new DistributionStockArticleEntity();
distributionStockArticle.setId(distributionStockVO.getStockArticleId());
distributionStockArticle.setStockupStatus(OrderStockupStatusConstant.yibeihu.getValue());
distributionStockArticleService.updateById(distributionStockArticle);
}
}
break;
case 2: //备货
DistributionStockVO distributionStockVO1 = baseMapper.selectStockupInfo(pageId);
if(ObjectUtils.isNotNull(distributionStockVO1.getScanned()) && distributionStockVO1.getScanned() == 0){
//修改备货任务
DistributionStockupEntity distributionStockupEntity = new DistributionStockupEntity();
distributionStockupEntity.setId(pageId);
distributionStockupEntity.setStockupStatus(StockupStatusConstant.yibeihuo.getValue());
distributionStockupMapper.updateById(distributionStockupEntity);
}
break;
}
}
@Override
public Integer selectCount(Long id) {
return baseMapper.selectCount(Wrappers.<DistributionStockEntity>query().lambda().eq(DistributionStockEntity::getStockArticle,id)).intValue();
}
}

8
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java

@ -28,6 +28,7 @@ import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.distribution.dto.app.StockupDTO;
import com.logpm.distribution.entity.DistributionParcelDetailsEntity;
import com.logpm.distribution.entity.DistributionReservationEntity;
import com.logpm.distribution.entity.DistributionStockEntity;
import com.logpm.distribution.entity.DistributionStockupEntity;
import com.logpm.distribution.excel.DistributionStockupExcel;
import com.logpm.distribution.mapper.DistributionStockupMapper;
@ -376,7 +377,12 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
@Override
public IPage<DistributionStockupVO> detailOrderOwn(IPage<Object> page, Long id) {
return baseMapper.detailOrderOwn(page,id);
IPage<DistributionStockupVO> distributionStockupVOIPage = baseMapper.detailOrderOwn(page, id);
distributionStockupVOIPage.getRecords().forEach( o ->{
Integer integer = distributionStockService.selectCount(Long.parseLong(o.getStockArticleId()));
o.setNumber(integer);
});
return distributionStockupVOIPage;
}
/**

Loading…
Cancel
Save